apache-flex - FlexMouseEvent.MOUSE_DOWN_OUTSIDE 仅适用于弹出组件?

标签 apache-flex events mouseevent

我有一个扩展Flex UIComponent的组件,我想给它添加一个FlexMouseEvent.MOUSE_DOWN_OUTSIDE监听器,但它不起作用。这意味着我无法捕获该事件。但是当我使用 PopUpManager 添加此组件,然后添加 FlexMouseEvent.MOUSE_DOWN_OUTSIDE 监听器时,它工作正常。

FlexMouseEvent.MOUSE_DOWN_OUTSIDE仅适用于弹出组件吗?

感谢您的帮助

最佳答案

该事件仅通过弹出窗口触发。如果您想检查鼠标事件,您需要将常规鼠标添加到父容器中,并检查目标是否不是子容器。

执行此操作的另一种方法是捕获舞台和组件上的事件...由于冒泡向上,因此首先捕获组件单击。

public var bCompClicked=false;

stage.addEventListener(MouseEvent.CLICK,onStageClick);
myComponent.addEventListener(MouseEvent.CLICK,onComponentClick);

private function onComponentClick(event:MouseEvent):void{
     bCompClicked = true;
}

private function onStageClick(event:MouseEvent):void{
     if(!bCompClicked){   //we didn't click the component, so we clicked outside it..
       clickedOutSide();
     }else{
        bCompClicked=false; //we did click the component, set to false for the next time.
     }
}

private function clickedOutSide():void{
    //do what you want when someone clicks outside...
}

免责声明我还没有测试过这个,也没有认真思考过......所以它可能不起作用。

关于apache-flex - FlexMouseEvent.MOUSE_DOWN_OUTSIDE 仅适用于弹出组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6391984/

相关文章:

iphone - 好友没有被邀请参加 Facebook 中创建的事件

javascript - DOM initMouseEvent clientX, clientY

java - java中鼠标单击操作事件执行方式错误

java - 将源参数从 Java 应用程序传递到 Flash 播放器

css - 在 spark textarea 中设置图像样式

javascript - 防止与 HTML 内容交互

jquery - 将父级的悬停应用于 jquery ui 自动完成子级

cocoa - 如何点击 cocoa 网页 View 的透明部分

apache-flex - 柔性 3 : Getting variables from URL

android - Google Play 要求 AndroidManifest.xml 中的 versionCode 设置为正 32 位整数