作者bluenicole (搬新家~無名881~^^)
看板Flash
標題[問題] 無法把圖片用addchild放上舞台及其他問題
時間Tue Jun 14 22:29:52 2011
(補上錯誤訊息)
不好意思,有三個問題可能很淺,但搜索了一下板上的文章,好像沒有看到類似的問題
希望有先進能幫幫忙解惑。
我正在做一個slot小遊戲的demo,交待我做這個工作的前輩應該是好心想指導我,
所以要我把寫好的fla分成as檔。
可是分的過程中今天出現了一個問題一直解決不了,我想用XMLLoader把圖片名稱、
位置和大小等資訊load進來,然後再把對應的圖片讀進來放在舞台上,
但原本一整份fla時可以成功運作的程式,在移到as上之後就行不通了
一直出現錯誤訊息。
D:\work\pachingodemo110614\game\PicXmlLoader.as、行 60 1180:
未定義である可能性が高いメソッド addChild の呼び出しです。
D:\work\pachingodemo110614\game\PicXmlLoader.as、行 69 1180:
未定義である可能性が高いメソッド addChild の呼び出しです。
D:\work\pachingodemo110614\game\PicXmlLoader.as、行 78 1180:
未定義である可能性が高いメソッド addChild の呼び出しです。
不好意思補上錯誤訊息
因為是日文作業系統
到官網上找到的中文翻譯三項應該都是
1180 呼叫可能未定義的方法_。
日文直譯則是1180:呼叫了有高可能性未定義的addChild方法。
(應該是一樣的意思^^")
程式碼如下
___________________________________________________________________________
package game{
import flash.events.ProgressEvent;
import flash.events.Event;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.net.URLLoader;
public class PicXmlLoader extends GameVar{
//save pictures' name load by picNameLoader
public var xmlSaveArray:Array=new Array();
//load pictures' name xml file
public function PicXmlLoader(){
var xmlLoader:URLLoader=new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE,doXmlLoderComplete);
function doXmlLoderComplete(e:Event):void{
XML.ignoreWhitespace=true;
var xmlDataSaver:XML=new XML(xmlLoader.data);
xmlSaveArray.push(xmlDataSaver.picName,xmlDataSaver.position1stLiru,xmlDataSaver.position2ndLiru,xmlDataSaver.position3rdLiru,xmlDataSaver.hatsureSize,xmlDataSaver.hatsurePosition,xmlDataSaver.hatsureFlvName,xmlDataSaver.riich1Size,xmlDataSaver.riich1Position,xmlDataSaver.riich1FlvName,xmlDataSaver.riich2Size,xmlDataSaver.riich2Position,xmlDataSaver.riich2FlvName,xmlDataSaver.yokokuData);
doPicLoader();
}
var xmlURL:URLRequest=new URLRequest("picname02.xml")
xmlLoader.load(xmlURL);
}
public function doPicLoader(){
var picNameSaveArray:Array=xmlSaveArray[0].split(",");
var leftPositionArray:Array=xmlSaveArray[1].split(",");
var
middlePositionArray:Array=xmlSaveArray[2].split(",");
var
rightPositionArray:Array=xmlSaveArray[3].split(",");
backMovie1Size=xmlSaveArray[4].split(",");
backMovie1Position=xmlSaveArray[5].split(",");
// backMovieName=txtSaveArray[6].split(",");
backMovie1Name[0]=xmlSaveArray[6];
backMovie2Size=xmlSaveArray[7].split(",");
backMovie2Position=xmlSaveArray[8].split(",");
backMovie2Name[0]=xmlSaveArray[9];
backMovie3Size=xmlSaveArray[10].split(",");
backMovie3Position=xmlSaveArray[11].split(",");
backMovie3Name[0]=xmlSaveArray[12];
yokoku1Data=xmlSaveArray[13].split(",");
/* //trace for test
trace(backMovie3Size[1]);
trace(backMovie3Position[0]);
trace(backMovie3Name[0]);
*/
//add number pictures' on stage
for(i=0;i<7;i++){
var picLoader1Url:URLRequest=new
URLRequest(picNameSaveArray[i]);
picLoader1.load(picLoader1Url);
firstLiru[i]=picLoader1;picNameSaveArray[i]
//pictures' position
firstLiru[i].x=leftPositionArray[0];
firstLiru[i].y=leftPositionArray[1];
addChild(firstLiru[i]);
picLoader1= new Loader();
var picLoader2Url:URLRequest=new
URLRequest(picNameSaveArray[i+7]);
picLoader2.load(picLoader2Url);
secondLiru[i]=picLoader2;
//pictures' position
secondLiru[i].x=middlePositionArray[0];
secondLiru[i].y=middlePositionArray[1];
addChild(secondLiru[i]);
picLoader2= new Loader();
var picLoader3Url:URLRequest=new
URLRequest(picNameSaveArray[i+14]);
picLoader3.load(picLoader3Url);
thirdLiru[i]=picLoader3;
//pictures' position
thirdLiru[i].x=rightPositionArray[0];
thirdLiru[i].y=rightPositionArray[1];
addChild(thirdLiru[i]);
picLoader3= new Loader();
}
}
}
}
____________________________________________________________________________
另一個問題是localconnection
當我把它移到as檔上時,會有錯誤訊息指出我的「conn.client=this;」是不行的
試著宣告別的東西代表它
但還是過不了,我想可能是我的觀念有誤,this指的是什麼呢?
如果as上面不能使用的話,想請教一下該用什麼方法修改。
____________________________________________________________________________
雖然寫好再改很麻煩
但一邊改一邊發現自己對物件導向的了解幾乎是0
其實切開來放在as上讓它跑克服一些問題後應該是辦得到
可是一直覺得越切越心虛
這是之前寫完可以好好跑的fla檔
http://www.megaupload.com/?d=BB66XD4P
因為很菜我想看起來一定很煩人orz
如果有前輩願幫忙看一下,指導我到底該怎麼切開才是觀念正確的分法
我會非常感謝的^^"
抱歉一口氣問了這麼多問題,不管是否能提供幫助,都感謝你撥冗看完^^謝謝!
--
▁ ▁▁
▁▁ ▁▁▃▄▅▆▇███▇▄▃▁▁▁▁
▁▁ ▁▁▂▄▆▇████████▇▆▅▃▃▂▂▁▁▁▁
﹏﹏﹏﹏﹏ ●↗ KYO:讓我們向夕陽奔跑吧! ﹏﹏
BLUE:先輩我願追隨你! ● <■
青春!熱血!感動! ╱╱︿ ∕ ﹥ 竹本真相組之 讓我們向真相奔跑吧!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.50.49.65
推 allenmusic:錯誤訊息是什麼 @@? 06/15 06:34
→ allenmusic:從錯誤訊息著手 去解決比較快 06/15 06:35
→ etrexetrex:附上錯誤訊息比附程式碼重要吧 06/15 06:49
※ 編輯: bluenicole 來自: 114.179.83.242 (06/15 10:09)
→ bluenicole:不好意思昨晚居然忘記把訊息寫上,剛剛補上了,感謝^^ 06/15 10:10
※ 編輯: bluenicole 來自: 114.179.83.242 (06/15 11:02)
推 KawasumiMai:竟然跟我一樣用日Win+日Flash(攤手 06/15 15:38
→ KawasumiMai:基本上他是說你呼叫了不存在的方法(addChild) 06/15 15:40
→ bluenicole:(握手)而且我前輩是日本人,平常聊天還好,日文不輪轉 06/15 15:40
→ bluenicole:所以問問題時很痛苦~ 06/15 15:40
→ KawasumiMai:通常是因為目標物件不是MovieClip導致 06/15 15:40
→ KawasumiMai:另外,this要看是什麼的this,就跟"我"一樣 06/15 15:42
→ KawasumiMai:不同人說"我"這個字,指的就是不同物體 06/15 15:42
→ KawasumiMai:因此你要看你的this寫在哪裡,還得確定this格式正確 06/15 15:44
→ KawasumiMai:有時候需要的東西是this的某個東西而非this本身 06/15 15:44
→ bluenicole:其實這個class是我從文末附的那段fla裡切出來的,雖然 06/15 16:02
→ bluenicole:統統放在一個fla裡可以順利執行,但分去as檔裡後就不聽 06/15 16:03
→ bluenicole:使喚了Orz 所以我現在應該試著做數個movieclip容器,然 06/15 16:06
→ bluenicole:後將讀進來的圖一張張丟進去,再用addChild放上舞台, 06/15 16:07
→ bluenicole:不知道是否行得通^^? 06/15 16:07
推 allenmusic:以我的經驗 重新作 比作好 再分開放在as檔裡面容易XD 06/15 20:32
→ bluenicole:先來說一下XDaddChild的問題後來在用extendsMovieClip 06/15 21:45
→ bluenicole:的方法解決了,感謝KawasumiMai網友的點醒^^,現在正在 06/15 21:46
→ bluenicole:重寫XD(也謝謝allenmusic網友^^)感謝大家的解答^^ 06/15 21:48