var clearId:int = setTimeout(function():void{
//some code here
clearTimeout(clearId);
},2000);
有効なAS3ですか?誰もそれに問題があると思いますか?閉時のsetTimeout、clearTimeout
var clearId:int = setTimeout(function():void{
//some code here
clearTimeout(clearId);
},2000);
有効なAS3ですか?誰もそれに問題があると思いますか?閉時のsetTimeout、clearTimeout
これは警告やエラーなしでコンパイルし、有効なAS3であるが、不必要なコードがあります。
setTimeout関数は、関数を1回だけ実行します。
一方、setInterval関数は、clearIntervalが呼び出されるまで、指定された間隔で関数を実行します。
clearTimeoutは、発生したタイムアウトイベントを停止するために使用されます。 タイムアウトは1回だけ発生するため、タイムアウト機能でタイムアウトをクリアする必要はありません。 setIntervalを使用していた場合は、関数を呼び出す必要がなくなったらclearThreadを呼び出す必要があります。
有効ですか?はい。
動作しますか?はい。
意味がありますか? No.
タイムアウトは1回だけ実行されます。クロージャは、タイムアウトが既に完了した後にのみ呼び出されます。今、のインターバルを使用していた場合は意味があります。
コンパイラはこれらのローカル変数をすべて前もって定義し、自動的にアクセス可能にするため、このメソッドが機能します。基本的には、このようなことを行います。
var clearId:int;
clearId = setInterval(function():void
{
clearInterval(clearId);
}, 2000);
setTimeoutが、クロージャの代わりに関数で使用された場合、clearTimeoutを呼び出す必要がありますか? setTimeout(someFunction、2000); –
Ahum ... "setTimeout関数は関数を1回だけ実行します。" いいえ、一度だけ実行されるため、必要ではありません。 – Creynders
clearTimeoutは、トリガーする前に何かを停止する必要がありますか? –