Flex中鼠标单击 获取自定义组件 MouseDown getObjectsUnderPoint
2010年08月26日
当自己定义了一个特殊形状的组件之后,希望在界面上,当鼠标点击的时候,能够最终将消息传递到该组件,就需要想办法了,困难总是比办法多。 不知道getObjectsUnderPoint这个方法的具体实现是怎样的,相当敬佩这个牛人写了这个方法。(扯远了,不过我确实蛮想知道为什么鼠标事件能被不同的组件捕获到)
直接上代码 /** * 鼠标按下 * */ if(MouseEvent.MOUSE_DOWN == e.type){ point = new Point(); point.x = e.stageX; point.y = e.stageY; dl.initMove(); dp.initMove(); var conArr:Array = this.stage.getObjectsUnderPoint(new Point(stage.mouseX,stage.mouseY)); if(conArr.length>1){//说明底层有东西 for(var i:int = 0;i组件 trace(conArr[i]); var ui:GeometryGroup = conArr[i] as GeometryGroup; ui.dispatchEvent(new MouseEvent(MouseEvent.CLICK));//将消息传递给该组件 point = null; } } } }
2010年08月26日
当自己定义了一个特殊形状的组件之后,希望在界面上,当鼠标点击的时候,能够最终将消息传递到该组件,就需要想办法了,困难总是比办法多。 不知道getObjectsUnderPoint这个方法的具体实现是怎样的,相当敬佩这个牛人写了这个方法。(扯远了,不过我确实蛮想知道为什么鼠标事件能被不同的组件捕获到)
直接上代码 /** * 鼠标按下 * */ if(MouseEvent.MOUSE_DOWN == e.type){ point = new Point(); point.x = e.stageX; point.y = e.stageY; dl.initMove(); dp.initMove(); var conArr:Array = this.stage.getObjectsUnderPoint(new Point(stage.mouseX,stage.mouseY)); if(conArr.length>1){//说明底层有东西 for(var i:int = 0;i组件 trace(conArr[i]); var ui:GeometryGroup = conArr[i] as GeometryGroup; ui.dispatchEvent(new MouseEvent(MouseEvent.CLICK));//将消息传递给该组件 point = null; } } } }