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()でアクセスする必要があります。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-12-18 (火) 11:43:54 (997d)