1
dispatchEvent를 사용하여 "Beep2"이벤트를 잡는 데 필요한 것을 정리하려고합니다. Im는 dispatchEvent "Beep2 true"의 추적 결과를 생성 할 수 있지만 "DoNext"함수는 실행되지 않습니다.AS3 사용자 지정 이벤트가 문서 클래스에서 실행되지 않음 (DispatchEvent actionscript 사용)
이 코드는 CustomEvent 클래스를 사용하여 이벤트 클래스를 확장합니다. 지금까지 지식의 제 한계에 대한 권리, 그래서 어떤 도움을 주시면 감사하겠습니다. :)
감사합니다.
패키지 //Main.as (문서 클래스)
import flash.display.MovieClip;
import flash.events.Event;
public class Main extends MovieClip
{
public var ftasks:MovieClip;
public function Main()
{
ftasks = new filetasks();
addChild(ftasks);
ftasks.addEventListener(CustomEvent.BEEP2, DoNext);
}
//not firing
public function DoNext (evt:Event)
{
trace("DoNext");
}
}
패키지 //CustomEvent.as
//Extend Event class.
import flash.events.Event;
public class CustomEvent extends Event
{
public static const BEEP1 ="Beep1";
public static const BEEP2 ="Beep2";
//Declare Event Constructor
public function CustomEvent(type:String, bubbles:Boolean)
{
super(type, bubbles);
type = this.type;
bubbles = this.bubbles;
trace(type, bubbles);
}
public override function clone():Event
{
return new CustomEvent(type, bubbles);
}
}
패키지 //filetasks.as
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
public class filetasks extends MovieClip
{
public var Ref;
public function filetasks (_Ref)
{
Ref = _Ref;
dispatchEvent(new CustomEvent(CustomEvent.BEEP2, true));
}
public function done (evt:MouseEvent)
{
dispatchEvent(new CustomEvent(CustomEvent.BEEP1, true));
}
}
네, 맞아, filetask 함수의 생성자에서 dispatch 이벤트를 빠르게 제거하면 트릭을 만들 수 있습니다. –
빠른 응답을 위해 @Tobias에게 감사드립니다. –