- 締切済み
AS3でアニメーションを回数指定でループする方法
Adobe animate CCを使用しています。 ActionScript3.0で、アニメーション全体を 「3回ループさせて、3回目が終わったらアニメーションをストップ」 させる必要があるのですが、 ActionScript初心者なので、this.stopなどごく簡単なものしか分かりません。 ネットで色々調べている中で出てきた下記コードは ActionScript2.0あたりで書かれたものなのか、 当然のことながら、Adobe animate CCのアクションに貼り付けても うまく動作しませんでした。 //最初の1度だけ、ループカウンタを初期化 if( loop_cnt == undefined ) { loop_cnt = 1; } //ループカウンタを更新 loop_cnt++; //3回ループした場合は停止 if( loop_cnt > 3 ) { loop_cnt = 1; stop(); } //それ以外はループを継続 else { gotoAndPlay( 1 ); } 上記コードをどのように書き直せば Adobe animate CCでうまく動くでしょうか。 ご存知の方がおられましたら、ご教授いただけないでしょうか。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
最初に loop_cnt を変数として var 宣言してないので 「loop_cnt って何?」状態になってるのですよ。 var loop_cnt; と宣言だけをした場合, loop_cnt の初期値は undefined になると思います。 しかし AS3 では型指定しておくのが普通ですから カウンタの場合は "整数" と指定するのが良いでしょう。 var loop_cnt:int; このように int型 で指定した場合, 変数に値が入っていない状態での初期値は勝手に 0 になります。 (何か値が入ればその値が継続されます。) ですから最初の部分を var loop_cnt:int; if( loop_cnt == 0) ~以下略~ とするのが良いと思います。
補足
ご回答ありがとうございました! ご指摘を受けて、下記のように修正してみましたが・・・ プレビューしてみたら真っ白で・・・何も表示されませんでした。 度々申し訳ありませんが、 おかしい箇所はどこになるのでしょうか? 何卒宜しくお願い致します。 var loop_cnt:int; if( loop_cnt == 0 ) { //ループカウンタを更新 loop_cnt++; } //3回ループした場合は停止 if( loop_cnt > 3 ) { loop_cnt = 1; stop(); } //それ以外はループを継続 else { gotoAndPlay( 1 ); }