Home > AS3 > AS3でタイムラインスクリプトを書きたければaddFrameScript()を使う

AS3でタイムラインスクリプトを書きたければaddFrameScript()を使う

  • Posted by: ryow
  • 2008年5月29日 20:14
  • AS3

AS3でムービークリップにラベルを設定してフレームスクリプト(stop()とか)を書く方法をメモ。

addFrameScriptという関数があって、これを指定してやればいいらしいです。引数は2つで、最初のがフレームラベルかフレーム番号、2番目が関数です。いままでフレームラベルチェック用のENTER_FRAMEをリスンしてたのでこれでかなり楽になったよ!! と書きたかったんですが、なぜか指定どおりに動きません。なぜだ。教えてくださいませませ…

以下の例はステージに置いた test_mc のクラスファイルです。

var testmc = new TestClass(test_mc)

フレーム1でインスタンスにクラスをあてます。フレーム4に"label1"、フレーム9に"label2"を書いてあります。フレームアクションは何も書きません。

package{
  import flash.display.MovieClip;

  public class TestClass extends MovieClip{

    var my_mc:MovieClip

    function TestClass(mc){
      my_mc = mc
      mc.addFrameScript("label1",func1)
      mc.addFrameScript(9,func2)
    }
    function func1():void{
      trace(my_mc.currentFrame) //結果:1
    }
    function func2():void{
      trace(my_mc.currentFrame) //結果:10
    }

  }
}

実行結果は、フレーム4にあるはずのlabel1がフレーム1で実行されちゃっているのと、フレーム9で実行するはずのfunc2がフレーム10で実行されちゃってるという不具合があります。

追記。うまく動かないのはもしかすると、「自分自身のクラスで自分にaddFrameScriptしているからなのかも。他のクラスから動的に作った(リンケージの)mcに対してaddFrameScriptする、というのが正しい使い方なのか!!?

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://ryow.net/mt/mt-tb.cgi/332
Listed below are links to weblogs that reference
AS3でタイムラインスクリプトを書きたければaddFrameScript()を使う from ryow.net Blog

Home > AS3 > AS3でタイムラインスクリプトを書きたければaddFrameScript()を使う

About

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

Twitter :ryownet

はてな :ryownet

Search

Return to page top