(轉)Flash與Flex配合開發,flash導出swc到flex
http://blog.csdn.net/wapjingle/article/details/7197531
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的第一幀,在實例化時執行
- public function Fish() {
- // constructor code
- this.stop();
- }
- //此函數可被FB調用
- public function 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();
- this.addElement(fish);
- 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=”*”
2) 如果要導出的影片剪輯中有形狀動畫,導出swc后到flex出錯,暫時不知道原因。
浙公網安備 33010602011771號