首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

Flex 应用 Flash MovieClip的 几种方法

2012-11-09 
Flex 使用 Flash MovieClip的 几种方法转自:http://blog.csdn.net/wangchibest/archive/2008/10/28/316454

Flex 使用 Flash MovieClip的 几种方法

转自:http://blog.csdn.net/wangchibest/archive/2008/10/28/3164545.aspx


1> Flex 与 Flash 中的类对应关系

Flex 中的 UI元素 大都继承自 UIComponent类
?? ? UIComponent > FlexSprite> Sprite >DisplayObjectContainer>InteractiveObject >Displayobject

Flash 中的架构 (Sprite类的继承关系)
?? ?MovieClip > Sprite > DisplayObjectContainer > InteractiveObject >Displayobject

??Flex 中无法直接使用Flash 中的MovieClip元件。只能通过工具 将Flash MovieClip 转成 UIMovieClip, UIMovieClip 继承自 MovieClip,?MovieClip?类用于实现其使用方式与普通 Flex 组件一样的某个 Flash 组件的必要接口。因此,MovieClip?的子类可以用作 Flex 容器的子项或外观,它可以响应事件、定义视图状态和转换,还可以像所有 Flex 组件一样使用效果。

?

2> 进行转换所需要的工具。

??(A)下载 Flex Component Kit 的地址。

??https://www.adobe.com/cfusion/entitlement/index.cfm?e=flex%5Fskins

??注册用户,登陆,选择最下面的?FLEX COMPONENT KIT FOR FLASH CS3 PROFESSIONAL?下载。

??(B)要运行这个,你还需要Extension Manager, 下载地址:??http://download.macromedia.com/pub/dw_exchange/extension_manager/win/em18_install.exe

??(想放个图片在这里,不会,呵呵~~)

?

3> 下面开始将几种使用Flash MovieClip 的方式

???<1>直接用 Load swf的方式 ?

<mx:Script>    <![CDATA[    private function playAnimation():void    {        var flashContent:MovieClip = loader.content as MovieClip;        flashContent.gotoAndPlay(1);    }    ]]></mx:Script>    <mx:VBox backgroundColor="#FFFFFF">         <mx:SWFLoader id="loader" source="CarRace.swf"/></mx:VBox>    <mx:Button label="Play Movie" click="playAnimation()" />    <2> 将swf 文件 Embed 进 Flex的方式(这种做法时,要将Flash的贞率调至 24)<mx:Script>    <![CDATA[               [Embed(source="CarRaceAsSymbol",symbol="mcCarRace")]    [Bindable]    private var flashSymbol:Class;            private function playAnimation():void    {        var flashContent:MovieClip =        loader.content as MovieClip;        flashContent.gotoAndPlay(1);    }    ]]></mx:Script><mx:VBox backgroundColor="#FFFFFF">         <mx:SWFLoader id="loader" source="flashSymbol"/></mx:VBox>    <mx:Button label="Play Movie" click="playAnimation()"/>
?

???<3> 最常用的一种,用我们刚才下载的工具,将要导出的Flash MovieClip 编译为SWC,Flex 可以直接调用。

?

?? ? ?1.在 Flash Library 中选中我们需要的MovieClip, 选中Menu中的 Commands,选中Convert Symbol to Flex Component. 察看这个MovieClip的linkage属性,你会发现 这个MovieClip父类已经从MovieClip 变成了UIMovieClip.

?? ? ?2.这时,在FlashLibrary 中,选中这个MovieClip,右键-〉选择Export SWC File.(也可以直接从File Menu中选择 Publish) 导出SWC.

?? ? ?(我觉得更合理的做法是,自定一个基类,让这个要导出的MovieClip去继承,这样做法的好处是可以使得 这个MovieClip具有了一些自定义的行为,比如事件,如下代码里的做法,Flex 可以监听到 Flash MovieClip 内部的事件)。

package flashcomps{    import mx.flash.UIMovieClip;    import flash.events.Event;    import flash.events.TextEvent;        [Event(name="start",type="flash.events.Event")]    [Event(name="finish",type="flash.events.TextEvent")]        public class CarRaceClass extends UIMovieClip    {        public function CarRaceClass()        {            super();        }                public function go():void        {            gotoAndPlay(1);            dispatchEvent(new Event("start"));        }    }}
?通过使这个 MovieClip 继承这个类,使得该类可以监听到Start 和 Finish的两个事件。

?

?? ?〈3〉Flex Project Menu-> Properties->Flex Build Path->Library Path 加入SWC存放的路径,(也可以直接将SWC 放到lib 文件夹里去,但这样不好,应该让引用的SWC在Flash的工作目录下,这样保证Flash 编译的时候,SWC也相应的编译)

这样:Flex 中可以 直接使用该组件了。比如: ?

    <FlashComps:FlashCarRace id="race" x="100" y="100"/>
?

热点排行