单击图像以在flex中调度事件

时间:2012-05-03 14:16:58

标签: actionscript-3 flex flex4

我在渲染器类中有一个图像,如果我单击图像,我需要将一个事件发送到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");
}

这不起作用。我能为此知道任何相关工作吗?

1 个答案:

答案 0 :(得分:3)

  1. 在这种情况下,请勿使用parentparentDocument。您无法确定渲染器的嵌套级别与顶级应用程序的对比。
  2. “Flex”方式是使用event bubbling
  3. 渲染器本身的调度事件(bubbles设置为true)。它将“冒泡”(如果渲染器不是弹出窗口的子节点)直到舞台,所以你可以在渲染器的任何父节目中听它(例如 - &gt; DataGroup - &gt; List - &gt; Application - &gt ; SystemManager - &gt; Stage)。

    var moreImageEvent:Event = new Event("clickOnMoreImage", true); //2nd parameter "true"
    dispatchEvent(moreImageEvent);