当我尝试拖动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;
}
答案 0 :(得分:1)
您定位移动设备吗? MouseEvent.MOUSE_MOVE
对移动设备来说非常密集,因为它的呼叫速度比帧速率快很多倍。对于具有移动部署目标的项目,它没有被优化或建议使用MouseEvent.MOUSE_MOVE
。
相反,使用stageX
和stageY
属性或startDrag()
和stopDrag()
函数以及Event.ENTER_FRAME
事件来创建自己的移动逻辑。
答案 1 :(得分:0)
1)你不应该在mMoveHandler
中使用本地坐标,因为它是borderCntr
里面鼠标的坐标 - 它根本无法按你的意愿工作。使用父级或顶级应用程序的mouseX
或简称event.stageX
。
2)不要将MouseEvent.MOUSE_MOVE
听众添加到borderCntr
。当你快速移动并且鼠标将走到borderCntr
之外时,你将无法再接收移动事件。而是听取父级或舞台或顶级应用程序(再次),即不会松动鼠标的应用程序。