包 | flash.ui |
类 | public final class Multitouch |
继承 | Multitouch Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
- flash.events.TouchEvent
- flash.events.GestureEvent
- flash.events.GesturePhase
- flash.events.TransformGestureEvent
- flash.events.PressAndTapGestureEvent
使用列出的类编写处理 touch 事件的代码。使用 Multitouch 类确定当前环境的触摸交互支持,如果当前环境支持触摸交互,则对其进行管理。
您无法从 ActionScript 代码直接创建 Multitouch 对象。当您调用新 Multitouch()
时,将引发异常。
注意:在 Mac OS 上运行的 HTML 中嵌入的 SWF 文件不支持多点触控功能。
了解详细信息
Christian Cantrell:Flash Platform 上的多点触控和手势支持
Lee Brimelow:Flash Player 10.1 多点触控常见问题
Piotr Walczyszyn:Flex 中的多点触控开发
相关 API 元素
flash.events.GestureEvent
flash.events.TransformGestureEvent
flash.events.GesturePhase
flash.events.PressAndTapGestureEvent
flash.events.MouseEvent
flash.events.EventDispatcher.addEventListener()
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
inputMode : String [静态]
标识用于触摸和手势事件处理的多点触控模式。 | Multitouch | ||
mapTouchToMouse : Boolean [静态]
指定 AIR 运行时是否将触摸事件映射到鼠标事件。 | Multitouch | ||
maxTouchPoints : int [静态] [只读]
当前环境支持最大并发触摸点数。 | Multitouch | ||
supportedGestures : Vector.<String> [静态] [只读]
当前环境中支持的多点触控触摸类型向量数组(类型化的字符串值数组)。 | Multitouch | ||
supportsGestureEvents : Boolean [静态] [只读]
表示当前环境是否支持手势输入,例如绕触摸屏旋转两个手指。 | Multitouch | ||
supportsTouchEvents : Boolean [静态] [只读]
表示当前环境是否支持基本触摸输入,如单指点击。 | Multitouch |
inputMode | 属性 |
inputMode:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
标识用于触摸和手势事件处理的多点触控模式。使用此属性管理是否将事件调度为具有多个触控点或单一触控点(如点击)或没有触控点(触控处理为鼠标事件)的 touch 事件和针对不同手势(如旋转和平移)的特定事件。要设置此属性,请使用 flash.ui.MultitouchInputMode 类中的值。
默认值为 gesture。
实现
public static function get inputMode():String
public static function set inputMode(value:String):void
相关 API 元素
示例 ( 如何使用本示例 )
Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; var mySprite:Sprite = new Sprite(); var myTextField:TextField = new TextField(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0,0,40,40); addChild(mySprite); mySprite.addEventListener(TouchEvent.TOUCH_TAP, taphandler); function taphandler(e:TouchEvent): void { myTextField.text = "I've been tapped"; myTextField.y = 50; addChild(myTextField); }
mapTouchToMouse | 属性 |
mapTouchToMouse:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 3 |
指定 AIR 运行时是否将触摸事件映射到鼠标事件。
当值为 true
(默认值)时,AIR 运行时除了为触摸输入调度触摸事件之外,还调度鼠标事件。当值为 false
时,运行时不另外调度鼠标事件。将此属性设置为 false
可能导致依赖于鼠标事件的现有代码、库和框架在支持触摸屏输入的设备上功能不正常。
实现
public static function get mapTouchToMouse():Boolean
public static function set mapTouchToMouse(value:Boolean):void
相关 API 元素
maxTouchPoints | 属性 |
supportedGestures | 属性 |
supportedGestures:Vector.<String>
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
当前环境中支持的多点触控触摸类型向量数组(类型化的字符串值数组)。该字符串数组可用作注册事件侦听器的事件类型。可能的值是 GestureEvent、PressAndTapGestureEvent 和 TransformGestureEvent 类中的常量(如 GESTURE_PAN
)。
如果 Flash 运行时所处环境不支持任何多点触控手势,该值为 null
。
注意:对于 Mac OS 10.5.3 和更高版本,Multitouch.supportedGestures
返回非空值(可能错误地表示支持 gesture 事件),即使当前硬件不支持手势输入。
使用此属性测试是否支持多触点手势。然后,为可用多触点手势使用事件处理程序。对于当前环境中不支持的手势,您将需要创建替代事件处理。
实现
public static function get supportedGestures():Vector.<String>
相关 API 元素
flash.events.MouseEvent
flash.events.EventDispatcher.addEventListener()
flash.events.GestureEvent
flash.events.PressAndTapGestureEvent
flash.events.TransformGestureEvent
示例 ( 如何使用本示例 )
Multitouch.supportedGestures
矢量数组内容更改为包含 Flash 运行时的当前软件和硬件环境中可用的所有手势。如果 Multitouch.supportedGestures
矢量数组不包含某个 TransformGe tureEvent 手势,将不会为该手势添加事件侦听器。此示例由 Holly Schinsky 提供。
Multitouch.inputMode = MultitouchInputMode.GESTURE; for each (var item:String in Multitouch.supportedGestures) { trace("gesture " + item); if (item == TransformGestureEvent.GESTURE_PAN) img.addEventListener(TransformGestureEvent.GESTURE_PAN, onPan); else if (item == TransformGestureEvent.GESTURE_ROTATE) img.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate); else if (item == TransformGestureEvent.GESTURE_SWIPE) img.addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe); else if (item == TransformGestureEvent.GESTURE_ZOOM) img.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom); }
supportsGestureEvents | 属性 |
supportsGestureEvents:Boolean
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
表示当前环境是否支持手势输入,例如绕触摸屏旋转两个手指。Gesture 事件在 TransformGestureEvent、PressAndTapGestureEvent 和 GestureEvent 类中列出。
注意:对于 Mac OS 10.5.3 和更高版本,此值始终为 true
。即使硬件不支持 gesture 事件,Multitouch.supportsGestureEvent
仍将返回 true
。
实现
public static function get supportsGestureEvents():Boolean
相关 API 元素
supportsTouchEvents | 属性 |
Multitouch.supportedGestures
返回 null
并且为字符串矢量分配 null
时将导致运行时错误)。如果支持 gesture 事件,此示例显示来自当前环境中支持的 TransformGestureEvent 类的事件:
package { import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; import flash.display.Sprite; import flash.text.TextField; public class MultitouchExample extends Sprite { Multitouch.inputMode = MultitouchInputMode.GESTURE; public function MultitouchExample() { if(Multitouch.supportsGestureEvents){ var supportedGesturesVar:Vector.<String> = Multitouch.supportedGestures; var deviceSupports:TextField = new TextField(); deviceSupports.width = 200; deviceSupports.height = 200; deviceSupports.wordWrap = true; for (var i:int=0; i<supportedGesturesVar.length; ++i) { deviceSupports.appendText(supportedGesturesVar[i] + ", "); addChild(deviceSupports); } } } } }
Tue Jun 12 2018, 11:04 AM Z