触摸输入的基础知识

Flash Player 10.1 和更高版本,Adobe AIR 2 和更高版本

当 Flash Platform 在支持触摸输入的环境中运行时,InteractiveObject 实例可以侦听触摸事件并调用处理函数。通常,可以像处理 ActionScript 中的其他事件一样处理触摸、多点触控和手势事件(有关使用 ActionScript 进行事件处理的基本信息,请参阅 处理事件 )。

但是,由于 Flash 运行时解释触摸或手势,所以运行时必须在支持触摸或多点触控输入的硬件和软件环境中运行。有关比较不同触摸屏类型的图表,请参阅 了解输入类型 。此外,如果运行时在容器应用程序(例如浏览器)内运行,则随后该容器会将输入传递到运行时。在某些情况下,虽然当前硬件和操作系统环境支持多点触控,但是包含 Flash 运行时的浏览器只解释输入却不将其传递到运行时。或者,完全忽略输入。

下图显示了从用户到运行时的输入流:

查看完全大小图形
从用户到 Flash Platform 运行时的输入流

幸运的是,用于开发触摸应用程序的 ActionScript API 包括类、方法和属性,来确定运行时环境中是否支持触摸或多点触控输入。用于确定是否支持触摸输入的 API 是用于触摸事件处理的“发现 API”。

重要概念和术语

以下参考列表包含与编写触摸事件处理应用程序相关的重要术语:

发现 API
用于测试运行时环境是否支持触摸事件和其他输入模式的方法和属性。

触摸事件
使用单个接触点在启用触摸的设备上执行的输入动作。

触摸点
单个触摸事件的接触点。即使设备不支持手势输入,也可以支持多个同步触摸点。

触摸序列
表示单个触摸的生命期的一系列事件。这些事件包括一个开始事件、零个或多个移动事件和一个结束事件。

多点触控事件
使用多个接触点(例如多个手指)在启用触摸的设备上执行的输入动作。

手势事件
在启用触摸的设备上执行的输入动作(跟踪某些复杂的移动)。例如,某个手势使用两个手指触摸屏幕并同时沿抽象圆的周长移动以指示旋转。

阶段
事件流中不同的时间点(例如开始和结束)。

笔针
与启用触摸的屏幕进行交互的工具。笔针比人类的手指更精确。某些设备仅识别来自特定类型的笔针的输入。识别笔针输入的设备可能不识别多个同步接触点或手指接触。

按住并点击
特定类型的多点触控输入手势,用户用一个手指按下启用触摸的设备,然后使用另一个手指或指针设备点击。此手势通常用于在多点触控应用程序中模拟鼠标右键单击。

触摸输入 API 结构

ActionScript 触摸输入 API 旨在面向触摸输入处理取决于 Flash 运行时的硬件和软件环境这一事实。触摸输入 API 主要面向三种触摸应用程序开发的需要:发现、事件和阶段。配合使用这些 API 可以为用户生成一个可预知和可以响应的体验;即使在您开发应用程序时目标设备是未知的也是如此。

发现

发现 API 提供了在运行时测试硬件和软件环境的功能。由运行时填充的值决定在当前上下文中,触摸输入是否可用于 Flash 运行时。此外,使用发现属性和方法的集合可以将应用程序设置为响应鼠标事件(如果环境不支持某些触摸输入,则代替触摸事件)。有关详细信息,请参阅 触摸支持发现

事件

ActionScript 使用事件侦听器和事件处理函数管理触摸屏输入事件,与它对其他事件的管理方式一样。但是,还必须考虑触摸屏输入事件处理:
  • 设备或操作系统可以多种方式解释触摸,可以解释为一系列触摸,也可以笼统地解释为一个手势。

  • 对启用触摸的设备的单个触摸(通过手指、笔针或指针设备)也会始终调度鼠标事件。您可以处理具有 MouseEvent 类中事件类型的鼠标事件。或者,您可以将应用程序设计为只响应触摸事件。或者,您可以设计一个响应这两种类型事件的应用程序。

  • 应用程序可以响应多个同步触摸事件并单独处理每个事件。

通常,使用发现 API 可以有条件地处理您的应用程序处理的事件以及处理方式。应用程序熟悉运行时环境后,在用户与应用程序交互时,它可以调用适当的处理函数或确定正确的事件对象。或者,应用程序可以指示在当前环境中无法处理特定输入,并为用户提供替代方法或信息。有关详细信息,请参阅 Touch 事件处理 Gesture 事件处理

阶段

对于触摸和多点触控应用程序,触摸事件对象包含用于跟踪用户交互阶段的属性。编写 ActionScript 以处理阶段(如用户输入的开始、更新或结束阶段),从而为用户提供反馈。响应事件阶段,以便可视对象随用户触摸和移动在屏幕上的触摸点而改变。或者,使用此阶段跟踪特定的手势属性,如手势演变。

对于触摸点事件,跟踪用户在特定的交互式对象上停留的时间。应用程序可分别跟踪多个同步触摸点阶段,并相应地对其进行处理。

对于手势,当动作发生时解释有关动作转换的特定信息。当接触点(或多个接触点)沿屏幕移动时,跟踪其坐标。