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

Actionscript 3 单击图像以在flex中调度事件,actionscript-3,apache-flex,flex4,Actionscript 3,Apache Flex,Flex4,我在renderer类中有一个image,如果我单击image,我需要向flex中的主mxml页面发送一个事件 在渲染器类中:- public function clickOnMoreImage(event:Event):void { var moreImageEvent:Event = new Event("clickOnMoreImage"); var parent:EventDispatcher = parentDocument.parent

我在renderer类中有一个image,如果我单击image,我需要向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");
}
这是行不通的。我能知道这方面的工作吗

  • 在这种情况下,不要使用
    parent
    parentDocument
    。您无法确定渲染器相对于顶级应用程序的嵌套级别
  • “灵活”的方式是使用
  • 按渲染器本身分派事件(将
    气泡
    设置为
    )。它将“冒泡”(如果渲染器不是弹出窗口的子级),直到stage,因此您可以在渲染器的任何父级(例如->数据组->列表->应用程序->系统管理器->stage)中侦听它

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