setTimeout †
setIntervalは、一定間隔でファンクションを呼び続けるのに対し、
setTimeoutは、一度だけ呼び出される。
一定間隔後に処理をさせたいが、一度で良いときに使うと、べんり。
setIntervalを使う時のように消す必要がない。
ドキュメント化はされていないので、ここで。
http://www.fumiononaka.com/TechNotes/Flash/FN0512001.html
使い方 †
基本的な使い方は
setTimeout (objectReference:Object, methodName:String, delay:Number [, arg1:Object, arg2, ..., argN]) : Number
setInterevalと同様、
setTimeout (functionReference:Object, delay:Number [, arg1:Object, arg2, ..., argN]) : Number
な感じでもかけます。
が、上記2つには、
呼び出される関数のスコープが変わるという決定的な違いがあります。(この点もsetInterval)と同じ。
例(_rootの1フレに以下のコードを書くと)
this.clearIdA=setTimeout(funcA,1000)
this.clearIdB=setTimeout(this,"funcB",1000)
function funcA(){
trace("funcA_"+this)
}
function funcB(){
trace("funcB"+this)
}
出力funcA_undefined
出力funcB__level0
また、
呼ばれる前に消したい時は、
clearTimeout(clearId)
注意 †
AS2の定義クラスでsetTimeoutを使おうとすると、エラーが帰ってきます。
setInereval()は普通に使えます。
コレはtoplevel.asにsetTimeoutが書き込まれてないためで、
toplevel.asに書き込むか、
もしくは_global.setTimeout()、_global.clearTimeout()でアクセスする必要があります。