作者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
1F:推 allenmusic:错误讯息是什麽 @@? 06/15 06:34
2F:→ allenmusic:从错误讯息着手 去解决比较快 06/15 06:35
3F:→ etrexetrex:附上错误讯息比附程式码重要吧 06/15 06:49
※ 编辑: bluenicole 来自: 114.179.83.242 (06/15 10:09)
4F:→ bluenicole:不好意思昨晚居然忘记把讯息写上,刚刚补上了,感谢^^ 06/15 10:10
※ 编辑: bluenicole 来自: 114.179.83.242 (06/15 11:02)
5F:推 KawasumiMai:竟然跟我一样用日Win+日Flash(摊手 06/15 15:38
6F:→ KawasumiMai:基本上他是说你呼叫了不存在的方法(addChild) 06/15 15:40
7F:→ bluenicole:(握手)而且我前辈是日本人,平常聊天还好,日文不轮转 06/15 15:40
8F:→ bluenicole:所以问问题时很痛苦~ 06/15 15:40
9F:→ KawasumiMai:通常是因为目标物件不是MovieClip导致 06/15 15:40
10F:→ KawasumiMai:另外,this要看是什麽的this,就跟"我"一样 06/15 15:42
11F:→ KawasumiMai:不同人说"我"这个字,指的就是不同物体 06/15 15:42
12F:→ KawasumiMai:因此你要看你的this写在哪里,还得确定this格式正确 06/15 15:44
13F:→ KawasumiMai:有时候需要的东西是this的某个东西而非this本身 06/15 15:44
14F:→ bluenicole:其实这个class是我从文末附的那段fla里切出来的,虽然 06/15 16:02
15F:→ bluenicole:统统放在一个fla里可以顺利执行,但分去as档里後就不听 06/15 16:03
16F:→ bluenicole:使唤了Orz 所以我现在应该试着做数个movieclip容器,然 06/15 16:06
17F:→ bluenicole:後将读进来的图一张张丢进去,再用addChild放上舞台, 06/15 16:07
18F:→ bluenicole:不知道是否行得通^^? 06/15 16:07
19F:推 allenmusic:以我的经验 重新作 比作好 再分开放在as档里面容易XD 06/15 20:32
20F:→ bluenicole:先来说一下XDaddChild的问题後来在用extendsMovieClip 06/15 21:45
21F:→ bluenicole:的方法解决了,感谢KawasumiMai网友的点醒^^,现在正在 06/15 21:46
22F:→ bluenicole:重写XD(也谢谢allenmusic网友^^)感谢大家的解答^^ 06/15 21:48