0

私はしばらくの間、actionscript 3 を学ぼうとしてきました。いつループ (for、while など) を使用する必要がありますか? 私はビデオを見たり、この主題に関する記事を読んだりしていますが、この例の魔女にいつも出くわしますが、実際にはあまり役に立ちません。

for(var i:Number = 0; i < 10; i++)
{
 trace(i);
}

誰かがこの件について私を助けてくれて、その頭脳を少し選んでくれたら、本当に感謝しています.

ありがとうございました。

4

3 に答える 3

3

反復的なタスクを実行する必要があるときはいつでもループを使用します。

したがって、同じ操作を実行する必要があるオブジェクトが 1000 個ある場合、同じコードのバリエーションを 1000 回記述するよりも、ループを使用する方が実用的です。

フラッシュの例: 特定のアクションですべて再生したい 10 個のムービークリップがあるとします。

あなたはこれを行うことができます:

mc1.play();
mc2.play();
mc3.play();
mc4.play();
mc5.play();
mc6.play();
mc7.play();
mc8.play();
mc9.play();
mc10.play();

10の場合は面倒ですが、大したことではありません。100、1000、または 10000 があった場合、それは正気ではありません。さらに、後でコードを変更する必要がある場合はどうすればよいでしょうか?

より良い方法は、ループを使用することです。これらの 10 個のクリップ (または任意の数のクリップ) がすべて、 という親オブジェクトの子であるとしclipsます。

for(var i:int=0; i<clips.numChildren;i++){
    var mc:MovieClip = clips.getChildAt(i);
    mc.play();
}

そのコードはまったく同じことを行います。クリップの親のすべての子をループして、全員に再生するように伝えています。gotoAndPlay(3) に変更する必要がありますか? 更新するのは 1 行だけです。

これは非常に単純な例です (ループを使用する多くの理由の 1 つにすぎません)。より複雑なデータやオブジェクトを扱うようになると、ループが反復タスクのコーディングにどのように役立つかを推測できるでしょう。

于 2012-12-07T01:13:22.267 に答える
0

私の古いプログラミングの先生が言ったように:

「何回繰り返したい/何回必要か分かっている場合は for ループを使う」

つまり、リスト、配列、ベクトルなどをループします。

「確信が持てないときは、while ループを使用してください。」

つまり、ファイル全体をループする (バイナリ データを読み取るため) か、特定の条件で停止する連続イベントを実行します。

そうは言っても、ほとんどの場合、おそらく for ループと while ループの両方を適用できます。個人的には、主に for ループを使用します。

プロトタイプのように、while ループはコンテナーのすべての子を削除するときに最適ですが、次のような for ループを使用して実現することもできます。

for(var i:int = 0; i < numChildren; i++)
{
     removeChildAt(i); i--;
}
于 2012-12-07T14:04:49.370 に答える
0

通常、インデックスが必要な場合は for ループを使用します。

たとえば、特定の配列内のどの MovieClips が表示されているかを表すインデックスの配列が必要になる場合があります。

var visibleClips:Array = new Array;
for (var index:int = 0;index < arrayOfClips.length;index++)
{
    var clip:MovieClip = arrayOfClips[index];
    if (clip.visible)
    {
        visibleClips.push(index);
    }
}

次のように DisplayObject からすべての子を削除するようなものによく使用する while ループ:

while (container.numChildren > 0)
{
    container.removeChildAt(0);
}

ご覧のとおり、この状況ではインデックスはまったく必要ありませんでした。そのため、while ループを使用する方が簡単です。

于 2012-12-07T02:16:24.910 に答える