문제

리스너에 첨부 된 함수를 사용해야하는 중첩 된 함수가 포함 된 함수 외부에 몇 가지 MouseEvent 리스너가 있습니다.

button1.addEventListener(MouseEvent.ROLL_OVER, buttonOver); 

function navigation (): void {

    if statements;

    function buttonOver(event:MouseEvent):void {
        movieclip.play();
    }
}
.

"1120 : Undefined Property Buttonover"오류가 계속 발생합니다.eventListener가 함수 "탐색"이외에 있기 때문에 나중에 다른 기능에 의해 액세스 할 필요가 있습니다.나는 이것을 모두 잘못 생각해?

도움이 되었습니까?

해결책

작동하지 않습니다.나는 당신이 함수를 둥지해야한다고 생각하지 않습니다.다른 클래스 / 인스턴스에서 액세스 할 수있는 클래스를 사용하지 않는 이유는 무엇입니까?

rob

다른 팁

중첩과 익명 기능을 잊어 버리십시오.또한 프레임에 코드 작성을 잊어 버리십시오.당신은 그들을 사용하지 않고 원하는 모든 것을 할 수 있습니다.

처음에는 중첩 된 기능이 필요한지 확신 할 수 없습니다.모든 것은 중첩없이 훨씬 쉽습니다.

button1.addEventListener(MouseEvent.ROLL_OVER, buttonOver); 

function navigation (): void {

    if statements;
}
function buttonOver(event:MouseEvent):void {
    movieclip.play();
}
.

나는 확실하지 않지만 어떤 조건에 따라 이벤트 리스너를 추가하고 제거하려고 할 것인가?

이 이음새가 이벤트 핸들러를 중첩하려고 시도 할 때 초보자에게 가장 흔한 실수가 될 수 있습니다.

function navigation (): void {
    if (somethingTrue){
        button1.addEventListener(MouseEvent.ROLL_OVER, buttonOver); 
    else if(somethingElseTrue){
        button1.removeEventListener(MouseEvent.ROLL_OVER, buttonOver);
    }  
}

function buttonOver(event:MouseEvent):void {
    movieclip.play();
}
.

다른 답변이 언급했듯이 중첩 기능은 정의 된 함수의 범위로 제한됩니다. 해당 함수 외부에 액세스하려는 시도가 오류가 발생합니다.관련 Adobe 문서 아래 :

http://help.adobe.com/en_us/actionscript./3.0_programmingas3/ws5b3ccc516d4fbf351e63e3d118a9b90204-7f54.html

함수 외부에서 중첩 된 기능을 이동하거나 Listener를 변경하여 navigation를 호출하고 navigation를 호출하여 buttonOver

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top