그래서 여기에 약간의 문제가 있습니다. 더 간단하게 만들기 위해 위의 코드에서 가짜 변수 이름을 사용하겠습니다. 그러나 특정 조건에 의해 한 번만 호출되는 기능을 지정하는 것은 중요하지 않습니다. 이 함수는 Function 자체 인 변수를 만듭니다. 그런 다음이 함수 변수의 timer eventListener를 호출하여 '루프'에서 호출합니다. 그것은 그 부분을 위해 작동합니다. 그런데이 이벤트 리스너를 제거하려고하지만이 타이머 함수에서 함수의 변수 (인수로 보낸 변수)를 인식하지 못합니다. 그것은 null을 보여 주며 그것은 eventListener를 제거 할 수없고 함수가 영원히 계속 호출된다는 것을 의미합니다. 어떤 해결책?플래시 AS3. EventListener 제거 문제
P. myTimer는 어디에서나 사용할 수있는 공용 변수이며 1010 오류가 발생합니다.
public function calledOnce(){
this.myFunction = loopFunction(x, y, "function");
this.myTimer.addEventListener(TimerEvent.TIMER, this.myFunction);
}
public function loopFunction(refX, refY, refFunction){
return function(e: Event){
//Do something
switch(refFunction){
case "function":
this.myTimer.removeEventListener(TimerEvent.TIMER, this.myFunction);
break;
}
};
}
흥미 롭다면 실제로 복사 할 것이라고 생각했기 때문에 실제로 복사하고 붙여 넣어야했습니다. 어쩌면 누군가가 설명 할 수 있습니다. 그러나 이것이 작동하지 않는다면,이 방법으로 그것을 만들 필요가 무엇입니까? 함수가 반환되지 않는다고 코드를 변경할 수는 없습니까? 내가 설명에 궁금해하기 때문에 이것을 포기한다. – Fygo