我有一个扩展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/