2013-01-15 15 views
0

我创建了一个库项目,其中包含类似AssetLib的嵌入式图像。如何在Flash中使用库项目中的嵌入标签获取类?

[Embed(source="Frame_Title_BG.png")] 
    private var Frame_Title_BG:Class; 

然后我导出SWC把现有的动作project.So我假设IMG Frame_Title_BG应该在memoroy,但是当我尝试创建的类

var assetCLs:Class = getClassByAlias('Frame_Title_BG'); 
var asset = new assetCLs(); 

我是不是能够获得assetCLs;

在我看来,所有的类都应该在applicationDomain中。

那么我该如何在当前项目中使用该类?

回答

0

添加“ClassHolder_”嵌入类名前:

var imageClass:Class= ApplicationDomain.currentDomain.getDefinition('AssetLib_Frame_Title_BG') as Class; 
    var bitmap:DisplayObject = new imageClass(); 
    addChild(bitmap); 
+0

嗨,thx的答案,似乎闪光有img类,但返回值是一个对象,而不是一个位图类,我仍然无法将其添加到舞台上,我想我不应该做的这个通过这种方法,即时我对吗? –

+0

_getDefinition_方法返回类,您可以使用_new_运算符创建实例,我更新了我的答案 – fsbmain

1

作为替代方案,您可以定义资产作为公共静态变量,那么你应该能够做到以下几点:

public class AssetLib 
{ 
    [Embed(source="Frame_Title_BG.png")] 
    public static var Frame_Title_BG:Class; 
} 

然后在另一个类:

var frameBG:Bitmap = new AssetLib.Frame_Title_BG() as Bitmap; 
addChild(frameBG); 

甚至

var frameBG:Bitmap = new AssetLib['Frame_Title_BG']() as Bitmap; 
addChild(frameBG); 

只是另一种选择。

+0

thx用于选择,它确实有效。 –

相关问题