减少Class对象的数量以访问嵌入的资源

时间:2010-11-14 15:21:47

标签: actionscript-3 embed

我正在构建一个包含大量嵌入式位图等的Flex项目。在Actionscript中获取位图的常用方法似乎是执行类似

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

我已经有几十个这样的东西,到项目完成时我很容易看到数百个这样的东西。有什么办法可以避免为每个位图创建一个类吗?

2 个答案:

答案 0 :(得分: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;

您无需定义要使用的类图像的新实例。

答案 1 :(得分:0)

有方法...将所有文件打包成zip - embed zip - 用任何zip文件库解压缩动作脚本,然后需要Loader.loadBytes pic。可以枚举Zip内容,因此如果您知道如何按名称处理文件,则在应用程序中甚至不需要文件列表。