1

みたいな質問を見ましたが、答えはクラス内からのコールバック関数でポイントを回避しています。

ディレクトリ(ListaDir)を読み取り、phpサーバー側にリクエストを送信して回答を処理するクラスを作成しました。私はこのように使いたい:

var Lista:ListaDir = new ListaDir(urltophplibrarythatreadthedirectory); // this is working
Lista.addEventListener(Event.COMPLETE, myHandlerFunc); // this is the dream

function myHandlerFunc(e){
var Res:Object = e.target.data; // The answer in object containing the list and another info
}

このようにできますか?どのように?

4

1 に答える 1

3

カスタム クラスを拡張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;
}
于 2013-06-15T22:16:08.900 に答える