是否可以创建动态嵌入功能?

时间:2011-10-03 09:12:46

标签: actionscript-3 image embed

是否可以在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

或者可能以某种其他方式,或者即使它尽可能?

3 个答案:

答案 0 :(得分:4)

“动态”部分最接近的是创建一个包装类,您可以在其中定义图像,然后可以通过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;
    }
}
}

答案 1 :(得分:2)

嵌入式元素在编译时嵌入。您无法在编译时动态嵌入某些内容...如果要动态加载资源,请使用Loader

答案 2 :(得分:1)

不,嵌入源是在编译时嵌入的。您无法在运行时嵌入任何内容。这就是嵌入手段,在构建swf时嵌入。