看板 Flash 關於我們 聯絡資訊
在本篇討論的外部載入資料沒有限定型態 但本篇以影片為例,討論外部載入與內部匯入資料的整合 一個外部載入的影片API可能是這樣設計的 1.需要在建構式傳入檔案路徑 var f1:FLVLoader = new FLVLoader("檔案路徑"); 或者用方法傳入 var f1:FLVLoader = new FLVLoader(); f1.load("檔案路徑"); 2.需要監聽載入完畢的事件 f1.addEventListener(Event.READY, readyHandler); function readyHandler(e:Event):void{ f.play(); } 但對於一個內部匯入的FLV來說應該是可以直接使用 f2.play(); 我的問題點在於如何設計一個API,可以整合外部載入與內部匯入的不同步性質 舉例來說我想要控制動畫流程,所以我作了一個 PlayList 類別 假設是這樣使用的: var pl:PlayList = new PlayList(); pl.add(f1); pl.add(f2); pl.play(); 因為不能保證 f1 跟 f2 已經載入完畢,所以上面的寫法在 play 時可能會出問題 那麼我可能就被迫改成用事件驅動的寫法 var pl:PlayList = new PlayList(); pl.add(f1); pl.add(f2); pl.addEventListener(Event.READY, readyHandler2); function readyHandler2(e:Event):void{ pl.play(); } 但是如果這樣寫就會有些不方便的地方 因為可能f1 跟 f2 都是內部匯入 這樣就有一種多此一舉的感覺 但為了通用性,可能也就只有事件驅動的寫法比較好了 我想請問的是有沒有一個架構已經解決這種問題 -- blog:http://etrex.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.70.146
etrexetrex:事實上如果f1跟f2 都是內部匯入 可能READY事件不會被驅 07/16 20:18
etrexetrex:動 因為根本不需要等待 07/16 20:18
etrexetrex:然後程式碼就毀掉這樣 不然就是要寫一堆判斷去維護他 07/16 20:18
cjcat2266:那麼把等待的code寫在play()裡面咧? 07/16 21:06
etrexetrex:有想過 不過我擔心的是 API 的 user 無法預期程式流程 07/16 21:10
etrexetrex:原先的想法是 play 如果在還沒ready 的時間點呼叫 07/16 21:11
etrexetrex:就會自動監聽ready 事件這樣 不過我不知道這樣做會不會 07/16 21:11
etrexetrex:讓 user 遇到 lag 時產生困惑之類的問題 07/16 21:11