Home > AS3 > AS3でラベルごとにフレームスクリプトを実行する

AS3でラベルごとにフレームスクリプトを実行する

  • Posted by: ryow
  • 2008年6月 2日 20:06
  • AS3

AS3で、フレームアニメーションをスクリプト制御したいとき(実際には、アニメーションの中でif分岐したりしたい)、フレーム上にスクリプトを書いていくのはエレガントじゃないのでどうすりゃいいのかなぁ、と常々考えていたんですが、こういうのはどうでしょう。

これまで、ENTER_FRAMEでcurrentFrameを取得して分岐したいラベルなら実行、というやり方をとってみたり、addFrameScriptを試してみたりしましたが、今度はフレーム上に1行だけ関数を書いておいて、これで判断するというやり方です。

たとえば、クイズゲームを作っていて、AかBか選択肢を選んだら「司会者がうーんうーん、とうなって顔色がだんだん黒くなっていって、まだ数秒ためて」ついに正解とか残念、とか言うというアニメーションで、正解とか残念とか言うまでは1本のアニメーションで使いまわして、分岐するところまでいけばいい、と思っているのです。
正解とか残念とか言うところまでを1本のアニメーションにして、どちらを再生するかを最初に分岐するやり方でもいいけど、これだとクイズの数だけアニメーションが必要になっちゃう。

//フレームアクション(ラベル[label1])
checkFrame(currentLabel)

↑のようなスクリプトを書いて、↓のクラスをリンケージしたmcでやってみようと作ってみました。これだと一応動くけど、処理的にどうだろう。こういう書き方で実用的なんでしょうか。フレームスクリプトに詳しい皆様、教えてくださいませ。

package{
  import flash.display.MovieClip
  public class SampleFrameMC extends MovieClip{

    public function checkFrame(label:String):void{
      switch(label){
        case "label1":
          gotoAndPlay("atari")
          break;
        case "label2":
          gotoAndStop("hazure")
          break;
      }
   }
 }
}

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://ryow.net/mt/mt-tb.cgi/334
Listed below are links to weblogs that reference
AS3でラベルごとにフレームスクリプトを実行する from ryow.net Blog

Home > AS3 > AS3でラベルごとにフレームスクリプトを実行する

About

りょうどっとねっとブログ

Twitter :ryownet

はてな :ryownet

Search

Return to page top