Adobe Flash Builder 4.7 新功能详解

Adobe Flash Builder 4.7 Beta终于公开测试了。虽然版本号只增加了.1,增强的新功能可是一点也不含糊。我们一起来看看到底有什么新功能吧!
 
在我看来,最大的改变是终于提供64位版了!随着64位 Windows 7的普及(64位的硬件从N多年前就普及了),已经为64位应用的普及,提供了良好的基础,64位应用是大势所趋。毕竟,64位应用可以使用更大的CPU带宽和更多的内存,从而带来性能的提升。After Effect、Photoshop等早已变成64版的了,而 Flash Builder 4.7现在终于也变64位了。
 
不过,官方的Release Notes中并没有提到这项新功能。前几天 Lee Brimelow 介绍 Flash Builder 4.7的时候,可是把这一点放在最前面介绍的……
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
桌面的图标也换成 CS6 风格的了……虽然名字没有按以前说的那样改成CS6。
 
新的界面看上去变化并不大。
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
但实际上更新的功能很多,帮助文档中相关的内容比较分散,我整理了一下贴在这里:
 
一、首先是AIR SDK的版本更新到了3.4。
 
AIR 3.4和Flash Player 11.4的新功能,不用改配置就可以直接用了。
 
二、支持自定义ADT和ADL的启动配置。
 
在用AIR Debug Launcher(ADL)打包应用程序和用AIR开发工具(ADT)启动应用之前,你可以自定义的参数值。
 
当你启动或调试应用程序,你可以:
 

编辑自定义的参数值,

添加新的打包内容,

添加一个参数

通过提供一个空值来删除现有的参数。

所谓可自定义的参数值是你所配置的值或Flash Builder内部计算的值。
 
注: 对于ADL和非移动封装类型的导出发布版,不支持添加新的参数。
 
编辑参数值,请按照下列步骤操作:
 
在运行/调试配置对话框中,单击“自定义启动”。
 
 
Adobe Flash Builder 4.7 新功能详解
 
在自定义启动参数对话框中单击“编辑”。
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
选择你要编辑的参数值。
 
你可以选择把自定义值添加最后,也可以添加到一个特定的参数之前。
 
Flash Builder会先验证自定义值后,然后才接受它。例如,Flash Builder不允许空参数值。
 
建议你为运行在桌面和其它设备上的应用创建单独的构建目标,并适当地修改参数。
 
 
三、支持创建,管理和调试ActionScript Worker。
 
Flex开发者们终于可以用上多线程了。而且Flash Builder 4.7直接提供了新建“ActionScript Worker”这个选项,很方便。
 
Flash Builder 通过允许你将 ActionScript 程序作为 worker 运行,支持多线程 ActionScript 编程。Worker 与主 ActionScript 程序并行运行,并且可以与主 ActionScript 程序和其他 ActionScript worker 进行通信。
 
创建 ActionScript worker
 
你可以使用 Flash Builder 中的向导通过执行以下步骤来为你的 Flex 和 ActionScript 项目创建 ActionScript worker:
 
1. 选择“文件”>“新建”>“ActionScript Worker”。
 
Adobe Flash Builder 4.7 新功能详解
 
2. 为你的 ActionScript worker 指定一个包名称。如果未指定包,则会在默认包中声明该类。如果你指定了一个不存在的包文件夹,则向导将创建该文件夹。
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
3. 为 ActionScript worker 文件命名。 
4. 默认情况下,ActionScript worker 扩展自 flash.display.Sprite。因此,你只能选择扩展自 Sprite 的那些类。 
5. 添加包含你要在你的 ActionScript worker 中使用的常量和方法的任何接口。 
6. 指定以下任意代码生成选项:
 
从超类生成构造函数
通过调用 super() 生成构造函数。如果超类构造函数接受参数,则这些参数将包括在生成的构造参数中并通过 super() 调用向上传递。
 
生成从接口继承的函数
为各个接口方法生成函数存根。这些存根包括一个 return 语句,该语句返回 null(如果是基本类型,则返回 0 或 false)以便存根进行编译。
 
生成注释
在生成的函数或构造函数的主体中插入 "//TODO: implement function"。 
7. 指定 ActionScript worker 的用法。有关更多信息,请参阅指定 ActionScript worker 的用法。 
8. 单击“完成”以在指定的包中保存 worker(.as 文件扩展名)并在代码编辑器中将其打开。 
9. 为你的 ActionScript worker 编写代码。
 
