私は、現在のイベントハンドラの後に実行されるように、クロージャをActionScriptのイベントスタックにプッシュしたいと思っていました。今はsetTimeout(closure, 0)
を使用しています。これを行うより直接的な方法はありますか?ActionScript:イベントスタックにクロージャをプッシュしますか?
答えて
setTimeout(closure、0)は新しいイベントスタックを作成しています。私はこのソリューションがあなたのために働いていない場合、あなたの目的を理解していません。あなたが達成しようとしている目標は何ですか?
Flexには、呼び出しを遅延させて新しい実行スタックを作成する、ENTER_FRAMEイベント、Timer、callLater、setTimeout、setIntervalなどがあります。
現在のスタックにコードを挿入しようとしていますか?その場合は、http://en.wikipedia.org/wiki/Active_objectのようなものを見る必要があります。アイデアは、関数(クロージャ)を配列にプッシュし、アクティブなオブジェクトコントローラは、前のオブジェクトが完了するまで実行されたときに次のオブジェクトをリストから引き出します。それは最も簡単なケースです。独自のスケジュール管理システムを使用して、高、中、低といった優先順位のスタックを持つ、より複雑なものを書くことができます。 (たとえば、長すぎると待ってからローに昇格するなど)。
しかしねえ!悪魔は詳細です。目標は何ですか?
as3イベントのキャプチャフェーズとバブリングフェーズを見てみましょう。 私は、プロセスを明確に説明するこの素敵な章を見つけました:http://books.google.com/books?id=yFNZGjqJe9IC&lpg=PA250&ots=oPB9HXIby7&dq=flash%20event%20bubbling%20phase&pg=PA250#v=onepage&q=&f=false
また、このさまざまなフェーズの使用方法を説明するEventDispatcherクラスのドキュメントをチェックしてください。
ごめんなさい...これがどう関係しているのかよくわかりません。 –
- 1. クロージャを操作しますか?
- 2. javascriptのクロージャ内でクロージャを使用できますか?
- 3. javascriptのクロージャからオブジェクトをコンパクトに返しますか?
- 4. ClojureScriptはどのようにクロージャをコンパイルしますか?
- 5. Googleクロージャのtypedefは実際に何をしていますか?
- 6. クロージャはどのようにデータをキャプチャしますか?
- 7. ビデオをメモリにキャプチャし、actionscriptで再生しますか?
- 8. はactionscript 3.0にありますか?
- 9. Clojureのクロージャからローカルバインディングをオーバーライドしますか?
- 10. actionscriptにバインディングプロパティが存在します
- 11. HTMLスクリプトタグでクロージャは正常に機能しますか?
- 12. クロージャはどのように機能しますか?
- 13. ActionScript:オブジェクト名に値を追加しますか?
- 14. Actionscript 2でステージを透明にしますか?
- 15. クロージャをエンコードしてデコードする方法はありますか?
- 16. プライベートAPIにクロージャを渡す
- 17. クロージャの外側の値をクロージャからどのように変更できますか?
- 18. Laravelはgetパラメータを抽出してクロージャに渡します
- 19. Actionscript 3のif文を駄目にしましたか?
- 20. Actionscriptソケットイベントが発生しませんか?
- 21. laravel 5にクロージャをディスパッチする方法はありますか?
- 22. Javascript - なぜIIFEでクロージャを返しますか?
- 23. なぜsetStateはクロージャを使用しますか?
- 24. PHPはクロージャの追加パラメータを "使用"していますか?
- 25. PHPのクロージャはIF文で何を返しますか?
- 26. このクロージャがメモリリークを引き起こしますか?
- 27. 匿名クロージャとは何ですか?なぜクロージャは通常クロージャと異なるのですか?
- 28. ActionscriptのDisplayObjectのイベントリスナーをクリアします
- 29. カプセル化をエミュレートするためにクロージャを使用していますか?
- 30. Java/Actionscript/JavaScriptからURLを取得しますか?
ありがとう - 私があなたが言及した機能を調べます。 そして、目標は基本的に私の意図を決めることです(「現在のイベントハンドラが終了した後に不確定な時間が実行されるようにクロージャを実行スタックにプッシュしたい」)。コード内でクリアし、 'setTimeout ...、0) 'は、(もちろん、setTimeoutの内部動作について何かを知っていない限り)非常に明確に感じる気がしません。 –
だから、callLaterは私が探しているものではありません...しかし、それは私が得られる最高のかもしれません。 –
setTimeoutを嫌ってはいけません。それはJavaScriptの初期のころからありました。しかし、任意の遅延のためにそれを必要とする場合、おそらくあなたのデザインに何か問題があります。私はcallLaterが "待っている"ことのすべてを信頼できると決して見つけたことはありません。少なくともsetTimoutでは、ハックであってもどれくらい待っているのか分かります。 – Glenn