• 締切済み

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でうまく動くでしょうか。 ご存知の方がおられましたら、ご教授いただけないでしょうか。 宜しくお願い致します。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

最初に 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) ~以下略~ とするのが良いと思います。

mariko_ashida
質問者

補足

ご回答ありがとうございました! ご指摘を受けて、下記のように修正してみましたが・・・ プレビューしてみたら真っ白で・・・何も表示されませんでした。 度々申し訳ありませんが、 おかしい箇所はどこになるのでしょうか? 何卒宜しくお願い致します。 var loop_cnt:int; if( loop_cnt == 0 ) {  //ループカウンタを更新   loop_cnt++; }  //3回ループした場合は停止  if( loop_cnt > 3 )  {   loop_cnt = 1;   stop();  }  //それ以外はループを継続  else  {   gotoAndPlay( 1 );  }

関連するQ&A