Flash Builder 提供了 ActionScript worker 代码模板,供你用来快速为 worker 文件添加代码。有关使用代码模板的更多信息,请参阅代码模板。
要将某个现有的 ActionScript 类转换为 worker,请执行以下步骤:
 
1. 在包资源管理器中,选择你要转换为 ActionScript worker 的 ActionScript 类。 
2. 从“包资源管理器”上下文菜单中,选择“设置为 ActionScript Worker”。
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
每当你创建一个 ActionScript worker 时,该 worker 文件都将添加到“项目属性”对话框中的 ActionScript worker 列表中。
 
指定 ActionScript worker 的用法
在你创建 ActionScript worker、编辑 worker,或将 ActionScript 类转换为 worker 时,你可以指定 worker 的 用法。 
 
通过选择下列选项之一,你可以选择嵌入 worker 或在外部加载它:
 
嵌入的 Worker 为你要嵌入的 ActionScript worker 类生成一个 SWF 文件。该 SWF 文件将生成到项目的 "workerswfs" 文件夹中,而不是生成到用户选择的输出文件夹中。
 
当你选择嵌入一个 worker 时,Flash Builder 将生成一个名为 Workers.as 的类。生成的类包含用来嵌入 SWF 文件并创建 getter 方法的代码。你可以使用 getter 方法来访问嵌入的 ActionScript worker 的 ByteArray 类。
 
重要说明: 不要修改自动生成的类的内容。 
 
例如,如果你创建了一个名为 "MyWorker" 的嵌入 ActionScript worker,则会生成类似以下内容的代码:public class Workers 
    [Embed(source="../workerswfs/MyWorker.swf", mimeType="application/octet-stream")] 
    private static var MyWorker_ByteClass:Class; 
    public static function get MyWorker():ByteArray 
    { 
        return new MyWorker_ByteClass(); 
    } 
 
每当你添加、重命名、移动或删除 ActionScript worker 时,Flash Builder 都会修改在 Workers.as 文件中生成的代码。
 
如果项目中存在一个名为 Workers.as 的文件,则 Flash Builder 会按指定的顺序生成具有以下文件名的类:
 
1. WorkersManager.as 
2. WorkersHolder.as
 
如果具有所有这些名称的类都存在,则 Flash Builder 会通过按顺序在这些文件名后附加数字来生成具有唯一文件名的类。例如,Workers1.as、WorkersManager1.as、WorkersHolder1.as、Workers2.as,依此类推。如果需要,你可以选择重命名这些文件;Flash Builder 会记住并使用新文件名来生成代码。 
 
当你运行或调试包含嵌入的 ActionScript worker 的项目时,"workerswfs" 文件夹包含调试 SWF 文件。当你导出发行版时,发行版 SWF 文件将覆盖 "workerswfs" 文件夹中的调试 SWF 文件。
 
外部加载的 Worker 在用户选择的输出文件夹中为 ActionScript worker 类生成 SWF 文件。
 
在通过外部加载的 ActionScript worker 运行或调试项目时,调试 SWF 文件将生成到 "bin-debug" 文件夹中,发行版 SWF 文件将生成到 "release" 文件夹中。
 
管理 ActionScript worker 文件
项目的“属性”对话框允许你管理你的 ActionScript 或 Flex 项目中的 worker 文件。
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
1. 在包资源管理器中,选择一个项目。
2. 从主菜单中选择“项目”>“属性”,或者从上下文菜单中选择“属性”。此时会出现项目的“属性”对话框。 
3. 在左窗格中,选择“ActionScript Worker”。 
4. 根据需要添加、编辑或删除 worker 文件,然后单击“确定”。
 
添加 ActionScript worker 或者将 ActionScript 类转换为 worker。
Flash Builder 提供了用来将你的项目中的 ActionScript 类转换为 worker 的选项。
1. 转到项目的“属性”对话框并选择“ActionScript Worker”。 
2. 单击“添加”。 
3. 单击“浏览”以选择你要设置为 ActionScript worker 的类。Flash Builder 仅显示那些扩展自 Sprite 的类和公共类。 
4. 指定 worker 的用法。有关更多信息,请参阅指定 ActionScript worker 的用法。
另外,你还可以在包资源管理器中使用项目的上下文菜单,选择“设置为 ActionScript Worker”,然后指定 worker 用法首选项。
 
