2

Google Maps API からジオコーディング データを取得する単純なオブジェクトがあり、Google からの応答に応じて一連のカスタム イベントをディスパッチしたいと考えています。ただし、UIComponent を拡張しないため、このクラスには addEventListener() メソッドと dispatchEvent() メソッドはありません。UIComponent から継承せずに Flex 3 でカスタム イベントを作成する方法はありますか?

4

4 に答える 4

8

はいぜったいに。イベント処理を利用するには、カスタム オブジェクトで EventDispatcher を拡張する必要があります。

public class MyClass extends EventDispatcher
{
    // ...

    public function myFunction():void
    {
        dispatchEvent(new Event("myEvent"));
    }
}

これにより、イベントのディスパッチが処理されます。

また、必要に応じて、Event を拡張する別のクラスを作成することもできます。これにより、ハンドラーで使用するイベント固有のデータをアタッチするオプション (とりわけ) が提供されます。

public class MyClass extends EventDispatcher
{
    // ...

    public function myFunction():void
    {
        dispatchEvent(new MyEvent(someData));
    }
}

public class MyEvent extends Event
{
    private var _myEventData:Object;

    public function MyEvent(eventData:Object)
    {
        _myEventData = eventData;
    }
}

..そのため、ハンドラーで次のようにします。

private function myHandler(event:MyEvent):void
{
    trace(event.myEventData.toString());
}

わかる?

于 2009-01-14T21:46:08.047 に答える
0

それはまさに私がしたことです!拡張された EventDispatcher と継承された dispatchEvent

ありがとう

于 2010-10-22T13:25:12.023 に答える