カスタム クラスを拡張EventDispatcher
し、目的のイベントをディスパッチします。
たとえば、Event.Complete
単に new をディスパッチするような単純なイベントの場合Event
:
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class ListaDir extends EventDispatcher
{
public function dispatch():void
{
dispatchEvent(new Event(Event.COMPLETE));
}
}
}
データを含むイベントをディスパッチする必要がある場合は、イベント クラスを作成するのが最適な場合があります。
CustomEvent クラス
例として、これはペイロード オブジェクトCustomEvent
を示しています。data
package
{
import flash.events.Event;
public class CustomEvent extends Event
{
public static const COMPLETE:String = "COMPLETE";
public var data:*;
public function CustomEvent(type:String, data:*, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
if (data)
this.data = data;
}
}
}
ListaDir クラス
このクラスが をディスパッチするCustomEvent
と、データのペイロードを送信できます。
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class ListaDir extends EventDispatcher
{
public function dispatch():void
{
var dataObject:Object = {name: "Example Data"};
dispatchEvent(new CustomEvent(CustomEvent.COMPLETE, dataObject));
}
}
}
実装:
イベント リスナーをインスタンス化して作成します。
var listaDir:ListaDir = new ListaDir();
listaDir.addEventListener(CustomEvent.COMPLETE, completeHandler);
完了したら、データ オブジェクトを取得します。
protected function completeHandler(event:CustomEvent):void
{
var dataObject:* = event.data;
}