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

  • 相关阅读:
    【转】Quartz企业作业调度配置参考
    [转]quartz中参数misfireThreshold的详解
    【转】MFC下拉框使用方法
    MFC中使用tinyxml
    【转】MYSQL中复制表结构的几种方法
    C++错误:重定义 不同的存储类
    【转】vbsedit提示“无法创建空文档”解决办法
    wordbreak和wordwrap
    css字体font
    js和jquery书籍
  • 原文地址:https://www.cnblogs.com/hisiqi/p/2922218.html
Copyright © 2020-2023  润新知