빠른 질문 ... EventListener를 함수에 연결할 수 있습니까? 따라서 함수의 실행 중 어느 시점에서 Event가 전달되면 EventHandler가 실행됩니다.작동하려면 EventListener를 추가 하시겠습니까?
건배.
빠른 질문 ... EventListener를 함수에 연결할 수 있습니까? 따라서 함수의 실행 중 어느 시점에서 Event가 전달되면 EventHandler가 실행됩니다.작동하려면 EventListener를 추가 하시겠습니까?
건배.
이벤트 리스너는 EventDispatcher에서 파생 된 클래스에 속한 객체에 연결됩니다. 함수에 연결할 수 없습니다.
stage.addEventListener("myFunctionWasCalled", callback);
myFunction();
public function callback(event:Event):void {
trace("callback executed");
}
public function myFunction():void {
stage.dispatchEvent(new Event("myFunctionWasCalled"));
}
당신은 단순히 당신이 그것에 이러한 이벤트를 전달하고 듣는 단계를 사용할 수 있습니다
function cb(s:String):void {
trace(s);
}
function doit(f:Function):void {
// do something
f("Hi");
// do some more stuff
}
doit(cb);
인수로 함수 참조 (콜백)를 통과하여이 작업을 수행 할 수 있습니다 필요에 따라 함수 호출을 추가/제거하는 것만으로도 이벤트를 수신하고 싶을뿐입니다. 예 : 당신도 길을 추적하기가 매우 어려워 질 수 있습니다 흐름이 다음 선택을하는 경우
function somefunction():void{
someobject.addEventListener(Event, eventhandler);
... doing stuff
someobject.removeEventListener(Event, eventhandler);
}
지금 명심
.당신이 정말로 개체의 삶과 죽음에 대해 걱정할 필요가있는 전형성은 함수 호출의 삶과 죽음을 비교합니다.
경우 :
개체에 이벤트 수신기를 연결하려면이 개체는 IEventDispatcher
인터페이스를 구현해야합니다. 따라서 Function
클래스를 확장하고 메소드를 추가 할 수 있습니다. AS3의 문서는 Function
최종 아니라고 말하지만, AS3 컴파일은 동의하지 : VerifyError: Error #1103: Class Bla cannot extend final base class.
그래서 짧은 대답은 : 당신이 함수에 이벤트 리스너를 부착 할 수 없습니다.
그러나 이미 당신이 할 수 언급 한대로 :
function bla(callback1:Function, callback2:Function):void
.IEventDispatcher
메서드를 갖는 Functor
클래스를 만들 수 있습니다. 이 방법으로 함수 myFunctor.execute()
을 호출하면 전달 이벤트를 얻을 수 있습니다.