推 dsmwang:真清楚,不愧是s大,推! 03/04 13:34
※ 引述《scars (scars)》之銘言:
: 推 intangible:謝謝scars 雖然還是沒有試出來Q.Qa 不過還是謝謝QQ 02/28 23:48
: 推 WeitingYu:我也被這問題困擾好久,暫時用timer一直讀取到有資料為 03/04 01:15
: → WeitingYu:止,不過好像不是好方法,研讀一下EventDispatcher@@ 03/04 01:16
這不是什麼很難的概念
像URLLoader這個類別,在使用的時候我們會偵聽 Event.COMPLETE 事件
再來讀取它的data
而不是在call了load()之後馬上去取得data
URLLoader在讀取完成之後會發出完成事件讓我們知道
如果今天要寫一個自己的 XMLLoader類別
是不是call了load()之後,也要等它完成再去取得內容
那怎麼知道它完成,就是XMLLoader要發出事件讓用它的人知道
例如我們在Main裡面使用XMLLoader;XMLLoader裡面使用URLLoader
Main XMLLoader URLLoader
new XMLLoader 被new出來
偵聽完成事件
令其讀取request 讀取request
new URLLoader 被new出來
偵聽完成事件
令其讀取request 讀取request
↓
↓
讀取完成,發出完成事件
偵聽到完成事件
parse資料
處理完成,發出完成事件
偵聽到完成事件
後續步驟
兩邊的流程幾乎是一樣的
所以平常我們怎麼用URLLoader
就怎麼去寫XMLLoader
另外一種做法傳入callback
效率上會比event傳遞來的好
不偵聽完成事件,而是傳入後續工作給它
在它完成之後不是發出事件,而是直接執行後續工作
就有點像定時關機 跟設定鬧鐘提醒你關機的差別
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.3.82