iPhone刚出来的时候最让我惊喜的莫过于多点触摸(Multi-touch)和手势,酷的一塌糊涂。超多游戏好应用使用了多点触摸技术,废话不多,来看看在Flash cs5中如何实现多点触摸。
 这些在Flash cs5中都可以轻松实现。
  
AS新增加类包  flash.events.TouchEvent; 多点触摸事件
Property:
altKey : Boolean //设置Alt键激活与否
commandKey : Boolean //设置Command键激活与否
controlKey : Boolean //设置Control键激活与否
ctrlKey : Boolean //设置Ctrl键激活与否
isPrimaryTouchPoint : Boolean //接触的第一个点是否被看成鼠标事件
isRelatedObjectInaccessible : Boolean //安全设置
localX : Number  //相对x坐标
localY : Number  //相对y坐标
pressure : Number //于设备接触的压力
relatedObject : InteractiveObject// 显示相关的Object
shiftKey : Boolean// 设置ShiftKey键激活与否
sizeX : Number// 触摸时的宽度
sizeY : Number //触摸时高度
stageX : Number //全局X坐标
stageY : Number //全局Y坐标
touchPointID : int //接触点的ID识别码
 
Methods:
TouchEvent
 
AS新增加类包 flash.ui.Multitouch; 多点触摸管理类
inputMode : String  //触摸事件的处理模式(多点或是手势)
maxTouchPoints : int  //当前环境所支持同时进行的接触点的最大数量
supportedGestures : Vector. //当前环境所支持多接触的类型
supportsGestureEvents : Boolean //当前环境是否支持手势
supportsTouchEvents : Boolean //当前环境是否支持基本的触摸

截图
源代码
  /* @author jimmy
 * www.jimmy.sh
*/
package
{
 
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.events.TouchEvent;
	import flash.ui.Multitouch;
	import flash.ui.MultitouchInputMode;
 
	public class main extends Sprite
	{	
 
		public var s1:Sprite;
		public var s2:Sprite;
		public var s3:Sprite;
		public var s4:Sprite;
		public var s5:Sprite;
		public var s6:Sprite;
		protected var touchMap:Array= [];
		protected var touchMc:Array;
		public function main()
		{
			touchMc=[s1,s2,s3,s4,s5,s6];
			//多点触摸类型
			Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT;
			//添加3个多点触摸事件
			this.addEventListener(TouchEvent.TOUCH_BEGIN,touchBeginHandler);
			this.addEventListener(TouchEvent.TOUCH_END,touchEndHandler);
			this.addEventListener(TouchEvent.TOUCH_MOVE,touchMoveHandler);
		}
		//触摸开始事件
		protected function touchBeginHandler(event:TouchEvent):void
		{
			addChild(DisplayObject(event.target));
			touchMc.sort(depthFunction);
			var touchPoint:Object={};
			touchMap[event.touchPointID] =touchPoint;
		}
		//根据深度排序,为了让判断的时候先判断前面的物体
		protected function depthFunction(a:Sprite,b:Sprite):int
		{
			if(getChildIndex(a)>getChildIndex(b))
				{
					return -1;
				}else {
					return 1;
				}
		}
		//触摸事件结束事件
		protected function touchEndHandler(event:TouchEvent):void
		{
			delete touchMap[event.touchPointID];
		}
		//触摸点移动事件
		protected function touchMoveHandler(event:TouchEvent):void
		{
			var key :int =event.touchPointID;
			//判断触摸到那个mc,并让mc跟着手指移动
			if(touchMap[key])
			{
				for(var i:int=0;i<6;i++)
				{
					var _mc:Sprite=touchMc[i];
					if(_mc.hitTestPoint( event.stageX,event.stageY))
						{
							_mc.x=event.stageX;
							_mc.y=event.stageY;
							break;
						};
				}
			}
		}
	}
}