辅助功能*
Mike Chambers

Mike Chambers

Macromedia

出版日期:
17 October 2005
用户级别:
全部
产品:
Flash

Flash Professional 和 Flex 2

目前, 我们发布了 Macromedia Flex 2 系列产品的公共 alpha 和技术。本文将介绍我们发布的内容, 即 Flex 2 如何与 Flash 创作相关以及设计者和开发人员如何将这两个产品集成在一起, 创建将下一代 Macromedia Flash Player 作为目标的丰富且吸引人的内容。

作为一名开发人员, 我和 Flash 一起成长。从 Flash 3 (没有真实的脚本) 开始到 Flash 4 (ugh!) 中的 slash 语法、Flash 5 中的智能剪辑以及最后 Flash 6 和 7 中的可重复使用的组件和更强大的脚本语言。但是, Flash 创作工具本质上是一个创意工具, 并且尝试插入一个开发环境, 该开发环境可以满足开发人员的更多要求 (并且通常不需要过多的设计者)。不过, Flash 的表现力以及易于将应用部署到几乎任何位置的能力, 足以弥补在作为创意工具从头开始设计的工具中开发应用的笨拙性。

这就是我为什么对 Flex 2 如此激动的原因。我可以为 Flash Platform 开发原本以 Flash Platform 为目标的开发人员设计的环境和框架, 同时利用 Flash 创作的创意和表现力。

什么是 Flex 2?

首先, 我们发布的内容是什么?Flex 2 系列包含哪些产品?

  • Flash Player 8.5: 下一代 Flash Player 采用新的虚拟机 (VM), 它从开始编写时就非常注重性能。
  • ActionScript 3.0: 针对要完全符合 ECMA 而开发, 并将性能和开发人员效率作为首要目标。
  • Flex Framework 2: 下一代 Flex Framework, 是一个 XML (MXML) 和基于 ActionScript 的应用开发框架。
  • Flex Builder 2: 是在开放式源 Eclipse 平台的顶部从头开始编写的。它允许开发人员利用 Flex Framework 和 ActionScript 3.0 创建、编译和部署应用 (不一定需要 Flex 服务器)。
  • Flex Enterprise Services:下一代 Flex 服务器, 它提供企业级的数据服务以及其他运行时功能。
  • Flex Charting Components 2: 构建在 Flex Framework 顶部的强大的图表组件。

现在, “Flex”比过去具有更广泛的意义, 您可能已认识到这一点。过去 Flex 指允许开发人员创建丰富和具有表现力应用 (Flex Server 1.5) 的企业级服务器, 现在它指一系列产品和技术 (Flex Builder、Flex Framework、Flex Enterprise Services ActionScript 3.0) , 这些产品和技术使所有开发人员能够创建利用 Flash Player 的普遍性并且可以在任何位置虚拟运行的丰富、具有表现力的应用。

只需确保了解这一点:

您不需要 Flex 服务器创建采用 Flex Framework 的应用。

当然, 您可以创建采用 Flex Framework 的应用, Flex Framework 利用了 Flex 服务器 (现在称为 Flex Enterprise Services) 的很多功能。

因此, 基本上, 现在您可以使用 Flex Builder 2 构建采用 ActionScript 3.0 和 Flex Framework 的应用。Flex Builder 可以编译这些应用 (编译为 SWF 文件) , 然后您可以像部署其他任何 SWF 一样部署这些 SWF 文件 (即只将其上传到服务器)。

您是说 ActionScript 3.0 吗?

现在, 就像大多数 Flash 开发人员一样, 您注意到的第一件事应该是我们提到了 ActionScript 3.0 (我就首先注意到了这一点)。这是 Flash Player 8.5 中 ActionScript 的新版本, 它在播放器中利用了新的虚拟机 (VM)。

最初我们是作为动画工具和插件开发 Flash 的, 随着时间的发展, Flash 提供了越来越多的编程和开发人员功能 (添加脚本支持、侧重开发人员的 API 和更多结构化的脚本语法)。但是, 播放器的中心调整为面向动画和其他具有表现力的内容, 而不是作为开发运行时优化的。

在对播放器的性能进行了多年优化后, 我们意识到如果想将播放器提高一个级别, 就需要重新构建虚拟机并创建一个针对代码执行进行优化的播放器, 该播放器过去只针对帧和向量渲染进行优化。这就要求我们创建 Flash Player 8.5 alpha 中的新虚拟机, 并开发将在新 VM 顶部运行的 ActionScript 3.0。

其实, ActionScript 3.0 以及播放器的新 VM 已经全部重新编写。这允许我们清除很多内容, 优化性能和内存使用, 并且制作更强大更高效的语言。但是, 从语法上讲, 该语言并没有改变多少。因此, 如果您熟悉 ActionScript 2, 就能够很快理解 ActionScript 3.0 代码。例如, 下面是一个简单的类:

package com.macromedia.foo
{
	import flash.util.trace;
	
	public class MyClass extends MyBaseClass
	{
		public function MyClass()
		{
			sayHello();
		}
		protected function sayHello():Void
		{
			trace("Hello!");
		}
	}
}

Flash 开发人员可以从 ActionScript 3.0 中获得哪些收益?下面列出了几种收益:

  • 更严格的编译时检查。
  • 更好的运行时错误处理和报告。
  • 性能、性能、还是性能。全面提升基础性能 (过去是提高目标性能)
  • 很多新的 API, 包括正则表达式、E4X (ECMA 标准 XML 解析) 和真正的二进制套接字。
  • 大大改进的调试环境。

