砖破坏者命中测试错误

时间:2012-11-09 17:47:38

标签: actionscript-3 hittest

好的继承人,我正在制作一个破砖机游戏。即时尝试构建它,以便我可以手动添加砖块而不是使用代码。

在舞台上有一个球(" 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并且我仍然收到错误:(

提前致谢

1 个答案:

答案 0 :(得分:1)

您收到错误是因为Ball不在您的任何一块砖的范围内(它是一个不了解Ball的不同时间轴)。

您可以使用parent关键字访问Ball。例如:MovieClip(parent).Ball可能会奏效。

更有效的建议: 将此addEventListener(Event.ENTER_FRAME,moveBall);更改为使用MouseEvent.MOUSE_MOVE而不是ENTER_FRAME。这样它只会在鼠标移动时触发。