处理用户交互目前,触摸屏已经成为移动设备的标准配置,Android设备也不例外。因此,对于开发人员来说,处理用户交互主要是处理手与触摸屏的交互。由于手指非常灵活,可以在触摸屏上产生多种操作方式。例如,单指可以进行按压、移动、快速点击、长按等操作;两根手指可以进行旋转、缩放等手势,这些手势会触发多点触控事件。如何在AIR中处理多点触控事件正是本章要介绍的内容。关于多点触控在ActionScript3.0中,根据交互行为产生的事件类型,多点触控动作分为触摸和手势两大类。触摸动作是指一个或多个手指触摸屏幕的动作,触发的事件对象为TouchEvent类型。手势往往由一系列触摸动作组成,代表特定的含义,触发的事件对象为GestureEvent类型。由于触摸和手势之间的包含关系,程序在运行过程中无法同时检测到这两类事件。因此,ActionScript3.0引入了Multitouch类来管理程序的触摸交互方式。如果要检测触摸事件,必须通过以下代码更改检测方式://导入相应的类importflash.ui.Multitouch;importflash.ui.MultitouchInputMode;…//检测系统是否支持触摸事件if(Multitouch.supportsTouchEvents){ //设置多点触摸模式为touch Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT;}在处理触摸事件之前,建议开发者先检查Multitouch类的静态属性supportsTouchEvents是否为true,即检查当前设置是否支持触摸事件,再进行后续操作。如果设备不支持触摸事件,交互可以通过其他方式处理,这样可以兼容多种设备。intputMode是Multitouch类的另一个静态属性,表示当前程序的触摸交互方式。有3个可选值,是MultitouchInputMode类的静态常量:MultitouchInputMode.NONE(不处理触摸和手势事件)MultitouchInputMode.TOUCH_POINT(处理触摸事件)MultitouchInputMode.GESTURE(默认值,处理手势事件)默认交互模式在AIR中是MultitouchInputMode.GESTURE,处理手势事件。因此,在使用触摸事件时,必须将inputMode改为MultitouchInputMode.TOUCH_POINT。设置好交互方式后,就可以为舞台上的组件添加相应的事件监听器,像处理其他事件一样响应用户的操作。Tips 无论你是哪种触摸交互方式,鼠标事件都可以正常使用。
