有時,我想將閉包推入ActionScript的事件堆棧,以便在當前事件處理程序之後執行。現在我使用setTimeout(closure, 0)
。有沒有更直接的方法來做到這一點?ActionScript:將一個閉包推入事件堆棧?
回答
的setTimeout(閉合,0)是創建一個新的事件堆棧。如果此解決方案不適合您,我不明白您的目標。你試圖完成什麼目標?
Flex有ENTER_FRAME事件,定時器,使用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類文檔,解釋使用這個不同的階段。
對不起......我不太明白這是如何相關的。 – 2009-08-28 21:20:27
- 1. 將整數推入堆棧
- 2. 如何將對象推入堆棧?
- 3. x86 - 將8位值推入堆棧
- 4. 將XMM寄存器推入堆棧
- 5. 如何將scala.xml.Null推入堆棧[MetaData]?
- 6. JAVA - 你如何將一個字符串推入堆棧?
- 7. jQuery堆棧事件
- 8. Actionscript中的Movieclip堆棧
- 9. 將控件從一個堆棧面板移動到另一個堆棧面板
- 10. Actionscript 3 ContextMenu關閉事件?
- 11. Jquery單擊事件堆棧
- 12. QPlainTextEdit - 手動推入撤消堆棧
- 13. TTNavigator沒有推入導航堆棧
- 14. 不能推視圖入堆棧
- 15. UINavigationController的崩潰推3次入堆棧
- 16. 從堆棧彈出而沒有推入
- 17. 使用jquery將事件添加到事件堆棧的頂部
- 18. 傳遞一個UIView到下一個UIViewController被推入導航堆棧
- 19. 堆棧函數僅堆棧最後一個光柵文件
- 20. Python:插入一個項目到堆棧
- 21. 它是一種捕獲閉包定義堆棧的方法嗎?
- 22. UINavigationBar是否保留將UINavigationItems推入其堆棧?
- 23. 將整數的二維數組推入Java中的堆棧
- 24. iOS在tabbar應用程序中將視圖推入堆棧
- 25. 覆蓋drawRect:並將新的偏移CGContexts推入堆棧
- 26. 如何將「清除顏色」推入屬性堆棧
- 27. 將半字節推入C中的整數堆棧
- 28. 有沒有辦法將MATLAB工作區推入堆棧?
- 29. 如何手動將堆棧條目推入vim tagstack?
- 30. 將堆棧模板包含到另一箇中
謝謝 - 我會研究你提到的功能。 目標基本上是爲了讓我的意圖(「我想推動一個閉包到執行堆棧,所以它將在當前事件處理程序完成後執行一些不確定的時間」)在代碼中清除,setTimeout( ...,0)「並不覺得它讓事情變得非常清晰(當然,除非你對setTimeout的內部工作有所瞭解)。 – 2009-09-04 14:01:39
好吧,所以callLater不是我正在尋找的東西...但它可能是我會得到的最好的,謝謝。 – 2009-09-04 14:05:26
不要討厭setTimeout。自JavaScript早期開始就已經存在。但是如果你需要它來實現任意的延遲,那麼你的設計可能有問題。我從來沒有發現callLater所有可靠的「等待」。至少在setTimout中,你知道你等待了多久,即使它是黑客。 – Glenn 2009-09-04 21:48:41