Движение рывком мыши на BorderContainer - PullRequest
0 голосов
/ 04 сентября 2011

Кажется, когда я пытаюсь перетащить пограничный контейнер, чтобы перемещаться вдоль позиции оси 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;
}

Ответы [ 2 ]

1 голос
/ 04 сентября 2011

Вы нацеливаетесь на мобильные устройства?MouseEvent.MOUSE_MOVE довольно интенсивно для мобильных устройств, поскольку звонит во много раз быстрее, чем частота кадров.не оптимизировано и не рекомендуется использовать MouseEvent.MOUSE_MOVE для проектов с целями мобильного развертывания.

Вместо этого создайте свою собственную логику перемещения, используя свойства stageX и stageY или startDrag() и stopDrag()функции с событием Event.ENTER_FRAME.

0 голосов
/ 04 сентября 2011

1) Вы не должны использовать локальные координаты в вашем mMoveHandler, потому что это координаты мыши внутри borderCntr - он просто не может работать так, как вы хотите. Используйте родительское приложение или приложение верхнего уровня mouseX или просто event.stageX.

2) Не добавляйте MouseEvent.MOUSE_MOVE слушателя к borderCntr. Когда вы сделаете очень быстрое движение и мышь выйдет за пределы borderCntr, вы просто больше не будете получать события движения. Вместо этого слушайте родительское приложение, приложение уровня или уровня (снова), которое не потеряло бы мышь.

...