2010-11-14 35 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