2010-11-14 58 views
1

我正在構建一個帶有大量嵌入式位圖等的Flex項目。爲獲得在ActionScript位圖的常用方法似乎是做類似減少訪問嵌入式資源的Class對象的數量

[Bindable] [Embed(source = '../lib/WhiteFencePost.png')] 
    private static var clsObstacleFencePost : Class; 
    var bitmap : BitmapAsset = new clsObstacleFencePost(); 

我已經得到了這些東西幾十個,我可以很容易地看到由時間與數百人結束了項目完成。有什麼方法可以避免爲每個位圖創建一個類?

回答

0

有多種方法...將所有文件打包成zip - 嵌入zip - 用任何zip文件解壓縮動作,然後Loader.loadBytes pic需要。 Zip內容可以枚舉,所以如果您知道如何處理文件名稱,您甚至不需要應用程序中的文件列表。

1

試着用這樣的靜態類創建資產管理器。

class AssetManager 
{ 

    [Bindable] 
    [Embed(source = '../lib/WhiteFencePost.png')] 
    public static var WhiteFencePost:Class; 

    [Bindable] 
    [Embed(source = '../lib/BlackFencePost.png')] 
    public static var BlackFencePost:Class; 

} 

然後你可以使用相似圖片

myImage1.source = AssetManager.WhiteFencePost; 
myImage2.source = AssetManager.WhiteFencePost; 
myImage3.source = AssetManager.WhiteFencePost;  
myImage4.source = AssetManager.BlackFencePost; 

你並不需要定義要使用類圖像的新實例。

+0

任何理由不使用const而不是var? – grapefrukt 2010-11-14 21:56:03

+0

當你確定它真的會不變時更方便:)而且據說const需要更少的系統資源,但imho比圖形資源消耗更有趣 – www0z0k 2010-11-14 22:59:28

+0

你可以使用const aswell :)只是一個選擇問題我認爲。 – 2010-11-17 10:39:08