我用actionscript3.0了遊戲,遇到問題5

2014-06-22 10:52 am
由於我要整一個容量相當大的遊戲,所以必需再增加一頁名為load。
我的想法是,遊戲分四關,每過完一關就會進入load頁面,完成loading程序後便可以玩下一關。
如以下一頁:http://www.mycreativezone.herobo.com/load.html
程式如下:
var ldr:Loader=new Loader();
var url:String="finish3Q.swf";
var urlReq:URLRequest=new URLRequest(url);
ldr.load(urlReq);
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,ldrNow);
function ldrNow(event:ProgressEvent){
var loading:Number=event.bytesLoaded/event.bytesTotal;
showTXT.text=String(Math.floor(loading*100))+"%";
loadbar.scaleX=loading;
}
但卻出現以下問題:
error #1009: 無法存取Null物件參考的屬性或方法。

還有一個很次要的問題,不知道你們明不明白我的意思。
因為我是看書自學actionscript,書是教var url:String="finish3Q.swf";,但我的遊戲是網上玩的,我是不是應該改成var url:String="finish3Q.html";?
我有點感到混淆
更新1:

我已修改了程式,但卻出現以下錯誤(我已經把load和finish3Q.swf放在同一個資料夾) Error #2044: 未處理的 IOErrorEvent:。 text=Error #2035: 找不到 URL。

更新2:

T.T .....又有新問題出現。 不知為什麼,用以上程式碼,會出現如以下網頁問題 http://www.mycreativezone.herobo.com/load.html loadbar既不縮短,也不消失 (補充:以下的程式碼我漏了一行:var loadbar:load_bar=new load_bar();)

回答 (1)

2014-06-23 7:51 am
✔ 最佳答案
大大好,下面有說明的四行,就是我加上的語法

var ldr:Loader = new Loader();
addChild(ldr);//載入的動畫必須放入舞台
var url:String = "finish3Q.swf";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,ldrNow);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);//完成後
function ldrNow(event:ProgressEvent)
{
var loading:Number = event.bytesLoaded / event.bytesTotal;
showTXT.text = String(Math.floor(loading*100))+"%";
loadbar.scaleX = loading;
}
function onComplete(event:Event):void {
removeChild(showTXT);//去除加載文字
removeChild(loadbar);//去除加載長條
}

另一問題:我是不是應該改成var url:String="finish3Q.html”
不可以,必須寫成 "finish3Q.swf"

2014-06-23 00:07:08 補充:
第二個問題補充
Loader 只能載入 SWF 檔 or 圖檔 (JPG, PNG, or GIF)

2014-06-23 22:25:14 補充:
Error #2044: 未處理的 IOErrorEvent:。 text=Error #2035: 找不到 URL。
就是找不到想要載入的檔案。

可能原因之一,是資料夾中的檔名,與上方「var url:String = "finish3Q.swf";」檔名不相同。
請由資料夾中用「複製」的方式,將檔名「貼上」上方「var url:String = "finish3Q.swf";」

2014-06-24 22:29:33 補充:
或者可能是「發佈設定」時, load.swf 發佈的位置與 finish3Q.swf 不是同一個資料夾

2014-06-29 11:20:06 補充:
你在舞台上已經有一個未命名的 loadbar
再加這句 var loadbar:load_bar=new load_bar();
會讓舞台上有兩個 loadbar
當最後 removeChild(loadbar);//去除加載長條時
只會去掉一個 loadbar
刪掉一個應該就可以了

2014-06-30 10:52:28 補充:
請試試下列作法
一、刪 var loadbar:load_bar=new load_bar(); 這句
二、點選舞台上的「藍色長條」
三、在右邊「屬性面板」最上方空格填上 loadbar


收錄日期: 2021-05-01 19:23:35
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20140622000015KK01528

檢視 Wayback Machine 備份