Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52596
  • 博文数量: 22
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-16 17:30
文章分类
文章存档

2016年(1)

2014年(14)

2013年(7)

我的朋友

分类: 其他平台

2013-12-24 14:13:00

  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 的地址。
  %5Fskins
  注册用户,登陆,选择最下面的 FLEX COMPONENT KIT FOR FLASH CS3 PROFESSIONAL 下载。
  (B)要运行这个,你还需要Extension Manager, 下载地址:
  (想放个图片在这里,不会,呵呵~~)
  3> 下面开始将几种使用Flash MovieClip 的方式
  <1>直接用 Load swf的方式
  private function playAnimation():void
  {
  var flashContent:MovieClip = loader.content as MovieClip;
  flashContent.gotoAndPlay(1);
  }
  ]]>
  <2> 将swf 文件 Embed 进 Flex的方式(这种做法时,要将Flash的贞率调至 24)
  [Embed(source="CarRaceAsSymbol",symbol="mcCarRace")]
  [Bindable]
  private var flashSymbol:Class;
  private function playAnimation():void
  {
  var flashContent:MovieClip =
  loader.content as MovieClip;
  flashContent.gotoAndPlay(1);
  }
  ]]>
  <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 中可以 直接使用该组件了。比如:
       

更多关于flex开发的知识可以查询天地会
阅读(1823) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~