2013-02-25 85 views
-1

我一直在试图解决这个问题,我只是不能得到什么worng,即时通讯只是在我的“字符”之间添加hitTest到“糖果”。在开始工作时,然后出现错误#1009无法访问空对象引用的属性或方法。 在 “糖果” 线49As3 - 错误#1009:无法访问属性或方法的空对象引用

“糖果” 类

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

请问您可以告诉我们,代码中的第49行是什么?什么是hitCandy_mc? – 2013-02-25 19:18:09

+0

对不起49行是:\t \t \t \t \t \t this.parent.removeChild(candy); ... hitCandy_mc是主要movieClip中的movieClip。谢谢 – 2013-02-25 19:35:28

回答

0

如果你的错误是在行

this.parent.removeChild(candy); 

this.parentnull。我想你应该添加

candy.removeEventListener(Event.ENTER_FRAME, update); 

花括号内,在50行我真的不明白你的代码是应该做的,但它可能是你想在行做什么

removeEventListener(Event.ENTER_FRAME, update); 

但它取消了this上的听众而不是删除的糖果。

相关问题