質問: Number(loop_cntA)+1; if (Number(loop_cntA)<25) { gotoAndPlay(1); } else { stop(); } と入力し24回目までループするように設定したつもりです。 しかし、止まってくれず何度もループしてしまいます。 どのように記述するのが正しいのでしょうか? ご指導お願い致します。
回答: ActionScriptのバージョンが2.0か3.0か気になるところですが(いまどき2.0ってことは無いかな?)、これくらいならどっちでも同じでしょう。 最後のフレームから gotoAndPlay(1); で最初のフレームに戻った時に、 var loop_cntA:Number = 0; で、カウンタが0にリセットされてしまうため、何回ループしても25にならないためだと思います。 解決法としては、 すべてのフレームを一つ後ろにずらして、先頭に初期化専用のフレームを作り、そこに var loop_cntA:Number = 0; で宣言と初期化をして、最後のフレームからは gotoAndPlay(2); で、初期化専用フレームの次のフレームに戻る方法。 あるいは、フレームをずらさずに、最初のフレームを var loop_cntA:Number; if (isNaN(loop_cntA)) { loop_cntA = 0; } にして、宣言と初期化を分け、初期化されていない時だけ初期化する方法、 などが考えられます。 あと気になったところで、 Number(loop_cntA) となっているところがありますが、宣言で var loop_cntA:Number としてあるので、Number()は無くても大丈夫だと思います。 Number()はNumberかどうかわからないものや、NumberではないけれどもNumberに変換可能なものをNumberにするために使います。