组件的调度自定义事件没有父级

Posted

技术标签:

【中文标题】组件的调度自定义事件没有父级【英文标题】:dispatch custom event for component doesnt have parent 【发布时间】:2013-05-15 19:06:40 【问题描述】:

我有一个添加元素 MyComponent comp1 的组 g1 和一个添加子 g1 的 UIComponent c1 和一个自定义事件 customEvent1 意味着:

c1.addChild(g1.addElement(comp1))

所以 comp1.parent 为空

这是一些代码

我的组件:

private function mouseUpFunction(e:MouseEvent):void 
    //e.stopPropagation();
    var event:MouseChangeEvent = new MouseChangeEvent(MouseChangeEvent.Mouse_Up_Objective);
    dispatchEvent(event);


private function mouseDownFunction(e:MouseEvent):void
    //e.stopPropagation();
    var event:MouseChangeEvent = new MouseChangeEvent(MouseChangeEvent.Mouse_Down_Objective);
    dispatchEvent(event);

主应用:

stage.addEventListener(MouseChangeEvent.Mouse_Down_Objective, mouseDownHandler);
stage.addEventListener(MouseChangeEvent.Mouse_Up_Objective, mouseUpHandler);

问题是 comp1 调度事件但它永远不会捕获! :(

【问题讨论】:

【参考方案1】:

“bubbles”参数需要在您的自定义事件类中设置为 true。

【讨论】:

这是真的: public function MouseChangeEvent(type:String) super(type, true, false); 【参考方案2】:

通过我的测试,在没有父组件的情况下,不可能在组件中冒泡自定义事件 所以无论如何你都应该设置父级

【讨论】:

这是我的问题的答案,应该关闭这就是我留下答案的原因

以上是关于组件的调度自定义事件没有父级的主要内容,如果未能解决你的问题,请参考以下文章

从自定义组件调度自定义事件

FLEX:flash 组件没有收到它自己的自定义事件

[Vue]组件——通过$emit自定义组件事件

mui触发自定义事件(子页面返回传递给父级页面值)

使用 Dojo 框架调度自定义事件

BigQuery:两个命中级自定义维度