我一直在努力解决这个问题,我只是想知道什么,我只是在我的“角色”和“糖果”之间添加了hitTest。在开始工作,然后我得到一个错误#1009无法访问空对象引用的属性或方法。 在“糖果”第49行
“糖果”课程
public class Candy extends MovieClip
{
public var leadingMover:Mover;
public var mainColliderCandy:Character;
public var hit:MovieClip;
public var hitParent:*;
public var candy:MovieClip;
public function Candy()
{
addEventListener(Event.ADDED_TO_STAGE, allLoaded);
}
private function allLoaded(event:Event):void
{
hitParent = event.currentTarget.parent;
candy = MovieClip(this.parent.getChildByName(this.name));
hit = hitCandy_mc;
addEventListener(Event.ENTER_FRAME, update);
}
private function update(event:Event):void
{
if(leadingMover)
{
y +=leadingMover.speed;
}
else
{
leadingMover = Mover(parent.getChildByName("bg_mc"));
}
if(mainColliderCandy && candy)
{
if(hit.hitTestObject(mainColliderCandy))
{
//mainColliderCandy.collidedWithCandy(this);
if(candy)
{
//mainColliderCandy = null;
this.parent.removeChild(candy);
}
removeEventListener(Event.ENTER_FRAME, update);
}
}
else
{
mainColliderCandy = Character(parent.getChildByName("character_mc"));
}
}
}
}
谢谢你!答案 0 :(得分:0)
如果您的错误在行
this.parent.removeChild(candy);
this.parent
是null
。我想你应该添加
candy.removeEventListener(Event.ENTER_FRAME, update);
在大括号内,在第50行。我真的不明白你的代码应该做什么,但它可能是你想在线上做的
removeEventListener(Event.ENTER_FRAME, update);
但它会删除this
上的侦听器而不是删除的糖果。