作者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