作者AizawaYuichi (相沢祐一)
看板Flash
標題Re: [問題] AS3 自做batch loader 型態問題
時間Wed Apr 13 17:44:46 2011
這是我的一些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)
1F:→ aquarianboy:其實有現成的bulk loader可以用,不用自己造輪胎 04/13 17:57
2F:→ AizawaYuichi:其實我想自己寫看看....設計它的整個構思對我有幫助 04/13 17:59
3F:→ AizawaYuichi:而且感覺都是出在類型錯亂的問題,我還是得學.... 04/13 17:59
當
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)
4F:推 etrexetrex:因為 trace(Sprite(new MovieClip())); 04/13 18:28
5F:→ etrexetrex:是 [object MovieClip] 04/13 18:28
6F:→ etrexetrex:看API getChildByName(name:String):DisplayObject 04/13 18:30
7F:→ etrexetrex:傳回的型態是DisplayObject,不是MovieClip 04/13 18:31
8F:→ etrexetrex:你沒有辦法透過轉型改變 trace 的結果 04/13 18:31
9F:→ etrexetrex:但是程式認的是型別 不是認 trace 04/13 18:32
10F:→ AizawaYuichi:所以?以前可過,這次不能的原因在? 04/13 18:38
11F:→ AizawaYuichi:能夠抓出我哪個類型卡住了嗎? 04/13 18:39
12F:推 etrexetrex:你沒有轉型 04/13 18:41
13F:→ etrexetrex:DisplayObject 沒有 addChild 方法 04/13 18:41
14F:→ AizawaYuichi:MovieClip(getChildByName(String)).addChild 04/13 18:43
15F:→ AizawaYuichi:這我也試過 04/13 18:43
16F:推 etrexetrex:再試一次阿 04/13 18:47
17F:→ AizawaYuichi:MovieClip(getChildByName(loader_obj[0])).addChild 04/13 18:54
18F:→ AizawaYuichi:(loader) 不給過阿..... 04/13 18:54
19F:→ AizawaYuichi:他說問題出在loader 04/13 18:55
20F:→ AizawaYuichi:好像是URLLoader跟DisplayObject的差別問題 04/13 18:55
21F:→ AizawaYuichi:問題是我loader有標準var在外面過,也使用load過 04/13 18:56
22F:→ AizawaYuichi:== 04/13 23:55
23F:→ AizawaYuichi:以解決 04/13 23:56
24F:→ AizawaYuichi:Loader跟URLLoader傻傻分不清... 04/13 23:56