【问题标题】:Jerky mouse movement on BorderContainerBorderContainer 上的鼠标移动抖动
【发布时间】:2011-09-04 14:46:08
【问题描述】:

似乎当我试图拖动边框容器以在鼠标向下时沿 x 轴位置移动时。它看起来很稳定,但当我拖得快一点时变得不稳定。

有什么方法可以让边界容器平滑移动?

private function mDownHandler(event:MouseEvent):void {
    gMouseX = event.localX;
    borderCntr.addEventListener(MouseEvent.MOUSE_MOVE, mMoveHandler);
}

private function mMoveHandler(event:MouseEvent):void {
    borderCntr.x = int(event.localX)-gMouseX;
}

【问题讨论】:

  • 你应该考虑回顾你过去的一些问题,并在适当的时候选择答案。

标签: apache-flex actionscript-3 air


【解决方案1】:

您的目标是移动设备吗? MouseEvent.MOUSE_MOVE 对于移动设备来说非常密集,因为它的调用速度比帧速率快很多倍。它没有经过优化,也不建议将MouseEvent.MOUSE_MOVE 用于具有移动部署目标的项目。

相反,通过使用stageXstageY 属性或startDrag()stopDrag() 函数和Event.ENTER_FRAME 事件来创建您自己的移动逻辑。

【讨论】:

    【解决方案2】:

    1) 你不应该在mMoveHandler 中使用本地坐标,因为它是borderCntr 内的鼠标坐标 - 它根本无法按你的意愿工作。使用父级或顶级应用程序的mouseX 或简单的event.stageX

    2) 不要将MouseEvent.MOUSE_MOVE 监听器添加到borderCntr。当您进行非常快速的移动并且鼠标将走出borderCntr 时,您将不再收到移动事件。而是听听父级或舞台或顶级应用程序(再次),不会松开鼠标的那个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多