是否可以在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
或者可能以某种其他方式,或者即使它尽可能?
答案 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时嵌入。