Re: [問題] AS3 自做batch loader 型態問題

看板Flash作者 (相沢祐一)時間13年前 (2011/04/13 17:44), 編輯推噓3(3021)
留言24則, 3人參與, 最新討論串3/3 (看更多)
這是我的一些function的寫法 不知道會不會對各位理解我的新手級腦袋有所幫助Orz function loader_percent(loader:URLLoader){ if(!loader.bytesTotal){ return -1 }else{ MovieClip(getChildByName("mc_loading")).gotoAndStop(....) return loader.bytesTotal-loader.bytesLoaded } } 這是把loader傳進來 回傳她的進度 0為完成 -1是為了排除檔案沒初始化,0-0=0的情況 function loader_add(url:String,obj:String){ loader_url.push(new String(url)) loader_obj.push(new String(obj)) } 傳入兩個字串 loader載入loader_url之後,由loader_obj去addChild(loader) function loader_remove(){ loader_url.shift() loader_obj.shift() loader_loaded=false//載入開關布林 } 載入完畢之後去載下一個 都載入[0]的物件 接著是主要的function,會一直呼叫 function loader_preload(){ if(loader_url.length){//有東西要載 if(!loader_loaded){//呼叫載入一次 loader.load(new URLRequest(loader_url[0])) loader_loaded=true//暫時關閉 } if(!loader_percent(loader)){//回傳進度 trace(getChildByName(loader_obj[0]))//剛剛測試過,MC類型 getChildByName(loader_obj[0]).addChild(loader)//不給過 loader_remove()//刪除[0],繼續下一個 } } } 大概.... 就是這樣吧(汗 對不起我的寫法真的很詭異... == 這是我以前的寫法 雖然那次是全部var在function外 url= "01.png" btn_face_loader.load(new URLRequest(url)); btn_face_mc.addChild(btn_face_loader); 為什麼這樣在載入完畢之後他就會出現 btn_face_loader也是URLLoader阿.... btn_face_mc也是MovieClip阿..... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.175.158 ※ 編輯: AizawaYuichi 來自: 61.64.175.158 (04/13 17:51)

04/13 17:57, , 1F
其實有現成的bulk loader可以用,不用自己造輪胎
04/13 17:57, 1F

04/13 17:59, , 2F
其實我想自己寫看看....設計它的整個構思對我有幫助
04/13 17:59, 2F

04/13 17:59, , 3F
而且感覺都是出在類型錯亂的問題,我還是得學....
04/13 17:59, 3F
當 trace(loader)是[object URLLoaer] trace(getChildByName(loader_obj[0]))是[object MovieClip] 的時候 為什麼getChildByName(loader_obj[0]).addChild(loader) 這樣不給過QAQ ※ 編輯: AizawaYuichi 來自: 61.64.175.158 (04/13 18:01)

04/13 18:28, , 4F
因為 trace(Sprite(new MovieClip()));
04/13 18:28, 4F

04/13 18:28, , 5F
是 [object MovieClip]
04/13 18:28, 5F

04/13 18:30, , 6F
看API getChildByName(name:String):DisplayObject
04/13 18:30, 6F

04/13 18:31, , 7F
傳回的型態是DisplayObject,不是MovieClip
04/13 18:31, 7F

04/13 18:31, , 8F
你沒有辦法透過轉型改變 trace 的結果
04/13 18:31, 8F

04/13 18:32, , 9F
但是程式認的是型別 不是認 trace
04/13 18:32, 9F

04/13 18:38, , 10F
所以?以前可過,這次不能的原因在?
04/13 18:38, 10F

04/13 18:39, , 11F
能夠抓出我哪個類型卡住了嗎?
04/13 18:39, 11F

04/13 18:41, , 12F
你沒有轉型
04/13 18:41, 12F

04/13 18:41, , 13F
DisplayObject 沒有 addChild 方法
04/13 18:41, 13F

04/13 18:43, , 14F
MovieClip(getChildByName(String)).addChild
04/13 18:43, 14F

04/13 18:43, , 15F
這我也試過
04/13 18:43, 15F

04/13 18:47, , 16F
再試一次阿
04/13 18:47, 16F

04/13 18:54, , 17F
MovieClip(getChildByName(loader_obj[0])).addChild
04/13 18:54, 17F

04/13 18:54, , 18F
(loader) 不給過阿.....
04/13 18:54, 18F

04/13 18:55, , 19F
他說問題出在loader
04/13 18:55, 19F

04/13 18:55, , 20F
好像是URLLoader跟DisplayObject的差別問題
04/13 18:55, 20F

04/13 18:56, , 21F
問題是我loader有標準var在外面過,也使用load過
04/13 18:56, 21F

04/13 23:55, , 22F
==
04/13 23:55, 22F

04/13 23:56, , 23F
以解決
04/13 23:56, 23F

04/13 23:56, , 24F
Loader跟URLLoader傻傻分不清...
04/13 23:56, 24F
文章代碼(AID): #1DfN2GOh (Flash)
文章代碼(AID): #1DfN2GOh (Flash)