ActionScriptでタイマーを実行するsetTimeoutのターゲット指定方法
FlashのActionScriptでタイマーのような機能を実装する方法としてsetTimeout関数とsetInterval関数がありますが、今回はsetTimeout関数でターゲットを指定して関数を実行する方法です。
setTimeout()へ渡すパラメーターが増やせる
これはヘルプマニュアルには載っていないのですが、1番目のパラメーターに、2番目のパラメーターである関数を実行させるターゲットを指定することができます。
/** * 3秒後に_root.my_mcムービークリップに対して * myFunc("param1", "param2"); を実行する */ setTimeout(_root.my_mc, "myFunc", 3000, "param1", "param2");
通常は1番目に関数名を持ってくるように書かれているため、以下のように書いてしまいがちなのですが、動かないので注意しましょうね。
動かない例(ターゲットを含めた関数参照を渡す)
setTimeout(_root.my_mc.myFunc, 3000, "param1", "param2");
動かない例(ターゲットを含めた関数参照文字列を渡す)
setTimeout("_root.my_mc.myFunc", 3000, "param1", "param2");
2010-03-04