as3中当时的TOUCH_POINT和GESTURE事件

时间:2012-05-03 08:23:09

标签: actionscript-3 flash multi-touch

我一直在争论as3中的多点触控问题。我正在尝试创建一个应用程序,用户应该能够在舞台(touch_point)周围移动图片,并通过手势(捏合手势)进行缩放。它甚至可能吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

这些功能将处理捏合,缩放和拖动。

import flash.events.GestureEvent;
import flash.events.TransformGestureEvent;
import flash.events.GesturePhase;
import flash.events.Event;
import flash.events.MouseEvent;

function fl_ZoomHandler (e:TransformGestureEvent):void {
e.target.scaleX *=  e.scaleX;
e.target.scaleY *=  e.scaleY;

if (e.phase==GesturePhase.END) {
        e.currentTarget.stopDrag();
    }

}


function fl_StartDrag (e:MouseEvent):void {
e.currentTarget.startDrag (false);
theDragItem = e.currentTarget;
}


function fl_StopDrag (e:MouseEvent):void {  
e.currentTarget.stopDrag();
}


function fl_RotateHandler (e:TransformGestureEvent):void {
e.target.rotation +=  e.rotation;

if (e.phase==GesturePhase.END) {
        e.currentTarget.stopDrag();
    }
}

这些是要应用于您想要影响的项目的事件侦听器。

YOUROBJECT.addEventListener(MouseEvent.MOUSE_DOWN, fl_StartDrag, false, 0, true);
YOUROBJECT.addEventListener(MouseEvent.MOUSE_UP, fl_StopDrag, false, 0, true);
YOUROBJECT.addEventListener(TransformGestureEvent.GESTURE_ZOOM, fl_ZoomHandler, false, 0, true);
YOUROBJECT.addEventListener(TransformGestureEvent.GESTURE_ROTATE, fl_RotateHandler, false, 0, true);

答案 1 :(得分:1)

可能这可能是有用的

http://help.adobe.com/en_US/as3/dev/WS1ca064e08d7aa93023c59dfc1257b16a3d6-7ffd.html

以与基本触摸事件相同的方式处理手势事件。您可以侦听由TransformGestureEvent类,GestureEvent类和PressAndTapGestureEvent类中的事件类型常量定义的一系列手势事件。

还有一个新问题出现了..按下并点击?刷卡? 每个

http://i.msdn.microsoft.com/dynimg/IC504532.png图解说明

这个网站太棒了

Viva StackOverflow!

答案 2 :(得分:0)

不要同时使用两者,您可以轻松地使用TouchEvent属性进行一些调整来制作手势事件。