好的继承人,我正在制作一个破砖机游戏。即时尝试构建它,以便我可以手动添加砖块而不是使用代码。
在舞台上有一个球(" Ball"),目前正在进行鼠标移动,以及一个带有命中测试代码的砖影片剪辑。
继承大型机代码:
import flash.events.Event;
addEventListener(Event.ENTER_FRAME,moveBall);
function moveBall (e:Event):void{
Ball.x = mouseX;
Ball.y = mouseY;
}
并且继承了我在brick movieclip中写的代码:
addEventListener(Event.ENTER_FRAME,checkHit);
function checkHit (e:Event):void{
if(this.hitTestObject(Ball)){
trace ("HIT!!");
}
}
这就是所有的代码以及球和砖在舞台上都是如此。 当我运行这个时,我得到"符号',层'第1层',第1帧,第6行1120:访问未定义的属性Ball。"
第6行是:
if(this.hitTestObject(Ball)){
请告诉我为什么以及如何解决这个问题..我试图将对象更改为stage.Ball并且我仍然收到错误:(
提前致谢
答案 0 :(得分:1)
您收到错误是因为Ball
不在您的任何一块砖的范围内(它是一个不了解Ball的不同时间轴)。
您可以使用parent
关键字访问Ball。例如:MovieClip(parent).Ball
可能会奏效。
更有效的建议:
将此addEventListener(Event.ENTER_FRAME,moveBall);
更改为使用MouseEvent.MOUSE_MOVE
而不是ENTER_FRAME。这样它只会在鼠标移动时触发。