BorderContainer上的生涩鼠标移动

时间:2011-09-04 14:46:09

标签: flex actionscript-3 air

当我尝试拖动bordercontainer在鼠标向下移动x轴位置时。它似乎移动稳定,但当我拖得快一点时变得不稳定。

以任何方式让bordercontainer以平滑的动作移动?

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;
}

2 个答案:

答案 0 :(得分:1)

您定位移动设备吗? MouseEvent.MOUSE_MOVE对移动设备来说非常密集,因为它的呼叫速度比帧速率快很多倍。对于具有移动部署目标的项目,它没有被优化或建议使用MouseEvent.MOUSE_MOVE

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

答案 1 :(得分:0)

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

2)不要将MouseEvent.MOUSE_MOVE听众添加到borderCntr。当你快速移动并且鼠标将走到borderCntr之外时,你将无法再接收移动事件。而是听取父级或舞台或顶级应用程序(再次),即不会松动鼠标的应用程序。