(转)在FlashBuilder里的ActionScript工程中使用Flash CS5中的类 fl.controls库

在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组件库,可以让您在设计交互性较强的网站时,又多了一把提高效率的利器。

原文地址:https://www.cnblogs.com/hisiqi/p/2922218.html