for (k=0; k<=5; k++) {
for (j=0; j<=5; j++) {
for (i=0; i<=5; i++) {
trace(k + " " + j + " " + i);
}
}
}
この "bigLoop"アドオンはこんなとき、さらにループの回数が多いときにより一層、役立つツールです。
これをこのまま一気に実行しようとすると、その間他の動作が止まり、さらにループ回数が多いときにはPlayerが無限ループと判断し警告ウィンドーが出てしまいますが、TK
Event EngineとこのbigLoopメソッドを使ってそれを回避することができます。
"bigLoop"メソッドはまず最も内側のループ(k=0, j=0, iが0から5)をひとフレームで実行、次にonClipEvent(enterFrame)でいうところのフレームを一つ進め、そこで又最も内側のループ、今度はk=0,
j=1, iが0から5までを実行します。そして又ひとフレーム進め同様に、といった具合にk=5, j=5, i=5まで自動的にフレームを進めながら実行します。
このアドオンは上の例のような2重にネストされた3つのループ、及び単にネストされた2つのループ、それぞれをサポートしています。
The syntax for 3 loops (flaファイルのフレーム2の使用例1参照)
eventEngine.subscribe("enterFrame", "_level0.bigLoop",
{func:myFunc, iMin:0, iMax:5, jMin:0, jMax:5, kMin:0, kMax:5});
The syntax for 2 loops:
eventEngine.subscribe("enterFrame", "_level0.bigLoop",
{func:myFunc, iMin:0, iMax:5, jMin:0, jMax:5});
The syntax for 1 loop (これは可能ですがこの場合はbigLoopメソッドを使う意味はなくなります)
eventEngine.subscribe("enterFrame", "_level0.bigLoop",
{func:myFunc, iMin:0, iMax:5});
一つのループで何万回も繰り返したいような場合は、まずそれをネストしたループに書き換えひとフレームあたり例えば1000回ほどのループにすれば2
loopのシンタックスを使うことができます。このケースが最も使用頻度が高いと言えそうです。(flaファイルのフレーム2の使用例2参照)