四、苹果iOS设备(USB)测试和调试支持。
在iOS设备上测试和调试应用程序时,不用连 iTunes 啦。我很久不做iOS应用了,这一部分就不多说。做iOS开发的朋友们,可以访问这里。
 
五、苹果的iOS模拟器测试和调试的支持。
虽然在实际的设备上测试和调试效果更好。但用模拟器可以节省大量时间,不要只用模拟器就好。不过需要注意的是iOS 模拟器仅在 Mac 上受支持,在 Windows 上不受支持。所以像我这种 N 多年不用 Mac 的人就直接飘过……
 
六、为跨屏幕项目配置多个构建目标。
在开发跨屏幕项目时,由于不同平台有不同的特性,以前那种为所有平台统一配置构建目标的方式会带来很多问题。而之前统一配置的方式,使得我们必须为同一个项目创建不同平台的副本,才能配置不同的构建目标。
而现在在为多个平台和设备开发移动设备应用程序时,Flash Builder 允许你为每个启动目标指定不同的构建配置。 
你可以创建具有必需的包内容(例如本机扩展、证书配置和各种平台 SDK)的自定义构建目标。 
有关为构建目标指定项目属性的更多信息,请参阅对移动设备项目进行打包的项目属性。
创建自定义构建目标
1. 在包资源管理器中,选择项目。 
2. 从主菜单中选择“项目”>“属性”,或者从上下文菜单中选择“属性”。 
3. 在“项目属性”对话框中,选择“Flex 构建打包”,并选择你要查看或更改其设置的目标平台。 
4. 要创建自定义目标,请单击“创建自定义”,并指定新目标的详细信息。然后,单击“创建”。你创建的目标将出现在可用目标列表中。 
5. 指定你要用来对移动设备应用程序、包内容、本机扩展,以及权限(如果适用)进行签名的数字证书。 
6. 单击“确定”。
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
当然很不幸的是我所用的版本中,按钮的文字还是英文的。
 
在启动配置中选择一个自定义构建目标
当你指定一个启动配置以运行或调试应用程序时,Flash Builder 会默认选取合适的构建目标设置。例如,假定你创建了一个构建目标 "d1" 来在 iOS 设备上运行应用程序。当你创建启动配置以在模拟器上调试应用程序时,将默认选择 "d1" 作为构建目标。不过,你可以更改默认选择并选择一个不同的构建目标。
 
将应用程序导出到自定义目标
除了标准的受支持平台之外,你还可以将移动设备应用程序导出到受支持的自定义目标。你可以使用“导出发行版”功能以仅在设备上启动自定义目标。当你选择“项目”>“导出发行版”时,将显示为该项目配置的所有基于设备的目标。 
 
如果某个设备有多个构建目标,则目标名称将以 platformname-targetname 格式显示。例如,如果你配置了两个构建目标以在 iOS 设备上启动应用程序,则目标名称将显示为 AppleiOS-targetname1 和 AppleiOS-targetname2。所创建的应用程序包名称指定了匹配的目标名称。
 
七、支持Apache的Flex SDK
 
 
 
Adobe Flash Builder 4.7 新功能详解
 
 
虽然目前Apache的Flex SDK也没有什么重大改进,但以后就看他们的了。
 
如果想下载Apache Flex或者想进一步了解Flash Builder中使用Apache的Flex SDK的更多信息,请参阅http://www.adobe.com/go/apacheflex_download。
 
八、Falcon!
 
Adobe Flash Builder 4.7 新功能详解
 
传说中的下一代更快更强的编译器:Falcon(猎鹰)终于公开露面了。Adobe Flash Builder 4.7 新功能详解
 
九、针对import的改进
 
1.添加缺少的import
如果你的 ActionScript 脚本或 MXML 脚本块中有未定义的变量,你可以使用“组织导入”功能一次添加缺少的所有 import 语句。
 
