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

Flash 与 Flex 配合开发,flash 导出 swc 到 flex

发布时间:2020-12-15 18:28:11 所属栏目:百科 来源:网络整理
导读:Flash与Flex常配合起来开发游戏,通常方法有两种: 1 Flash创建元件资源给FB,由FB实现编译 2 FB创建纯ActionScript项目,作为Flash的文档类,由FP编译( 查看详细讲述 ) 这里主要说明第1种,这是一种很多程序员都使用的方式。Flash创建元件资源给FB,还有
Flash与Flex常配合起来开发游戏,通常方法有两种:
1 Flash创建元件资源给FB,由FB实现编译
2 FB创建纯ActionScript项目,作为Flash的文档类,由FP编译( 查看详细讲述
这里主要说明第1种,这是一种很多程序员都使用的方式。Flash创建元件资源给FB,还有两种方式:
1 SWF。Flash导出SWF,FB通过loader或者SWFLoader加载;
2 SWC。Flash导出SWC,FB项目类库中添加SWC;
第一种方式已经有很多介绍,这里不多说。笔者偏向第二种方式。下面说明实现步骤:

强调一下,Flash必须使用Flash CS5,之前版本的Flash无法生成供FB直接调用的SWC,需要下载一个插件Flex Component kit,较麻烦,所以请先安装Flash CS5。
我们做一个DEMO,由FLash制作一个鱼元件,元件第1帧是蓝色,第10帧是黄色。将鱼元件导出为swc,在flex中通过按钮控制鱼元件在1和10帧之间跳转。
1. 在Flash CS5中创建FLA文件,创建一个影片剪辑,起一个英文名字,如Fish,在“高级”中勾选”Export for ActionScript”。其它默认。
2. 绘制你的动画。
3. 在库面板中选中创建的影片剪辑,菜单中”Commands”->”Convert symbol to Flex Component”。OUTPUT面板会输出信息。
4. (可选)如果你想为这个影片剪辑编写一些逻辑代码,右击库中影片剪辑,选择”Edit Class”,会为你创建一个AS文件,默认与FLA文件处于根包中,添加如下代码:
package ?? {
? ?? ??? //默认导入的是flash.display.MovieClip
? ?? ??? import ?mx . flash UIMovieClip ;
//继承修改为UIMovieClip,这样可以在FB中直接当作组件使用
public ? class ?Fish? extends ?UIMovieClip? ? ?? ?? ?? ?? ??? //停止在MovieClip的第一帧,在实例化时执行 ?
? ?? ?? ?? ?? ? ? function ?Fish ( ) ? ? ?? ?? ?? ?? ?? ?? ?? ? // constructor code
? ?? ?? ?? ?? ?? ?? ?? ? this . stop ) ? ?? ?? ?? ?? ?? }
? ?? ?? ?? ?? ?? //此函数可被FB调用
? ?? ?? ?? ?? ?? ?sayHello : String return ? "Hello,I am a fish" ? ?? ??? 5. 保存Flash文件,执行Flash的发布。此时会在FLA的同目录生成一个与FLA文件同名的SWC文件,如FlashSymbol.swc。
6. 创建Flex项目,拷贝FlashSymbol.swc到项目的libs目录,或者设置项目库文件添加这个SWC文件。在Flex主文件mxml中写下:

<?xml version="1.0"?encoding="utf-8"?>
<s:Application?xmlns:fx=http://ns.adobe.com/mxml/2009
? ?? ?? ?? ?? ?? ?? ?? ?? ?xmlns:s="library://ns.adobe.com/flex/spark"
? ?? ?? ?? ?? ?? ?? ?? ?? ?xmlns:mx="library://ns.adobe.com/flex/mx"?minWidth="955"?minHeight="600" ? ?? ?? ?? ?? ?? ?? ?? ???creationComplete="init()"?xmlns:local="*"? >
<fx:Script>

<![CDATA[
? ?? ?? ?? ?? ?? ?? ?? ?import mx.core.UIComponent;
? ?? ?? ?? ?? ?? ?? ?? ?private var fish:Fish;
? ?? ?? ?? ?? ?? ?? ?? ?private function init():void{

? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???fish = new Fish();


?//此处在 flash builder 4.6 会出错

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // this.addElement(fish);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 应改为:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?var ui:UIComponent = new UIComponent();
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ui.addChild(_fish);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?addElement(ui);


? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???fish.x = fish.y =?50;
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//调用fish里的方法
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???trace(fish.sayHello());
? ?? ?? ?? ?? ?? ?? ?? ?}
? ?? ?? ?? ?? ?? ?? ?? ?private function changeColor(event:MouseEvent):void{
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???if(changeBtn.label ==?"蓝色"){
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //控制鱼元件的帧跳转
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? fish.gotoAndStop(10);
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? changeBtn.label =?"黄色";
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???}else{
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? fish.gotoAndStop(1);
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? changeBtn.label =?"蓝色";
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???}
? ?? ?? ?? ?? ??]]>
</fx:Script>
<s:Button?label="蓝色"?id="changeBtn"?click="changeColor(event);"??x="264"?y="10"/>
</s:Application>
注意:

1) 在Application标签中添加:xmlns:local=”*”

(编辑:李大同)

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

    推荐文章
      热点阅读