0

この質問を送信したばかりですが、どこにも投稿されているかどうかわかりません。重複している場合はお詫び申し上げます。

Flash CS4プロジェクトの場合、私は常に新しい画像をインポートし、それらをムービークリップに変換して、ライブラリの「Ornaments」フォルダに保存しています。これらの装飾品はすべて、プログラムの初期化時に特定の場所のステージ上にある必要があります。新しいシンボルを追加するたびに新しいシンボルをステージにドラッグする代わりに、実行時に「Ornament」ライブラリフォルダー内のすべてのシンボルをステージに追加することはできますか?

ありがとう

4

1 に答える 1

1

必要に応じてコードで実行できますが、それでもシンボルの名前をコードに追加する必要があります。つまり、フォルダはCS4ライブラリ内で整理するための単なる便利なものであり、コード(AFAIK)に変換されません。

AS3でアイテムをインスタンス化するには、ライブラリ内のシンボルを右クリックして、[ActionScriptにエクスポート]というラベルの付いたボックスをオンにします。表示されない場合は、[詳細設定]ボタンをクリックしてください。デフォルトでは、クラスはシンボルの名前になります。これは、ActionScriptでインスタンス化してインスタンスをステージに配置できるクラスになります。

オーナメント名の配列を保持し、それらをループしてステージに追加することができます。

var ornaments:Array = [OrnamentGold, OrnamentSilver, OrnamentBronze];

for each(var ornament:Class in ornaments)
{
    var ornamentClip:MovieClip = new ornament();
    addChild(ornamentClip);
}

すべてのインスタンスに同じ名前を付け、末尾の数字だけをインクリメントすると、時間を節約して1つの数字をインクリメントするだけで済みます。

const NUM_ORNAMENTS:int = 5;

for(var i:int = 0; i < NUM_ORNAMENTS; i++)
{
    // ornaments are names Ornament0, Ornament1, Ornament2, etc. in the library
    var ornamentClass:Class = new getDefinitionByName("Ornament" + i) as Class;
    var ornamentClip:MovieClip = new ornamentClass();
    addChild(ornamentClip);
}
于 2009-08-26T18:38:59.940 に答える