当然, 您可以立即访问 Macromedia 实验室*并下载所有比特, 然后开始播放, 因此我就没有必要再详细说明了。

我是否还可以使用 Flash 创作?

可以。因此我想了解您的一些想法。我刚刚购买了 Macromedia Flash Professional 8, 并且非常喜欢它。该工具坚如岩石, 我知道如何使用它, 新功能也非常出色。Flex Builder 和 Flash 创作可以协同工作吗?

是的!您可以将 Flash 创作与 Flex Builder 结合使用, 并且可以使用所有当今最新式的素材。因为 Flex Builder 支持 ActionScript 项目, 因此, 您可以使用 Flash 创作来创建您的内容, 然后采用 Flex Builder 将这些资源引入 ActionScript 项目中, 并通过 Flash Player 8.5 编译应用。这是当前开发人员使用外部编辑器 (如 Eclipse、SE|PY 或 PrimalScript) 时使用的一个类似工作流。

例如, 假设您正在开发一个游戏, 该游戏将从 ActionScript 3.0 和 Flash Player 8.5 的性能增加和效率提高中获益。

您可以在 Flash 8 Professional 中为该游戏创建所有资源。这包含图形、视频、动画等等。然后您可以在 ActionScript 和 Flex Builder 2 中进行所有编程, 并且编译时在 SWF 中包含 Flash 资源 (ActionScript 3.0 支持嵌入资源并使其与 ActionScript 类关联)。

所得到的结果是包含您游戏的所有代码和资源的一个 SWF 文件, 但是它利用了 ActionScript 3.0 和新的 Player API 以及虚拟机。

此外, Flex Builder 2 还包含一个命令行编译器 (Hallelujah!), 它允许您从命令行或从其他编辑器中编译您的项目。

当然, Flash 创作还将获得对 ActionScript 3.0 的完全支持, 我们已经计划并已着手开发下一个完整版的 Flash 创作 (代码名为“Blaze”)。因为还在开发周期的早期, 因此我们不能确定何时发布 Blaze (Flash Authoring 的正常开发周期是 18 到 24 个月)。但是, 2006 年的春天我们将会发布 Blaze 的 alpha 版, 其中包含 ActionScript 3.0 支持。这是一个预发行的 alpha 版本 (不是 Flash 8 的更新) , 购买了 Flash Professional 8 和/或 Macromedia Studio 8 的任何人都可以获得该版本。

播放器和创作工具为什么不同步?

最后, 有人在 IM 上对我说担心在春季发布播放器时 Flash 创作对新的播放器和语言不支持。必须承认, 最初听到此新闻时我也是这样想的。过去, Flash 创作工具和播放器密切相关, 因为播放器和创作工具执行相同的开发和发布周期。

但是, 那时 Flash Player 和 Flash 创作工具是 Macromedia 唯一基于 Flash 的技术。播放器已发展成为完整的平台, 其上配有庞大的产品和技术生态系统 (如 Breeze、Flex、Flash 创作等)。因此, 不可能使所有技术都同步。通常, 该播放器不会与依赖该平台的其他产品同步。的确, 目前的 Flex 开发人员还不能充分利用 Flash Player 8 中的所有功能, 直到春季 (发布 Flex 2 系列技术时) 我们发布该产品时开发人员才能做到这一点。

在春季发布 Flash Player 8.5 时, 我们也会发布 Flash 创作工具。在提供 Flash 创作工具的下一个完整版本前, Flash 创作将不支持播放器的所有功能 (尽管我已在上面提及,我们将通过公共 alpha 来实现)。

平台一直在发展并不断取得成功, 因此这只是水到渠成的事。最终结果是, 虽然播放器的创新速度更快了, 但是依赖播放器的产品要经过一段时间才能以对其用户有意义的方式来实现这些功能。

一个优势就是我们发布 Blaze 时, Flash Player 8.5 已经发布了很长一段时间。的确, 可以想象在发运 Blaze 时, 它的目标播放器已经采用了 50–70% (基于历史播放器采用率)。对于 Flash 来说, 这只是一个开始, 我们确保在发布 Blaze 时新功能能够被广泛使用。

我何时可以使用它?

既然我们已经讨论了 Flash 创作和 Flex 2 如何相关以及彼此如何相互补充, 现在可以开始使用了。转到 labs.macromedia.com*, 并下载 Flex Builder 和 Flash Player 8.5。

只需记住每个产品都是 alpha 版本。这意味着还有一些不尽人意的地方, 并且一些功能根本无法使用。虽然之前我们从来没有发布过软件, 但是我们相信尽早从您那里获得反馈的优势, 并且您将会看到我们为克服重重困难所做出的努力。

资源

我们已发布了有关 Flex 2 的许多信息。以下是您开始的一些链接:

关于作者

多年以来, Mike Chambers 一直在创建将 Macromedia Flash 与服务器端技术 (ColdFusion、Java、ASP 和 PHP)集成在一起的应用。他目前是 Flash 平台的开发人员关系产品经理。他有大量关于 Macromedia Flash 和 Rich Internet Applications 的著述, 同时他还与人合著有“Flash Enabled:Flash Design and Development for Devices”和“Generator and Flash Demystified”两本书。

Mike 于 1998 年在约翰霍普金斯高级国际研究学院 (SAIS) 获得了国际经济与欧洲研究专业的硕士学位。