首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex 3未调度Customevent

Flex 3未调度Customevent
EN

Stack Overflow用户
提问于 2010-02-06 09:58:57
回答 1查看 204关注 0票数 0

我有一个名为DrawPlaybook的函数,它侦听两个事件,一个是鼠标单击事件,另一个是自定义事件。

代码语言:javascript
复制
public function DrawPlaybook(...):void
{
    //...... other stuff
    panel.addEventListener(MouseEvent.CLICK,
        function(e:MouseEvent){onClickHandler(e,this.panel)});
    panel.addEventListener(CustomPageClickEvent.PANEL_CLICKED,
        onCustomPanelClicked);
}

我计划在"onClickHandler“中调用自定义事件,如下所示:

代码语言:javascript
复制
public function onClickHandler(e:MouseEvent,panel):void
{
    var eventObj:CustomPageClickEvent = new CustomPageClickEvent("panelClicked");
    eventObj.panelClicked = panel;
    dispatchEvent(eventObj);
}

private function onCustomPanelClicked(e:CustomPageClickEvent):void {
    Alert.show("custom click");
}

下面是CustomPageClickEvent的类定义:

代码语言:javascript
复制
package
{
    import flash.events.Event;

    import mx.containers.Panel;

    public class CustomPageClickEvent extends Event
    {
        public var panelClicked:Panel; 

        // Define static constant.
        public static const PANEL_CLICKED:String = "panelClicked";

        public function CustomPageClickEvent(type:String){
            super(type);
            //panelClicked = panel;
        }

        // Override the inherited clone() method.
        override public function clone():Event {
            return new CustomPageClickEvent(type);
        }

        public function getPanelSource():Panel{
            return panelClicked;
        }
    }
}

问题是"onCustomPanelClicked“根本不会被调用。如果你注意到我遗漏了什么,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-06 10:16:42

这是因为您已经在面板上注册了CustomPageClickEvent的事件侦听器,但您是从DrawPlaybook调度它的

只需更改以下内容:

代码语言:javascript
复制
var eventObj:CustomPageClickEvent = new CustomPageClickEvent("panelClicked");
eventObj.panelClicked = panel;
dispatchEvent(eventObj)

要这样做:

代码语言:javascript
复制
var eventObj:CustomPageClickEvent = new CustomPageClickEvent("panelClicked");
eventObj.panelClicked = panel;
panel.dispatchEvent(eventObj)

..。或者将事件侦听器更改为this.addEventListener(CustomPageClickEvent.PANEL_CLICKED, onCustomPanelClicked);

如果有效的话,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2211678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档