| 包 | 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
隐藏继承的公共属性
显示继承的公共属性