2011-11-08 4 views

答えて

2

これは警告やエラーなしでコンパイルし、有効なAS3であるが、不必要なコードがあります。

setTimeout関数は、関数を1回だけ実行します。

一方、setInterval関数は、clearIntervalが呼び出されるまで、指定された間隔で関数を実行します。

clearTimeoutは、発生したタイムアウトイベントを停止するために使用されます。 タイムアウトは1回だけ発生するため、タイムアウト機能でタイムアウトをクリアする必要はありません。 setIntervalを使用していた場合は、関数を呼び出す必要がなくなったらclearThreadを呼び出す必要があります。

+0

setTimeoutが、クロージャの代わりに関数で使用された場合、clearTimeoutを呼び出す必要がありますか? setTimeout(someFunction、2000); –

+0

Ahum ... "setTimeout関数は関数を1回だけ実行します。" いいえ、一度だけ実行されるため、必要ではありません。 – Creynders

+0

clearTimeoutは、トリガーする前に何かを停止する必要がありますか? –

1

有効ですか?はい。
動作しますか?はい。
意味がありますか? No.

タイムアウトは1回だけ実行されます。クロージャは、タイムアウトが既に完了した後にのみ呼び出されます。今、のインターバルを使用していた場合は意味があります。

コンパイラはこれらのローカル変数をすべて前もって定義し、自動的にアクセス可能にするため、このメソッドが機能します。基本的には、このようなことを行います。

var clearId:int; 
clearId = setInterval(function():void 
{ 
    clearInterval(clearId); 
}, 2000); 
関連する問題