Мышь Move запускает Click мыши (Adobe Air) - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь создать два гостя для элемента SpriteVisualElement, который, на мой взгляд, должен быть реализован довольно просто:

Mouse_Move для развертки Жесты и щелчок мыши для включения ..

Итак, у меня есть 2 Eventlistenersна моей сцене:

stage.addEventListener(MouseEvent.CLICK, taphandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousedownhandler);

Основная проблема заключается в том, что каждый тип подметания на экране также запускает тапхендлер () ..

Есть идеи, как определить правильное событие?

Я пытался работать со своим манипулятором, только если (! Event.buttondown), но безуспешно.

1 Ответ

0 голосов
/ 11 октября 2011

Вам нужно обращаться с MouseEvent.CLICK специально?Или вы просто пытаетесь обрабатывать касание и перетаскивание отдельно.Если это так, попробуйте один из этих двух способов:

MySprite.addEventListener(TouchEvent.TOUCH_TAP, taphandler);
MySprite.addEventListener(PressAndTapGestureEvent.GESTURE_PRESS_AND_TAP, taphandler);

(обратите внимание, что эти обработчики событий находятся на вашем спрайте, а не на сцене)

Для касания и перетаскиванияпопробуйте:

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);

function onTouchBegin(eBegin:TouchEvent) {
     eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this));
     trace("touch begin");

 }

function onTouchMove(eMove:TouchEvent) {
    trace(eMove.stageX);
}

function onTouchEnd(eEnd:TouchEvent) {
     eEnd.target.stopTouchDrag(eEnd.touchPointID);
     trace("touch end");
}

Единственная проблема, с которой вы можете столкнуться, заключается в том, что TouchEvent.TOUCH_TAP и TouchEvent.TOUCH_BEGIN могут интерпретироваться как MouseClick.TOUCH на вашем устройстве, поэтому, если к вашему спрайту подключен обработчикдля MouseClick.TOUCH у вас будет конфликт.

Кстати, большая часть этой информации взята из Справочник по Adobe Actionscript 3.0 - TouchEvent

...