在Flex应用程序中限制鼠标移动区域

时间:2011-05-03 10:23:36

标签: flex actionscript-3 flex3

在我的flex应用程序中,我需要限制鼠标在某个区域移动。换句话说,我想在应用程序中为鼠标创建一个“No Entry Zone”。鼠标进入该区域时隐藏光标不是我的解决方案。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">

    <mx:Script>
        <![CDATA[
            protected function canvas2_mouseMoveHandler(event:MouseEvent):void
            {
                trace('mouse moved inside');//this trace should not be executed.
            }

        ]]>
    </mx:Script>

    <mx:Canvas x="250" y="180" backgroundColor="white" height="300" width="400" mouseMove="canvas2_mouseMoveHandler(event)">
        <mx:Text text="Mouse Entry not allowed"/>
    </mx:Canvas>
</mx:Application>

2 个答案:

答案 0 :(得分:1)

你不能以编程方式定位(因此既不修复)鼠标光标在Flex中(正如Alex Harui in this answer所指出的那样)。

虽然,你可以尝试to this approach
通过跟踪鼠标的x | y,你可以

  1. 将光标拉到最后一次启用 进入你的位置 限制画布(+隐藏它)和
  2. 删除绘制的光标 mouseOut事件(+显示光标)。
  3. 要限制Canvas中的拖放,只需在其上设置dragEnter属性(事件处理程序):

    dragEnter="event.stopImmediatePropagation();"
    

    您可以看到enabling and disabling drag/drop operations here

    的一些示例

答案 1 :(得分:0)

我们可以控制/设置鼠标位置来自Flex / ActionScript

但我们可以制作 Canvas 鼠标感应式应用属性

即。当我们将鼠标移到上时,它不会触发事件。属性是

mouseChildren="false"
mouseEnabled="false"

希望有所帮助