1

レンダラー クラスに画像があり、画像をクリックすると、flex のメイン mxml ページにイベントをディスパッチする必要があります。

レンダラー クラス:-

public function clickOnMoreImage(event:Event):void {                
    var moreImageEvent:Event = new Event("clickOnMoreImage");
    var parent:EventDispatcher = parentDocument.parentDocument as EventDispatcher;
    if (parent != null) {
        parent.dispatchEvent(moreImageEvent);
    }
}


<mx:Image id="imgStatus" buttonMode="true" useHandCursor="true" click="clickOnMoreImage(event)" />

親クラス:-

this.addEventListener("clickOnMoreImage", showMoreImagePopUpData);

public function showMoreImagePopUpData(event:Event):void {
    Alert.show("clicked on More Image");
}

これは機能していません。これに対する回避策を知ることができますか?

4

1 に答える 1

3
  1. この場合、parentorは使用しないでください。parentDocumentトップ アプリケーションに対するレンダラーのネスト レベルを確認することはできません。
  2. 「柔軟な」方法は、イベント バブリングを使用することです。

レンダラー自体によってイベントをディスパッチします ( を にbubbles設定true)。(レンダラーがポップアップの子ではない場合) ステージまで「バブル」するため、レンダラーの任意の親でリッスンできます (例: -> DataGroup -> List -> Application -> SystemManager ->ステージ)。

var moreImageEvent:Event = new Event("clickOnMoreImage", true); //2nd parameter "true"
dispatchEvent(moreImageEvent);
于 2012-05-03T14:31:54.290 に答える