2014-02-23 2 views
0

소개 화면을 재생 한 후 다음에 start screen을 만들려고합니다.중첩 된 액세스 내비게이션 MovieClip AS3

이 작업을 수행하는 가장 쉬운 방법은 장면 1 프레임 1에있을 것이라고 생각 했으므로 MovieClip을 만듭니다.

이것은 별개의 문서 파일입니다. 그래서 문서 클래스 이름을 mcStartGameScreen으로 지정하고 Flash Develop에 링크하여 작업을 수행합니다.

이제 프레임 1에있는 MovieClip의 인스턴스 이름을 startMenu으로 지정하고 startMenu MovieClip에는 buttonMode를 true로 설정하려는 MovieClip이 있습니다. 내 startMenu 안에 프레임 (65)에 mcStart이라는 MovieClip을 추가합니다. 내가 영화를 테스트 할 때

public class mcStartGameScreen extends MovieClip 
{ 

    private var mcStart:MovieClip; 

    private var startMenu:MovieClip; 

    public function mcStartGameScreen() 
    { 
     startMenu.mcStart.buttonMode = true; //This is giving me the ERROR! 

     mcStart.addEventListener(MouseEvent.CLICK, startOnClick);   
    } 

    private function startOnClick(e:MouseEvent):void 
    { 
     dispatchEvent(new Event("START_GAME")); 
    } 

    public function hideScreen():void 
    { 
     this.visible = false; 
    } 

    public function showScreen():void 
    { 
     this.visible = true; 
    }  
} 

내가이 error: Cannot access a property or method of a null object reference.

사람이 내가 잘못하고있는 중이 야 알고 있나요 얻을 :

지금 내 행동에 나는이 있나요?

답변

2

이미있는 경우 스테이지에 배치 인스턴스 이름 startMenu에 대한 그래서 아무 필요가있는 MovieClip,

private var startMenu:MovieClip; 당신이 당신의 코드에서이 문제를 제거합니다.

항상 스테이지 인스턴스가 먼저 있고 계속 진행됩니다.

public function mcStartGameScreen() 
{ 
    addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
} 

private function onAddedToStage(e:Event):void 
{ 
    startMenu.mcStart.buttonMode = true; //Now this will not give the ERROR! 

    startMenu.mcStart.addEventListener(MouseEvent.CLICK, startOnClick); 
} 
+0

을하지만 때 나는 개인 var에 시작 메뉴를 제거 :

지금과 같이 생성자를 수정 무비 클립을; 이 새로운 오류가 발생합니다 : null 개체 참조의 속성이나 메서드에 액세스 할 수 없습니다. 무슨 일이 벌어 질 수 있니? – Nathan

+0

'startMenu'는 어디에 있습니까? 도서관이나 무대에서. –

+0

제 'startMenu'가 무대에 있습니다. 인스턴스 이름은 'startMenu'입니다. AS 또는 기타 항목에 연결되어 있지 않습니다. – Nathan