2011-10-03 80 views
1

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

也许,或者即使是在所有可能的?

回答

2

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

1

不,嵌入源在编译时嵌入。你不能在运行时嵌入任何东西。这就是嵌入意味着,嵌入在建设瑞士法郎。

+0

感谢你们。顺便说一句有趣的代码:) :)))) – Vlad

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; 
    } 
} 
} 
相关问题