/ /マウス移動火災マウスクリック(Adobe Air) - flex、actionscript、air

マウスの動きが発生するマウスクリック(Adobe Air) - flex、actionscript、air

私はSpriteVisualElementに2つのゲストを配備しようとしていますが、これはかなりシンプルに実装する必要があります。

掃引のためのMouse_Moveジェスチャーとマウスをクリックすると有効になります..

だから私は私の舞台に2人のイベントリスナーを持っています:

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

主な問題は、スクリーン上のすべてのタイプのスイープもタップラー()を発生させることです。

正しいイベントを特定する方法に関するアイデアはありますか?

私は(!event.buttondown)しかし、成功しなかった場合にのみ、私のタファンドラーに挑戦しました。

回答:

回答№1は0

MouseEvent.CLICKを特に処理する必要がありますか?または、タップとドラッグを別々に処理しようとしていますか?このような場合は、これらの2つのうちの1つをタップしてみてください:

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