2011-09-04 68 views
0

当我尝试拖动边框容器沿鼠标向下沿x轴位置移动时,似乎看起来如此。它似乎移动稳定,但当我拖得更快时变得不平稳。BorderContainer上的生涩鼠标移动

任何方式让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; 
} 
+4

您应该考虑查看一些过去的问题,并在适当的情况下选择答案。 – JeffryHouser

回答

1

您是针对移动设备? MouseEvent.MOUSE_MOVE对于移动设备来说是相当密集的,因为它调用的速度比帧速率快很多倍。对于具有移动部署目标的项目,它不是优化或建议使用MouseEvent.MOUSE_MOVE

代替,通过采用任一stageXstageY性质或startDrag()stopDrag()功能与Event.ENTER_FRAME事件创建自己的移动的逻辑。

0

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

2)不要将MouseEvent.MOUSE_MOVE的收听者添加到borderCntr。当你做出非常快速的移动并且鼠标将走出borderCntr时,你将无法再接收移动事件。相反,要听父母或舞台或顶级应用程序(再次),不会松动鼠标的应用程序。