【问题标题】:Is it possible to create dynamic embed function?是否可以创建动态嵌入功能?
【发布时间】:2011-11-29 18:55:53
【问题描述】:

是否可以在 ActionScript3 中创建动态嵌入函数

例如这样

     public function embedImage(path:String):Bitmap{
            [Embed(source = path, mimeType = "image/png")]
        var NewBitmapClass:Class;

            var image:Bitmap=new NewBitmapClass();
            return image;

     }// tried it, it doesnt work

或者可能以其他方式,或者即使有可能?

【问题讨论】:

    标签: actionscript-3 image embed


    【解决方案1】:

    最接近“动态”部分的方法是创建一个包装类,在其中定义图像,稍后您可以通过 id 将它们作为位图获取。 不幸的是,这些属性是公开的,否则 hasOwnProperty 函数不会返回 true。 (如果有人找到更好的方法,请告诉我)

    见下文:

    package {
    import flash.display.Bitmap;
    
    public class DynamicEmbed {
    
        [Embed(source = "../images/cat.jpg")]
        public var cat : Class;
    
        [Embed(source = "../images/parrot.jpg")]
        public var parrot : Class;
    
        [Embed(source = "../images/pig.jpg")]
        public var pig : Class;
    
        [Embed(source = "../images/quail.jpg")]
        public var quail : Class;
    
        public function DynamicEmbed() {
        }
    
        public function getBitmap(id : String) : Bitmap {
            if(hasOwnProperty(id)) {
                var bitmap : Bitmap = new this[id]();
                return bitmap;
            }
    
            return null;
        }
    }
    }
    

    【讨论】:

      【解决方案2】:

      嵌入的元素是在编译时嵌入的。您不能在编译时动态嵌入某些东西...如果您想动态加载资源,请使用Loader

      【讨论】:

        【解决方案3】:

        不,嵌入源是在编译时嵌入的。您不能在运行时嵌入任何内容。这就是嵌入的意思,在构建 swf 期间嵌入。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-10
          • 1970-01-01
          • 2013-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多