標籤雲

搜尋此網誌

2008/01/09

對 Loader 撰寫載入相關的事件處理器時如何指回 Loader 實體及其上層

使用 Loader 載入圖像或是 swf 檔案時
要監聽與載入相關的 Event
不能直接把 Listener 加在 Loader 身上
而是必須用以下方法:

var myLoader:Loader = new Loader();
myLoader.contentLoaderInfo.addEventListener(Event.OPEN, loadStartHandler);
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadingHandler);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadDoneHandler);
//下略.....


contentLoaderInfo 是由 Loader 跟要載入的物件所共用的
所以藉由它來監聽載入事件
但要如何指回 Loader 呢?
可以利用 LoaderInfo 物件的 content 屬性往上去找
(content 屬性所指的就是與此 LoaderInfo 物件相關聯的載入物件, 所以它的 parent 就會是載入它的 Loader)

例如在上例中
在 loadDoneHandler 中只要寫 event.target.content.parent
就能找到 myLoader 了
當然要找到 myLoader 上層的物件也不是問題

不過
contentLoaderInfo 要等到載入完成之後才能使用
所以載入中的時候沒辦法用 event.target.content.parent 找到 Loader.....

沒有留言: