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(); ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//调用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=”*” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- react 中使用 lodash 中的 _.throttle
- objective-c – 如何在堆栈视图中设置容器的高度?
- sencha-touch-2 – Sencha Touch 2,嵌套XML解析nodeValue
- ruby-on-rails – Rails(ActiveRecord)多对多表
- c# – 如何更改Sitecore登录页面上的消息?
- 用Swift做个游戏Lecture 03 —— 实现foreground的持续移动
- flex ant -- 利用apache ant編譯flex項目
- Oracle收购Apiary来加强其API集成云
- Postgresql 恢复一例
- ruby-on-rails – 为什么RSpec功能规范使用Capybara,Polter