在FlashBuilder里的ActionScript工程中使用Flash CS5中的类
1、用Flash CS5打开User Interface.fla文件
我的路径:C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\Configuration\Components\User Interface.fla
你可以参考我的路径找到User Interface.fla这个文件在你机器上的位置。
2、找到Flash CS5的菜单,文件->发布设置->在弹出的窗口上选择Flash选项卡
然后在SWF设置中,将导出SWC打上勾
3、点击发布按钮,发布SWC,发布的文件和User Interface.fla在同一个目录。
4、将User Interface.SWC文件拷贝到你的ActionScript工程,然后引用这个SWC。
5、完毕,现在在你的ActionScript中就可以导入类似import fl.controls.CheckBox;这样的控件并使用了。
============================================================================================
之前flash cs3版本导出元件为swc到flex时要下载一个插件,现在最新版的flash cs5已经不用了。步骤:
1、直接选择库中的元件,主菜单——命令——将元件转换为flex组件。
2、转换成功后设置一下该元件的属性,为它添加一个链接,例如aaa,这时你会发现这个flex元件的基类变成了“mx.flash.UIMovieClip”。
3、然后发布该fla,到时就可以生成swc了,如果库中有多个转换好的flex元件则会一起导出在该swc中。
4、在flash builder中设置一下项目属性,在“flex构建路径”中添加刚才生成的swc。
5、现在flex中就可以使用该swc了,使用方法为<local:aaa />,记得在命名空间前加上 xmlns:local="*"。
经研究还发现,如果该flex元件还绑定了一个类的话则该导出的flex元件也会拥有该绑定类的方法和属性。
============================================================================================
怎样在flash builder中使用flash组件
flex组件库很丰富,但是flex组件库有一个很严重的问题:执行效率低下。
今天尝试做一个工具,在TextArea中粘贴1万行数据,然后对这些数据进行分析、排序。结果发现使用Flex组件时,把剪贴板中的文字粘贴到Flex TextArea组件时,会导致浏览器卡住5-10秒的时间。因素来听说flex组件性能低下,所以又重新在flash cs5中试了一下fl.controls.TextArea组件,结果大吃一惊,进行相同的操作,flash的TextArea组件只会卡住1~2秒钟左右。接下来,就有了下面的一番在flash builder中使用fl.controls.*组件的经历。
第一步,为了提升执行效率,不能使用Flex组件库。我选择了在flash builder中创建AS3项目。
第二步,为了在flash builder的AS3项目中使用flash的组件,需要导入几个flash cs5提供的.swc库文件,从AS3项目中指定从以下几个目录中导入库文件:
1,/Common/Configuration/ActionScript 3.0/libs,导入flash基本库
2,/Common/Configuration/ActionScript 3.0/FP10,导入Flash Player 10的库
3,还需要导入fl.controls.*中的组件,但是这些组件是以.fla的形式提供的。需要从flash中把这些组件做成元件,导出为flex能够使用的.swc库文件。也可以从此处直接下载两个库文件,可以免除一些操作上的麻烦事:Fl_component_ui.rar , Fl_component_video.rar 。
完成以上这些东西后,就可以在flash builder的AS3项目中直接使用flash的组件了。具体的,我们可以建立一个用于显示信息的视图类:
package{ import fl.controls.Button; import fl.controls.TextArea; import fl.core.UIComponent; public class ViewFrame extends UIComponent{ private var textArea:TextArea; private var sortButton:Button; public function ViewFrame(){ this.width = 800; this.height = 600; this.x = 0; this.y = 0; this.textArea = new TextArea(); this.textArea.width = 600; this.textArea.height = 400; this.textArea.x = 100; this.textArea.y = 50; this.sortButton = new Button(); this.sortButton.width = 100; this.sortButton.height = 50; this.sortButton.label = "开始排序"; this.sortButton.x = 350; this.sortButton.y = 475; this.addChild(this.textArea); this.addChild(this.sortButton); trace("this.addChild(this.sortButton);"); } } } 然后,再创建一个主文件: package { import fl.controls.Button; import fl.controls.TextArea; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; public class Tool extends Sprite { public function Tool() { this.stage.align = StageAlign.TOP_LEFT; this.stage.scaleMode = StageScaleMode.NO_SCALE; var viewFrame:ViewFrame = new ViewFrame(); this.addChild(viewFrame); } } }
以调试模式运行项目,可以看到熟悉的fl.controls包中的组件都可以在flex as3项目中可以像flash中一样使用cs3的fl.controls.*中的组件库了。
网站建设工作经常会有一些交互性很强的页面,我相信,通过在Flash Builder中使用flash组件库,可以让您在设计交互性较强的网站时,又多了一把提高效率的利器。