2011-12-06 13 views
0

私はウェブ上のあらゆる場所を見て、これに対する答えを見つけることができたかどうかを確認しました.Adobe Flash Builderヘルプサイト全体を見てきましたが、私が試していることに対して具体的な答えを見つけることができないようですする。異なるイメージファイルを使用する場合、どのようにActionscript 3で配列を連結しますか?

イメージファイル名の中で配列を参照することは可能ですが、ここではシナリオです。

名前の末尾に数字だけ異なる画像のリストがあります(たとえば、orangeimg1.jpg、appleimg2.jpg、strawberryim3.jpgなど)。できるだけ画像を参照することは可能でしょうか?何とか同じコードを何度も繰り返すのではなく、ファイル名で配列を参照するのですか?

私は2つの配列が(オレンジ、リンゴ、スタバエ)の果物用に1つ設定されています。 (1、2、3)。私はこれらの組み合わせのそれぞれについてjpg画像を持っていますが、これらの画像を参照しようとしているときに、どのように1行で参照するかは、source = "[fruit].img.[number].jpg"のように思えます。私はそれが正しいとはかなり確信しています。

もう一度私はウェブ上でいくつかの情報を見つけましたが、画像のソースをコーディングしていた場合、どのように機能するかは言及していません。

私は本当に混乱しており、これに関する助けに感謝します。ありがとう。

+1

あなたが後のものだった場合は、答えを正しい答えとしてマークしてください。 –

答えて

1

文字列は、+を使用して連結されます。あなたはおそらく、その数字の配列を必要としない

for(var i:int = 0; i<fruits.length; i++) { 
    var source = fruits[i] + "img" + numbers[i] + ".jpg"; 
    // ... 
} 

:あなたは複数のファイル名を作成する場合

var fruits:Array = ["banana", "cherry"]; 
var numbers:Array = [4, 2]; 
var source = fruits[0] + "img" + numbers[0] + ".jpg"; // bananaimg4.jpg 

は、あなたはループを使用することができます。これらの数字は、順序になっている場合は、ループの中で数を計算できます。

for(var i:int = 0; i<fruits.length; i++) { 
    var source = fruits[i] + "img" + (i+1) + ".jpg"; 
    // ... 
} 
+0

ありがとうKapep、私は正しい道にあると思った、私はちょうどそれを一緒に置く方法がわからなかった。ありがとうございました。 – user1084279

+0

フルーツアレイの長さに別の変数を使用してください。 forループ条件を呼び出すlengthプロパティを使用する場合は、毎回呼び出されるたびに同じ結果が得られます。したがって、forループの前に、1つの "uint"変数を宣言しなければならず、配列の長さを格納する必要があります。だから、私たちはループのパフォーマンスを最適化することができます.... – Mrugesh

0

答えの上に良いですが、私は、コードをより効果的にするためにのみいくつかの変更を与えています。 以下の形式のforループを使用できます。それは最適化されたコードです:

var len:uint = fruits.length; 
for(var i:int = 0; i<len; i++) { 
     var source = fruits[i] + "img" + (i+1) + ".jpg"; 
     // ... 
    } 
+0

私はそれをここではマイクロ最適化と言います。各フレームに何千ものファイル名を作成しないので、スピードの測定可能な差はないと確信しています。実際にイメージをロードすると、常にかなり遅くなります。しかし、アプリケーションの重要な部分にスタイルが存在することを知っておくとよいでしょう。 – Kapep

関連する問題