1

これでx個のシンボルを埋め込もうとしています:

[Embed(source='graphics/backgrounds.swf', symbol='background01')]
private var Background01 : Class;

問題は、100 個の背景シンボルがあり、以下のコードのようにすべてを記述せずにそれらを埋め込みたいことです。

[Embed(source='graphics/backgrounds.swf', symbol='background01')]
private var Background01 : Class;

[Embed(source='graphics/backgrounds.swf', symbol='background02')]
private var Background02 : Class;

[Embed(source='graphics/backgrounds.swf', symbol='background03')]
private var Background03 : Class;

代わりに、次のような 2 つのループを使用したいと思います。

for (var i = 0;i < 10;i++)
{
    for (var j = 0;j < 10;j++)
    {
        [Embed(source='graphics/backgrounds.swf', symbol='background' + i + j )]
        // code for adding this to an 2d-array or something
    }
}

これは、メタデータが間違っていることを示しているため、機能しません。私の質問は次のとおりです。

これを行うことは可能ですか?またはこれを行う同様の方法はありますか?

4

2 に答える 2

3

ええ、マーカスと言って悲しいです、あなたがしようとしていることをする方法はありません。MetaDataはAS3ではなく、評価されないため、使用しようとしている方法で使用することはできません。

ただし、とにかく100個の背景シンボルを埋め込む場合は、タイムラインのフレームにそれぞれ1つのMovieClipを作成してみませんか?次に、そのシンボルを1回埋め込み、gotoAndStopを使用して目的のシンボルに移動しますか?

開始時にすべてメモリにロードされた100の背景は、一般的に私に行くには危険な方法のように聞こえます。必要に応じて、メモリにバックグラウンドをロードしたり、メモリからバックグラウンドをロードしたりする方がよいでしょう。もちろん、それらが何に使用されるかによって異なりますが、「背景」という名前は、これがより良い行動方針である可能性があることを私に示唆しています。

于 2010-02-23T08:46:08.583 に答える
1

通常のコードステートメントにメタディレクティブを入れることができるとは思いません。これらは、作成しているクラスのスコープ内の変数の宣言の一部です。

非常に多くの変数を書くのが面倒で、シンボルに順番に名前を付けた場合は、お気に入りのテキストエディター(ActiveStateのKomodoEditを使用していて、無料です)でjavascriptマクロを記述し、貼り付けることができるテキストを吐き出してもらいますクラスActionScriptに。

于 2010-02-22T20:38:05.350 に答える