搜尋部落格文章

2012年4月13日 星期五

美術元件的打包載入方式

做flash程序經常會用到美工提供的素材,幾年下來總結了一些經驗,發現花樣還不少。現在匯總如下:

1.打包成swc類庫形式:

這種方法比較簡單,操作步驟如下:

1)將flashcs中想要使用的東西,轉換成原件

2)在庫中右鍵該原件,選擇屬性

3)選中'為actionscript'導出

4)在類的填充框中填寫一個類名如:Loading,點擊確定。這時候發現該原件在類庫中如下:



5)ctr+shift+f12(或者文件--發佈設置)選中swc,點擊發布。這時候你會發現對應文件的文件夾下多出一個swc文件。將此swc文件導入你的as項目中new出Loading就可以使用了。

(此方法對於小項目來說,使用快捷簡單,推薦使用。但是對於大型項目,如果將所有素材都打包到swc中,無疑會加大主程序的體積,犧牲了用戶體驗,不推薦使用)

2.打包到swf中:

(1)直接嵌入在程序中:

打包方法同1,但是不用發佈設置,直接編譯成swf如loading.swf然後在項目中使用

[Embed(source='文件位置/loading.swf',symbol='Loading')]

public var Loading:Class;

直接new出Loading就可以使用了。

此種方法的缺點和優點同1一樣。

(2)使用loader動態載入程序中:

打包方法同1,同樣不用發佈設置,直接編譯成swf,在需要的使用loader.load(new URLRequest('文件位置/loading.swf'));

當加載完成時,使用

var display:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("Loading") as Class

this.addChild(new display());

這種方法在小項目中使用有點麻煩,因為你要先判斷swf有沒有下載完成,才能進行後續操作。但是在大程序中使用的話,能起到動態加載的效果。相當於windows的dll。這樣可以有效減小主程序的體積,從而減少用戶下載等待時間。