2012-08-08 2 views
0

그래서 "confirmbutton"이라는 인스턴스 내부에 "LoginScreen"이라는 무비 클립이 있습니다.AS3 addEventListener를 다른 무비 클립의 무비 클립에 넣으십시오.

스테이지에 LoginScreen을 추가하고 이벤트 리스너를 그 안에있는 버튼으로 설정하려고하지만 계속 오류가 발생합니다. 내가 오류 얻을

var LoginScreen:loginscreen = new loginscreen; 
LoginScreen.x = stage.stageWidth/2; 
LoginScreen.y = stage.stageHeight/2; 
addChild(LoginScreen); 

LoginScreen.confirmbutton.addEventListener(MouseEvent.CLICK, test); 

function test(e:MouseEvent):void{ 
    trace("Sup?"); 
} 

:

내 코드 나는 그것이 존재 확신

Symbol 'LoginScreen' 1046: Type was not found or was not a compile-time constant: confirmbutton. 

그것 제대로라는 이름의 I (가 그 뚜껑이없는 정확한 이름), 그래서 아마도 범위 문제를 추측합니다.

+0

당신이 * loginscreen *이 있는지 당신이 정의 된 경우 그래서 LoginScreen 클래스는이 같은 간단한 getter 함수를 넣어 MovieClip? 어쩌면 * 그래픽 * 또는 * 버튼 *일까요? – eleven

+0

둘 다 MovieClips입니다. 나는 기본적으로 모든 것을위한 영화 클립 만 만들었고, 액션 스크립트로 유연성을 더했습니다. – FoxLift

답변

0

내부 MovieClip을 가져 오는 데 helper gettter 함수를 사용해보십시오.

public function get ConfirmButton():MovieClip { return this.getChildByName("confirmButton") as MovieClip; } 

그런 다음이 같은 LoginScreen 객체에서 해당 무비 클립에 액세스 할 수 있습니다 :

LoginScreen.ConfirmButton.addEventListener(MouseEvent.CLICK, test); 
0

알아 냈어. 버튼을 "confirmButton"(대문자 "B")로 이름을 바꾸고 작업을 시작했습니다. 문제는 "confirmbutton"도 무비 클립의 AS Linkage라는 것입니다.

+0

그래서 항상 첫 번째 대문자로 링크와 클래스 이름을 지정해야합니다. – Gio

+1

와우. 나는 보통 다른 방향으로 그들을 정확하게한다. 소문자로 된 AS 연계, 영화 첫 글자로 된 영화 클립. – FoxLift

관련 문제