有没有办法编写自定义事件,当用户在该自定义组件实例外单击时触发该自定义事件?基本上在主要的Flex应用程序的其他地方。 谢谢。flex中的自定义组件的点击外部事件
回答
您可以使用FlexMouseEvent.MOUSE_DOWN_OUTSIDE
事件。例如:
myPopup.addEventListener(
FlexMouseEvent.MOUSE_DOWN_OUTSIDE,
function(mouseEvt:FlexMouseEvent):void
{
PopUpManager.removePopUp(myPopup);
}
);
stage.addEventListener(MouseEvent.CLICK, stgMouseListener, false, 0, true);
...
private function stgMouseListener(evt:MouseEvent):void
{
trace("click on stage");
}
private function yourComponentListener(evt:MouseEvent):void
{
trace("do your thing");
evt.stopPropagation();
}
从Senocular得到这个。我认为这适用于这个主题,至少它对我有用。 jedierikb提出的建议似乎是一样的,但有点不完整。
防止事件传播
如果你想阻止事件的进一步传播,您可以使用stopPropagation()(flash.events.Event.stopPropagation())或stopImmediatePropagation事件侦听器内,这样做停止()(flash.events.Event.stopImmediatePropagation())。这些方法是从传入事件监听器的Event对象中调用的,并且基本上阻止了事件的发生 - 至少在那之后。
stopPropagation可以防止超出当前范围的任何对象接收事件,并且这可以在事件的任何阶段内。 stopImmediatePropagation执行相同的操作,但也需要额外的步骤来防止接收事件的当前目标中的其他事件发生。因此,在stopPropagation会阻止精灵A的父节点接收事件的情况下,stopImmediatePropagation将阻止精灵A的父节点以及监听精灵A的任何其他侦听程序接收事件。
示例:使用stopPropagation和stopImmediatePropagation ActionScript代码之间切换:
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0x4080A0);
circle.graphics.drawCircle(50, 50, 25);
addChild(circle);
circle.addEventListener(MouseEvent.CLICK, clickCircle1);
circle.addEventListener(MouseEvent.CLICK, clickCircle2);
stage.addEventListener(MouseEvent.CLICK, clickStage);
function clickCircle1(evt:MouseEvent):void {
evt.stopPropagation();
// evt.stopImmediatePropagation();
trace("clickCircle1");
}
function clickCircle2(evt:MouseEvent):void {
trace("clickCircle2");
}
function clickStage(evt:MouseEvent):void {
trace("clickStage");
}
点击圈,看到了事件是如何停止了与每个方法。 stopPropagation防止从接收到该事件的阶段,而stopImmediatePropagation也从识别事件
正常输出防止clickCircle2
clickCircle1
clickCircle2
clickStage
stopPropagation输出
clickCircle1
clickCircle2
stopImmediatePropagation输出
clickCircle1
的Flex/Actionscri PT 3 - 鼠标靠近popupanchor任何地方点击弹出锚
4.6 SDK外面试试这个..
frmPUA.popUp.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE,menuPopOutside,假,0,真正的);
的完整代码缴费在
- 1. 自定义组件点击事件
- 2. 如何启用自定义组件中的点击事件?
- 3. 为外部点击创建dataLayer自定义事件
- 4. Flex中的自定义组件中的冒泡事件
- 5. 组合自定义组件上的Flex 3事件传播?
- 6. jquery jtable自定义点击事件
- 7. 使用事件点击创建自定义控件点击
- 8. GWT听外部自定义JavaScript事件
- 9. Flex内置事件和自定义事件的事件流程
- 10. 如何在Flex中为自定义组件编写事件?
- 11. 自定义组件点击消息
- 12. 自定义AlertDialog.Builder添加自定义按钮事件点击
- 13. 事件点击Android外部对话框?
- 14. Flex自定义组件,事件和范围
- 15. jQuery的JTable中自定义点击事件操作路由
- 16. 如何处理自定义标记的点击事件组件在android
- 17. Flex 4鼓泡自定义事件
- 18. 手动点击事件触发Flex中
- 19. 在flex中访问自定义组件文件中的对象
- 20. 在外部点击时隐藏组件
- 21. Flex 4:检测RichEditableText外部的点击
- 22. 有角度。如何定义外部点击,排除子部件?
- 23. Flex动态创建的组件添加到自定义组件
- 24. 点击没有触发父组件的点击事件父组件上的点击事件
- 25. 将点击事件添加到自定义控件
- 26. C#自定义点击事件,不从控件继承
- 27. 在用户控件内检测div外部的点击事件
- 28. 变量到自定义组件 - flex
- 29. Flex自定义组件消失
- 30. Flex自定义按钮组件
的FlexMouseEvent.MOUSE_DOWN_OUTSIDE如果用PopUpManager中添加组件,而不是如果你做一个手动的addChild(请参见http然而刚刚播出://www.mail -archive.com/[email protected]/msg14875.html,看看我最后一小时的拉毛) – iddqd 2010-03-18 17:04:40