我正在尝试在SpriteVisualElement上有两个guest,我认为应该很简单实现:
Mouse_Move用于扫描手势并单击鼠标以启用..
所以我的舞台上有2个Eventlisteners:
stage.addEventListener(MouseEvent.CLICK, taphandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousedownhandler);
主要问题是屏幕上的每一种扫描都会触发taphandler()......
有关如何识别正确事件的任何想法?
我只在(!event.buttondown)尝试使用taphandler但没有成功。
答案 0 :(得分:0)
你需要专门处理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,因此如果您有一个处理程序连接到您的Sprite for MouseClick.TOUCH,您将拥有一个冲突。