2009-08-26 1 views
0

私はこの質問を提出しましたが、どこにでも投稿されているかどうかはわかりませんので、重複している場合はお詫びします。実行時にライブラリフォルダ内のすべてのシンボルをステージに追加する方法

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

おかげ

答えて

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

あなたはインクリメントのみ末尾の数字と同じ、あなたのすべてのインスタンスに名前を付ける場合は、あなた自身を保存することができますしばらくして単一の数字を増やしてください:

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); 
} 
+0

これはうまく見えます。これは私が試してみようとしていたものでした。 actionscriptでフォルダにアクセスする方法があるかどうかを知りたかっただけです。ありがとう! –

+0

これはうまくいった! –

関連する問題