作者mysteriousGE (我很幸福!!)
看板Flash
標題[問題] onLoadError的延遲.....
時間Sat Jul 7 01:58:44 2007
Flash CS3 / Action Scripts 2.0
已爬過文 我打算判斷某個檔案是否存在 使用MovieClipLoader()去讀取
且用 onLoadError 來判斷。
程式碼如下:
var myloader = new MovieClipLoader();
var flag=true;
myloader.loadClip("PPP/a.JPG","aaa"); //事實上此檔案不存在
myloader.onLoadError = function(){
flag = false;
}
if(flag){
trace("true");
}else{
trace("false");
}
輸出:
true
Error opening URL 'file:///J|/FFF/PPP/a.JPG'
依照我的想法 我想要它輸出的是 Flase 而非 True
根據我的某些實驗 明顯的發現 是由於讀取檔案需要時間
當程式碼判斷flag時 它仍未被改變 晚點再判斷即可得到正確值
想請問各位大大 這種延遲現象 正常嗎? 如果正常 那我該怎麼改寫我要的程式?
假若得使用延遲判斷的方法 那我要延遲多久再去判斷flag比較好?
延遲太久 程式又沒效率(我要判斷很多個檔案)
延遲不夠久 又怕出錯... 且程式打算放到伺服器上的
伺服器速度和我個人電腦或許還有些出入....
該如何處理呢? 還是有其它更好的方法?
先謝謝回應的大大了 <(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.229.13.56
1F:推 etrexetrex:你的if應該換位置 0.0 07/07 05:01
2F:→ pm2001:空一個影格差不多了 1/21秒夠用了 07/07 05:21
3F:推 MrMarcus:你的if/else應該整個移到onLoadError裡面去才對啊 07/07 11:46
4F:→ MrMarcus:而且也不需要flag了 07/07 11:47
5F:推 mysteriousGE:謝謝一二樓大大 三樓的..可能誤會了我的意思喔^^" 07/07 22:23
6F:推 aquarianboy:但我覺得三樓的推文才是比較簡單的解決呀 :) 07/07 23:58
7F:推 mysteriousGE:或許是我表達的不好吧 我想要的是..一二樓說的~ 07/08 01:51
8F:→ mysteriousGE:trace的位置 是放其他我想要執行的東西 還是謝謝大家 07/08 01:52
9F:→ mysteriousGE:只是想確定loadClip需要時間載入(尋找)檔案 07/08 01:54
10F:→ mysteriousGE:導致onLoadError的內容會延遲些時間被執行到 07/08 01:54