`

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"/>
 
分享到:
评论

相关推荐

    flex与flash的交互

    通过使用`mx.controls.MovieClip`或`mx.controls.VideoDisplay`组件,可以轻松地在Flex界面中展示和控制Flash内容。 2. **ActionScript通信**:Flex和Flash都是基于ActionScript的,因此两者可以通过共享...

    flex+flash(Chapter02)

    2. **SWF对象的嵌入**:在Flex项目中,可以通过`flash.display.MovieClip`类来嵌入Flash SWF文件,这样可以在Flex应用程序中播放Flash动画或者使用已有的Flash组件。 3. **ActionScript 3.0的同步与异步通信**:在...

    Flex控制swf简单源码

    在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本篇文章将深入探讨如何使用Flex来控制SWF文件,以及相关的关键技术点。 首先,SWF全称是Small Web ...

    flex 劲爆游戏 flex 劲爆游戏

    5. **动画和图形**:Flex支持使用DisplayObject类及其子类创建复杂的矢量图形和动画效果,例如MovieClip和Shape类。游戏中的角色移动、技能特效等可以通过这些类来实现。 6. **事件处理**:在游戏交互中,事件监听...

    Flex 开门特效,很具体很全面。

    3. **Timeline Control**:在ActionScript中,可以使用`flash.display.MovieClip`类的`play()`、`stop()`等方法控制时间轴,实现动画播放。开门特效可能就需要通过控制时间轴来完成门开合的过程。 4. **Tweening...

    006.rar_FlashMX/Flex源码_FlashMX_

    FlashMX是Adobe公司于2002年推出的版本,它不仅强化了图形编辑功能,还引入了ActionScript 2.0,这是一种面向对象的编程语言,极大地增强了Flash应用程序的交互性和功能。FlashMX允许开发者创建丰富的互联网应用程序...

    dexinqing1_flash源码_

    【标题】"dexinqing1_flash源码_" 暗示了这是一个关于使用Flash开发的项目,特别是与图片展示相关的代码。"Flash"是Adobe公司曾经流行的一种交互式动画设计工具,广泛用于创建丰富的互联网应用程序,包括动态图像...

    flash builder拼图游戏

    在Flash Builder中,我们可以使用BitmapData类来处理图像,并通过draw()方法将图像加载到舞台上。 2. **事件监听**:游戏的核心在于鼠标操作,因此我们需要监听鼠标事件。使用Flash Builder,我们可以添加...

    AS3中的PNG编码—用FLASH生成PNG

    6. **与Flex框架的集成**:如果你使用Flex框架,可以将BitmapData对象与Flex的UIComponent或VisualElement结合,通过设置`source`属性来显示生成的PNG。 通过理解以上概念和技术,开发者可以在AS3中灵活地生成PNG...

    flash 时钟源代码 as

    在IT行业中,ActionScript 3.0(AS3.0)是Adobe Flash Professional和Flex Builder等工具中使用的一种编程语言,主要用于创建交互式内容、网页动画以及富互联网应用程序(RIA)。"Flash 时钟源代码 AS"是一个使用AS...

    ActionScript 3 For Adobe Flash CS4 Professional

    ActionScript 3是Adobe Flash平台的一种面向对象的脚本语言,主要用于开发Flash和Flex应用程序。随着Flash CS4 Professional的推出,许多设计师和开发者需要从ActionScript 2迁移到ActionScript 3。本指南为设计师和...

    flash转盘抽奖程序

    【Flash转盘抽奖程序】是基于ActionScript 3(AS3)开发的一种互动式应用程序,广泛应用于各种活动、促销和游戏中,为用户提供一种趣味性的抽奖体验。ActionScript 3是Adobe Flash Professional和Flex Builder等工具...

    flash as3 丛林对打 对战小游戏

    ActionScript 3是Adobe Flash Professional和Flex Builder等开发工具中的主要编程语言,它基于ECMAScript规范,具有强大的面向对象能力,使得开发者能够创建出功能丰富的交互式内容。在《丛林对打》这款游戏中,AS3...

    抽奖机 滚动抽奖机 flash as3

    AS3是Flash Professional和Flex Builder等开发工具支持的主要编程语言,提供了强大的面向对象特性,适用于创建动态内容和交互式应用程序。 首先,AS3的使用使得这款抽奖机具备了高效和灵活的特点。AS3的事件驱动...

    打汽球游戏flash as3.0 源代码

    【打汽球游戏flash as3.0 源代码】是一个基于ActionScript 3.0开发的Flash游戏,它提供了一种有趣的方式来学习和理解AS3编程语言的基础知识。ActionScript 3.0是Adobe Flash Professional和Flex Builder等工具中用于...

    AS3写的一个TANK小游戏

    AS3是Flash Professional和Flex Builder等开发工具广泛使用的脚本语言,它为游戏开发提供了丰富的功能和高效的性能。 【描述】提到"这是一个在Flex下的TANK小游戏,总体来说比较完整了。总共有50个关卡。"这表明...

    ActionScript3.0中文版chm帮助文档

    ActionScript 3.0是Adobe开发的一种编程语言,主要用于创建富互联网应用程序(RIA),特别是用于Adobe Flash和Adobe AIR平台。这个“ActionScript 3.0中文版chm帮助文档”是一个详细的学习资源,包含了该语言的全面...

    ActionScript3.0中文版

    ActionScript3.0是Adobe开发的一种面向对象的编程语言,主要应用于Flash Professional、Flex Builder等工具,用于创建交互式Web内容、游戏以及富互联网应用程序(RIA)。本资源为"ActionScript3.0中文版",提供了...

Global site tag (gtag.js) - Google Analytics