2011-09-07 6 views
2

flashbuilder로 코딩 된 웹 사이트를 제작 중입니다. 내 코드를 내보낼 때마다 동일한 오류가 반복해서 발생합니다 (TypeError = 아래 참조).AS3의 스테이지 속성에서 null 참조로 문제가 발생했습니다.

문제는 내 프로젝트의 무대와 관련이 있다고 생각합니다. var stageMiddenX = (stage.stageWidth/2);var stageMiddenX = 512;으로 변경할 때마다 코드가 작동합니다. 그러나 나는 var가 동적 인 것을 원하지 않습니다.

형식 오류 오류 # 1009 :) (주에서 null 객체 참조의 속성이나 메서드에 액세스 할 수 없습니다

package { 
import flash.display.MovieClip; 

    public class main extends MovieClip{ 
    var stageMiddenX = (stage.stageWidth/2); 
    var stageMiddenY = (stage.stageHeight/2); 
    private var object1:Object1 = new Object1(); 
    private var object2:Object2 = new Object2(); 
    private var object3:Object3 = new Object3(); 
    } 
} 
+0

W4cko, 나는 당신의 질문을 고쳤지 만 거룩한 모든 것에 대한 사랑으로 * Stack Overflow에서 올바르게 포맷하는 법을 배웁니다. [이것을 읽으십시오 (http://stackoverflow.com/editing-help). –

+0

@Michael Petrotta : 형식에 대한 도움을위한 Thx : P – W4cko

답변

6

여기서 문제는 stage을 요청할 때 아직 사용할 수 없다는 것입니다.

stage에 액세스하기 전에 Event.ADDED_TO_STAGE 이벤트가 시작될 때까지 기다리는 것이 좋습니다.

package { 
    import flash.display.MovieClip; 

    public class main extends MovieClip{ 
     private var object1:Object1 = new Object1(); 
     private var object2:Object2 = new Object2(); 
     private var object3:Object3 = new Object3(); 
     private var stageMiddenX:Number; 
     private var stageMiddenY:Number; 

     public function main(){ 
      if(stage) init(null); 
      else addEventListener(Event.ADDED_TO_STAGE, init) 
     } 

     private function init(e:Event):void { 
      removeEventListener(Event.ADDED_TO_STAGE, init); 
      stageMiddenX = (stage.stageWidth/2); 
      stageMiddenY = (stage.stageHeight/2); 
     } 
    } 
} 
+2

위의 클래스가 문서 클래스 인 경우이 프로세스가 필요하지 않습니다. 예제가 .. 확실하지 않은 경우 어쨌든! – Marty

+0

나는 (문서 클래스조차도) "무대"에 너무 일찍 접근하려고 노력하면서 문제를 생각해 냈다고 생각했다. 그러나, 나는 단지 빠른 점검을했고 당신이 옳았다는 것을 발견했다. 충분한 인력이 있다면 당신의 대답에 투표 할 것입니다. – Marcela

+0

Marcela가이 문제에 적합합니다. 문서 클래스도 예외는 아닙니다. – Jacksonkr

1

(생성자로 무대에 액세스하는 물건을 넣어 가정이 문서입니다 클래스) ..

package 
{ 
    import flash.display.MovieClip; 

    public class main extends MovieClip 
    { 
     public var stageMiddenX:int; 
     public var stageMiddenY:int; 

     private var object1:Object1 = new Object1(); 
     private var object2:Object2 = new Object2(); 
     private var object3:Object3 = new Object3(); 

     public function main() 
     { 
      stageMiddenX = stage.stageWidth/2; 
      stageMiddenY = stage.stageHeight/2; 
     } 
    } 
} 
관련 문제