2.使用通配符整合来自同一个包的 import 语句
如果有多个来自同一个包的 import 语句,则可以在 import 语句中使用通配符而不需要将语句重复多次。
在使用 <package> * 通配符之前,你可以指定针对同一个包中的类型允许的 import 语句数。例如,如果有来自 flash.events 包的多个 import 语句,则 Flash Builder 会将所有 import 语句整合为:import flash.events.*; 
默认情况下,如果你使用了来自同一个包的 99 个以上 import 语句,则 Flash Builder 将应用 <package>.* 通配符。你可以使用“组织导入”首选项对话框更改此默认值。
 
十、新的快速辅助
 
1. 将参数分配给新的或现有的变量
 
如果你有包含参数的函数,“快速辅助”允许你将参数分配给一个新的实例变量。
例如,如果有包含参数 arg 的函数,如下所示:
class A{ function method(arg:String):void { } }
将光标置于 arg 内,并调用“快速辅助”。然后,选择“将参数分配给新实例变量”。语句将更改为:
class A { private var arg:String; function method(arg:String):void { this.arg = arg; } }
如果你有已经定义的实例变量,可以将参数分配给其中之一。
例如,如果有一个变量 myArg,定义如下:
class A { private var myArg:String; function method(arg:String):void { } }
将光标置于 arg 内,并调用“快速辅助”。“快速辅助”检测到 myArg 变量,并显示选项“将参数分配给实例变量 'myArg'。选择此选项会将语句更改为:
class A { private var myArg:String; function method(arg:String):void { myArg = arg; } }
 
2. 将本地变量转换为参数
 
如果你的函数内有局部变量,则“快速辅助”允许你将局部变量转换为参数。 
例如,如果函数内存在一个变量,如下所示: 
 
