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