2013-06-20 2 views
1

2d 플랫폼 게임을하고 있고 # 1009를 얻고 있습니다.내 생성자에서 AS3 오류 # 1009?

내 Pickup() 클래스에서 생성자에서 this.x와 this.y를 중앙 스테이지로 설정하려고하지만 스테이지에 null 객체 참조가 표시됩니다.

public function Pickup() { 
     // constructor code 
     bitmapData.draw(_displayObject);  
     mSprite = new Bitmap(bitmapData); 
     addChild(mSprite); 
     this.x = 
     stage.width/2; 
} 

은 내가 this.x와 널 (null)을 트리거 된 부분을 볼 때 Stage.width을 분리하고, 확실히 무대입니다.

아마도 내가 알아 차리지 못해서 너무나 끔찍한 일 이겠지.

어쨌든, 모든 도움을 주시면 감사하겠습니다.

건배

+0

어떻게 당신이'this.x'과'stage.width' 분리 않았다

또는, 당신은 단지 픽업의 생성자에 무대에 대한 참조를 통과 할 수 있을까? – Teejay

+0

난 그냥 지금은 실제로 오류를 호출하는 stage.width보고있는 오류를 트리거 한 라인을 볼 수있는 별도의 라인에 넣어 볼 Enter를 누르십시오. 질문이 변경되었습니다. – DanTheMan

+1

스테이지 이벤트에 추가 될 때까지 기다립니다. – Nathan

답변

0

가 스테이지에 실제로하지 않는 stage 속성은, 모든 DisplayObject에 null입니다 무대에 추가로 이벤트 리스너를 추가합니다.

즉, Event.ADDED_TO_STAGE을 수신하는 개체에 이벤트 수신기를 추가 한 다음 처리기에서 stage으로 작업해야합니다.

public function Pickup(stage:Stage) 
{ 
    // Your code. 
} 
0

public function Pickup() { 
    // constructor code 
    bitmapData.draw(_displayObject); 
    mSprite = new Bitmap(bitmapData); 
    addChild(mSprite); 
    this.addEventListener(Event.ADDED_TO_STAGE, onAddToStage); 
} 

protected function onAddToStage(event:Event):void 
{ 
    this.x = stage.width/2; 
}