您好,我正在尝试以两行的形式制作两个Collison墙,并为其指定了实例名称“colission1”和“colission2”,我已使用以下代码使汽车消失,并且当游戏结束时会 pop 游戏结束消息开车来了
addEventListener(Event.ENTER_FRAME, hit1);
function hit1(e:Event):void {
if (car_mc.hitTestObject(colission2_mc))
{
gotoAndPlay(2);
gotoAndStop(2);
car_mc.visible = false;
stop();
}
else
{
car_mc.visible = true;
}
}
addEventListener(Event.ENTER_FRAME, hit2);
function hit2(e:Event):void {
if (car_mc.hitTestObject(colission1_mc))
{
gotoAndPlay(2);
gotoAndStop(2);
car_mc.visible = false;
stop();
}
else
{
car_mc.visible = true;
}
}
然后我得到这个错误;
TypeError: Error #2007: Parameter hitTestObject must be non-null.
at flash.display::DisplayObject/_hitTest()
at flash.display::DisplayObject/hitTestObject()
at Gamev1_fla::MainTimeline/hit1()
TypeError: Error #2007: Parameter hitTestObject must be non-null.
at flash.display::DisplayObject/_hitTest()
at flash.display::DisplayObject/hitTestObject()
at Gamev1_fla::MainTimeline/hit2()
最佳答案
您将转到另一个不再存在car_mc或colission2_mc的框架,但是由于您没有删除enterframe侦听器,因此它继续运行hit1并出现错误。删除enterframe侦听器。
关于actionscript-3 - TypeError : Error #2007: Parameter hitTestObject must be non-null. What is this?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30888421/