【问题标题】:FLex MouseEvent doesn't fire when Mouse stays over element当鼠标停留在元素上时,FLex MouseEvent 不会触发
【发布时间】:2011-02-11 15:33:01
【问题描述】:

我正在尝试制作一个可滚动的框,当鼠标进入并停留在“包装器”区域时,“pubsBox”向左移动 10 个像素。

<mx:Canvas id="wrapper" height="80" width="750">
    <mx:HBox id="pubsBox" horizontalGap="10" height="80" width="100%" />
</mx:Canvas>

我的问题是我不确定如何使 MouseEvent.MOUSE_OVER 工作,以识别鼠标仍在该区域上,因此 pubsBox 应该每秒继续向左移动 10 个像素。

我知道我必须使用计时器,但我担心的是我无法让 Flex 识别鼠标仍处于“包装”状态并继续触发事件。有什么想法吗?

【问题讨论】:

    标签: apache-flex events mouseevent mouseover


    【解决方案1】:

    使用 MouseEvent.MOUSE_OUT。假设鼠标仍然在包装器上,直到触发 mouse out 事件。所以基本上你会设置某种循环,它会不断移动 pubsBox,直到触发 MouseEvent.MOUSE_OUT 事件。

    <mx:Canvas id="wrapper" height="80" width="750" mouseOver="startMove(e)" mouseOut="stopMove(e)"> <mx:HBox id="pubsBox" horizontalGap="10" height="80" width="100%" /> </mx:Canvas>

    在 startMove 函数中,设置你的计时器等,以获得实现移动的逻辑。在 stopMove 函数中,添加您的逻辑以停止计时器并终止移动进程。

    【讨论】:

    • 哦等等...我想我可能知道你在说什么。你是说在 mouseOver 上启动计时器,只有在 mouseOut 时才停止。
    • 是的,没错。但是您要确保在计时器达到 0 时继续重置并启动计时器以继续移动对象,因为鼠标仍然悬停在对象上。计时器将一直重置并启动,直到触发 mouseOut 事件。
    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 2013-07-02
    • 1970-01-01
    • 2021-11-10
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多