【问题标题】:Reducing the number of Class objects to access embedded resources减少访问嵌入式资源的 Class 对象的数量
【发布时间】:2011-05-09 20:25:54
【问题描述】:

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

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

我已经拥有了几十个这样的东西,而且我可以很容易地看到在项目完成时最终会得到数百个。有什么方法可以避免为每个位图创建一个类吗?

【问题讨论】:

    标签: actionscript-3 embed


    【解决方案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;
    

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

    【讨论】:

    • 有什么理由不使用 const 代替 var?
    • 当你确定它真的会保持不变时更方便:) 据说 const 需要更少的系统资源,但恕我直言,与图形资源消耗相比这很有趣
    • 你也可以使用 const :) 我认为这只是一个选择问题。
    【解决方案2】:

    有很多方法... 将所有文件打包成 zip - 嵌入 zip - 使用任何 zip 库解压缩以用于操作脚本,然后需要 Loader.loadBytes pic。 Zip 内容可以枚举,所以如果你知道如何按名称处理文件,你甚至不需要应用程序中的文件列表。

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 2013-11-25
      • 2010-10-10
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2016-12-04
      相关资源
      最近更新 更多