중첩 된 기능의 이벤트 리스너
-
12-12-2019 - |
문제
리스너에 첨부 된 함수를 사용해야하는 중첩 된 함수가 포함 된 함수 외부에 몇 가지 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 문서 아래 :
함수 외부에서 중첩 된 기능을 이동하거나 Listener를 변경하여 navigation
를 호출하고 navigation
를 호출하여 buttonOver
제휴하지 않습니다 StackOverflow