Flash cs5中轻松实现iPhone应用:[2.多点触摸(Multi-touch)]


ipa下载:
http://www.jimmy.sh/wp-content/u ... ulti-touch-test.ipa
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 //当前环境是否支持基本的触摸
实例下载
原文件
ipa多点触摸
[url=http://www.jimmy.sh/wp-content/uploads/2010/01/Multi-touch.zip]
[1b]Multi-touch[/1b]
[/url]
[url=http://www.jimmy.sh/wp-content/uploads/2010/01/Multi-touch-test.ipa][1b]
Multi-touch-test.ipa
[/1b][/url]
[url=/uploads/allimg/100131/2139130.png][1b]



[/1b][/url]

截图
源代码
/* @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;
};
}
}
}
}
}
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/5335.html

你可能感兴趣的:(游戏,UI,Flash)