1

ミニゲーム用の Flex フレームワークを構築しているので、一連のグラフィック アセット (ムービークリップ シンボル) を 1 つの swf ファイルにバンドルし、それを Flex アプリケーションにロードしてから、swf ファイルからシンボルを抽出して使用する予定です。応用。私の質問は次のとおりです。アクションスクリプトを使用してこれを行うにはどうすればよいですか?

ありがとう!

4

3 に答える 3

1

EMBED を使用せず、ランタイムにアセットをロードしたくない場合は、swf を SWC としてエクスポートすることをお勧めします。

このようにして、actionscript から SWC ファイルを参照できます。コンパイル時に、別のムービークリップ内にサブムービークリップが存在することをイベント チェックできます。

flex コンパイラを使用している場合は、コンパイル時にこれを追加することを忘れないでください。

-library-path C:\path\to\your\file.swc

FDT を使用している場合は、SWC を引数として自動追加するオプションがあります。

FDT でそれを行う方法のデモを次に示します。どのツールを使用しているかわかりません。商用の Flex Builder の場合、プロセスは似ているはずです。

それがあなたが探しているものだと思います。

于 2009-05-22T11:14:49.177 に答える
0

アセット/アイコン ライブラリの AS ファイルを作成してみます。

の線に沿った何か

package 
{

public class IconLibrary
{

    /*
    *  Framework Icons
    */

    [Embed (source="../assets/fof_graphics.swf", symbol="clapperboard_icon")]
    public static const clapperBoardIcon:Class;
    [Embed (source="../assets/fof_graphics.swf", symbol="clapperboard_over_icon")]
    public static const clapperBoardOverIcon:Class;
    [Embed (source="../assets/fof_graphics.swf", symbol="close_button")]
    public static const closeButton:Class;
    [Embed (source="../assets/fof_graphics.swf", symbol="close_over")]
    public static const closeOverButton:Class;

    public function IconLibrary()
    {
    }

  }

}

その後、あなたがする必要があるのは

source="{IconLibrary.clapperBoardIcon}"

または、表示したいアセットの名前。

于 2009-05-22T11:05:37.213 に答える
0

ここには多くの優れたソリューションがあります。実行時にswfをロードしていて、アセットを抽出したい場合は、ローダーの完了イベントリスナーで次のことを行うことができます:

var c:Class = Class(LoaderInfo(e.target).applicationDomain.getDefinition("myClassDefinitionName"));

これにより、swf のアセットが Class オブジェクトとして保存されるため、次のようにインスタンスを作成できます。

var asset:MovieClip = new c();
于 2009-05-22T15:58:35.937 に答える