加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

MovieClip

发布时间:2020-12-15 01:15:00 所属栏目:百科 来源:网络整理
导读:1 Flex 与 Flash 中的类对应关系 Flex 中的 UI元素 大都继承自 UIComponent类 ?? ? UIComponent FlexSprite Sprite DisplayObjectContainerInteractiveObject Displayobject Flash 中的架构 (Sprite类的继承关系) ?? ?MovieClip Sprite DisplayObjectContain

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的方式??

  1. <mx:Script>
  2. ????<![CDATA[
  3. ????private?function?playAnimation():void
  4. ????{
  5. ????????var?flashContent:MovieClip?=?loader.content?as?MovieClip;
  6. ????????flashContent.gotoAndPlay(1);
  7. ????}
  8. ????]]>
  9. </mx:Script>
  10. ????
  11. <mx:VBox?backgroundColor="#FFFFFF">?????
  12. ????<mx:SWFLoader?id="loader"?source="CarRace.swf"/>
  13. </mx:VBox>
  14. ????
  15. <mx:Button?label="Play?Movie"?click="playAnimation()"?/>

?? ?<2> 将swf 文件 Embed 进 Flex的方式这种做法时,要将Flash的贞率调至 24

  1. <mx:Script>
  2. ????<![CDATA[???????????
  3. ????[Embed(source="CarRaceAsSymbol",symbol="mcCarRace")]
  4. ????[Bindable]
  5. ????private?var?flashSymbol:Class;
  6. ????????
  7. ????private?function?playAnimation():void
  8. ????{
  9. ????????var?flashContent:MovieClip?=
  10. ????????loader.content?as?MovieClip;
  11. ????????flashContent.gotoAndPlay(1);
  12. ????}
  13. ????]]>
  14. </mx:Script>
  15. <mx:VBox?backgroundColor="#FFFFFF">?????
  16. ????<mx:SWFLoader?id="loader"?source="flashSymbol"/>
  17. </mx:VBox>
  18. ????
  19. <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 内部的事件)

  1. package?flashcomps
  2. {
  3. ????import?mx.flash.UIMovieClip;
  4. ????import?flash.events.Event;
  5. ????import?flash.events.TextEvent;
  6. ????
  7. ????[Event(name="start",type="flash.events.Event")]
  8. ????[Event(name="finish",type="flash.events.TextEvent")]
  9. ????
  10. ????public?class?CarRaceClass?extends?UIMovieClip
  11. ????{
  12. ????????public?function?CarRaceClass()
  13. ????????{
  14. ????????????super();
  15. ????????}
  16. ????????
  17. ????????public?function?go():void
  18. ????????{
  19. ????????????gotoAndPlay(1);
  20. ????????????dispatchEvent(new?Event("start"));
  21. ????????}
  22. ????}
  23. }
通过使这个 MovieClip 继承这个类,使得该类可以监听到Start 和 Finish的两个事件。

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读