0

以下のような埋め込み画像をクラスに含むライブラリプロジェクトを作成しましたAssetLib

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

次に、swcを既存のactionscriptプロジェクトにエクスポートしました。そのため、img Frame_Title_BGはメモにあるはずですが、クラスを作成しようとすると

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

私は得ることができませんでしたassetCLs;

私の考えでは、すべてのクラスはapplicationDomainにある必要があります。

では、現在のプロジェクトでクラスをどのように使用できますか?

4

2 に答える 2

1

別の方法として、アセットを public static 変数として定義すると、次のことができるはずです。

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 );

ちょうど別のオプション。

于 2013-01-16T05:07:26.250 に答える
0

埋め込みクラス名の前に「ClassHolder_」を追加します。

    var imageClass:Class= ApplicationDomain.currentDomain.getDefinition('AssetLib_Frame_Title_BG') as Class;
    var bitmap:DisplayObject = new imageClass();
    addChild(bitmap);
于 2013-01-15T09:23:36.483 に答える