跟踪多个触点没有比跟踪单个接触难多少。这个TouchEvent.touchPointID属性是每个唯一的ID独特的触摸发生。当TouchEvent.TOUCH_BEGIN事件被触发时这个ID被分配时,可用来追踪在屏幕上独特的一面。
接 收触摸与touchPointID值事件对象1和2。如果你的手指抬起,放在他们回来在屏幕上,你会得到touchPointID值3和4。这使得它有点 难以跟踪特定手指因为touchPointID2不一定平均手指2。为了追踪特定的手指,你会需要存储的touchPointIDs目前正在用在数组或字 典对象,你会看到在下面的例子。你把这个对象的ID在TouchEvent.TOUCH_BEGIN事件和删除它在 TouchEvent.TOUCH_END事件。每个触摸屏的设备有不同数量的触动它可以检测一次。
帮助说明:
Multitouch 类管理并提供有关当前环境支持用于处理来自用户输入设备的接触的信息,包括有两个或多个触点(例如,用户在触摸屏上使用的手指)的接触。当用户与带有触摸 屏的移动电话或绘图板等设备交互时,用户通常使用手指或指针设备接触屏幕。有很多种指针设备,如鼠标或笔针,其中很多种设备在某个应用程序中仅具有一个触 控点。对于具有一个触控点的指针设备,用户交互事件可处理为鼠标事件,或者使用基本 touch 事件集(称为“接触点”事件)。但是,对于具有多个触控点以及执行复杂运动的指针设备,如人手,Flash 运行时支持其他事件处理 API 集(称为 gesture 事件)。使用这些 gesture 事件处理用户交互的 API 包括下列类:
flash.events.TouchEvent
flash.events.GestureEvent
flash.events.GesturePhase
flash.events.TransformGestureEvent
flash.events.PressAndTapGestureEvent
实例:
/*
标 识用于触摸和手势事件处理的多点触控模式。使用此属性管理是否将事件调度为具有多个触控点或单一触控点(如点击)或没有触控点(触控 处理为鼠标事件)的 touch 事件和针对不同手势(如旋转和平移)的特定事件。要设置此属性,请使用 flash.ui.MultitouchInputMode 类中的值。
使用 Multitouch.inputMode 属性为运行时确定触摸输入类型。输入模式可以是以下三个选项之一:
1:无 对触摸事件不提供特殊处理。设置:Multitouch.inputMode=MultitouchInputMode.NONE 并使用 MouseEvent 类处理输入。
2:单个触摸点 分别解释所有触摸输入,并跟踪和处理所有触摸点。设置:Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT 并使用 TouchEvent 类处理输入
3:动作输入 设备或操作系统将输入解释为手指沿屏幕移动的一种复杂形式。设备或操作系统将移动集体分配给单个动作输入事件。
设置:Multitouch.inputMode=MultitouchInputMode.GESTURE 并使用 TransformGestureEvent、PressAndTapGestureEvent 或 GestureEvent 类处理输入。
*/
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
var colors:Array = [ 0x731931, 0x401323, 0x262226, 0x54594C, 0x888C65];
var sprites:Dictionary = new Dictionary();
var touchCount:int = 0;
stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
function onTouchBegin( event:TouchEvent ):void
{
var mc:Sprite = new Sprite();
addChild( mc );
mc.graphics.lineStyle( 5, colors[ touchCount ] );
mc.graphics.moveTo( event.stageX, event.stageY );
touchCount++;
sprites[ event.touchPointID ] = mc;
}
function onTouchMove( event:TouchEvent ):void
{
var mc:Sprite = sprites[ event.touchPointID ] as Sprite;
mc.graphics.lineTo( event.stageX, event.stageY );
}
function onTouchEnd( event:TouchEvent ):void
{
var mc:Sprite = sprites[ event.touchPointID ] as Sprite;
this.removeChild( mc );
touchCount–;
delete sprites[ event.touchPointID ];
}



猜您还喜欢:
- flash多媒体交互应用基础(2) (此文被围观2592次)
- flash AS3 打字动画效果 (此文被围观5365次)
- [Flash AS3入门教程]使用 ActionScript 构建应用程 (此文被围观2832次)
- [Flash AS3实例教程]中自定义函数参数说明 (此文被围观2735次)
- [flash AS3系列教程]创建MovieClip类 (此文被围观3728次)
- 未来flash和unity 3D的发展趋势预测 (此文被围观6685次)
- [Flash AS3入门教程7]创建基本应用程序 (此文被围观3042次)
- as3中如何判断两个按键同时按下组合键 (此文被围观4803次)