public function method():void { 
var i:int = 10; 
将光标置于变量定义内的任意位置,并调用“快速辅助”。选择“将局部变量转换为参数”。将创建如下所示的参数:
 
public function method(i:int):void { 
    i = 10; 
}
 
3. 使用转换类型创建新的局部变量
 
“快速辅助”允许你在一个条件表达式内创建转换类型的局部变量。 
例如,如果有以下 if 语句:
 
if(myObject is Button) { 
或者有一个 while 语句: 
while(myObject is Button) { 
 
请将光标置于 if 或 while 语句内,并调用“快速辅助”。“快速辅助”将显示选项“使用转换类型创建新的局部变量”。选择此选项会生成以下条件表达式:
 
if(myObject is Button) { 
    var button:Button = myObject as Button; 
 
4. 将条件语句替换为 If-Else 语句
“快速辅助”允许你将条件语句替换为 if-else 语句。 
例如,如果有一个条件语句,如下所示: 
 
var foo:String = bool?"Yes":"No"; 
 
请将光标置于条件语句 bool?"Yes":"No" 内的任意位置,并调用“快速辅助”。然后,选择“将条件语句替换为 If-Else 语句”。将生成如下所示的 if-else 语句: 
 
var foo:String; 
    if (bool) 
        { 
            foo = "Yes"; 
        } 
    else 
        { 
            foo = "No"; 
        } 
 
5. 添加 Else、Else-If、Finally 和 Catch 语句
 
如果有一个 If 语句,你可以使用“快速辅助”来添加 Else 和 Else-If 语句。 
例如,如果有以下 if 语句:
 
 var foo:Boolean = false; 
if(foo) { 
 
请将光标置于 if 内,并调用“快速辅助”。“快速辅助”将显示添加 else 和 else-if 语句的选项。如果你已定义了一个 else 语句,则“快速辅助”将显示添加 else-if 语句的选项。
 
同样,如果你已定义了一个 try 语句,则可以添加 finally 和 catch 语句。
 
6. 将匿名函数转换为命名函数
 
如果你有匿名函数,你可以使用“快速辅助”快速将其转换为命名函数。 
例如,如果有如下所示的匿名函数: 
 
public function method1():void; 
    var foo:Function = function(x:int, y:int, z:int):void; 
    { 
        trace(x, y, z); 
    } 
 
将光标置于 function() 内,然后按 Control+1。然后选择“将匿名函数转换为命名函数”。将创建如下所示的命名函数:
 
public function method1():void; 
    var foo:Function = fooFunction; 
protected function fooFunction(x:int, y:int, z:int):void; 
    trace(x, y, z); 
}
 
十一、实时错误高亮
 
当你在 ActionScript 文件中或者在 MXML 文件内的 ActionScript 块中键入 ActionScript 代码时,Flash Builder 将在你键入时检测错误。在保存文件或编译代码之前,你可以快速找出这些错误。
 
错误指示器(在错误图标旁边有一个灯泡)表示你可以使用“快速修正”来修正问题。
 
 
 
Adobe Flash Builder 4.7 新功能详解
 
 

要使用“快速修正”功能,请执行以下操作之一:

在编辑器中,从上下文菜单中选择“快速修正/辅助”,然后选择所需的选项。

使用键盘快捷键 Control+1 (Windows) 或 Command+1 (Mac OS),然后选择所需的选项。

在编辑器中,代码行旁的(红叉)表示没有可用于该错误的“快速修正”选项。

要关闭“当前错误加亮”,请在“首选项”对话框中选择“Flash Builder”>“编辑器”,然后取消选择“键入时报告问题”。这样,将只会在你保存文件后在“问题”视图中报告代码错误。你还可以在“问题”视图中使用“快速修正”选项来修正错误。要执行此操作,请在“问题”视图中右键单击错误,然后选择“快速修正”。

十二、创建 ActionScript 库项目

不知道为什么,官方的Release Notes中没有提到这项新功能。

在Flash Builder之前的版本里,只能创建 Flex 库项目。而对于我这种更喜欢直接用 ActionScript 写代码的人来说,现在可以使用 ActionScript 项目库向导构建 ActionScript 自定义代码库。通常,你创建 ActionScript 库项目,添加特定的 ActionScript 类,然后编译项目。然后,Flash Builder 生成你可以分发给其他开发者或在应用程序之间共享的 SWC 文件。

“新建 ActionScript 库项目”向导会指导你完成创建 ActionScript 库项目的步骤,提示你提供项目的名称、位置和构建路径信息。

Adobe Flash Builder 4.7 新功能详解
 

1. 选择“文件”>“新建”>“ActionScript 库项目”。

2. 输入项目名称,然后指定以下内容:

项目位置 默认位置为当前的工作空间。在 Windows 上,默认工作空间位置是 C:\Documents and Settings\username\Adobe Flash Builder\。在 Macintosh 平台上,默认工作空间位置为 /Users/username/Adobe Flash Builder/。取消选择“使用默认位置”选项后,可以选择其它项目位置。

Flex SDK 版本 选择“默认”或“特定”。还可以单击“配置 SDK”链接,在“首选参数”主页面上添加、编辑或删除 SDK。

使用旧版编译器 对于 ActionScript 项目,Flash Builder 默认使用 Falcon 编译器。如果你使用的是 Adobe Flex SDK 4.6 或更早版本的 Flex SDK,请选择“使用旧版编译器”以使用旧版编译器。

包括 Adobe AIR 库 如果你的库必须使用 AIR 功能(例如访问 AIR API),请选择此选项。然后,Flash Builder 会更改该新 ActionScript 库项目的库路径,使该路径包括 airglobal.swc 和 airframework.swc。

基于 Web 的 Flex 项目不能使用该库。如果要编写的通用库仅用于基于 Web 的应用程序或者用于基于 Web 或 AIR 的应用程序,请不要选择此选项。

3. 单击“下一步”。

4. (可选)设置构建路径信息。例如,可以将文件夹添加到包含要包括在 SWC 文件中的组件的项目源路径中。还可以添加要包括在库项目中的其它项目、文件夹或库 SWC 文件。请参阅在项目中使用 SWC 文件。

5. 输入完项目设置后,单击“完成”。

唯一想吐槽的是“设计”视图的取消。看来Adobe离可视化编程越来越远了。本来学设计的老师通过设计视图还能学一点Flash Builder,现在……

最后,要特别说明的是:由于还是Beta版,Flash Builder 4.7目前还不太稳定。如果遇到问题,希望大家少一点责骂,多去这里提交Bug!

而且,作为Beta版,Flash Builder 4.7是可以和Flash Builder 4.6“和平共处”的哦!所以,强烈建议大家先不要卸载你的Flash Builder 4.6!

注意,友情提供FB4.7的使用说明书:
http://help.adobe.com/zh_CN/flashbuilder/using/index.html
上一篇:JAVA类型信息——反射机制


下一篇:VarHandle解析