触摸

366次阅读
没有评论

共计 3285 个字符,预计需要花费 9 分钟才能阅读完成。

TOUCH 对象

Touch 对象用于检测来自触摸屏设备(如手机和平板电脑)的输入,以及具有触摸屏的台式机或笔记本电脑。

如果设备支持,Touch 对象还提供加速度计(运动)和倾角仪(倾斜 / 罗盘方向)的输入。但是,用户必须首先授权才能使用这些功能;有关详细信息,请参阅请求权限操作。请注意,一些低端设备缺乏测量这些值所需的硬件。

最好在可能的情况下支持触摸输入。在 Web 上,许多用户仅通过触摸输入浏览移动设备,没有鼠标或键盘。如果您的项目不支持触摸控制,许多用户将无法玩您的项目。有关如何实现屏幕触摸控制的指南,请参阅触摸控制教程。

要查找使用触摸输入的一些示例,请在示例浏览器中搜索“触摸”。

脚本编写

使用 JavaScript 或 TypeScript 编码时,可以通过 ITouchObjectType 脚本接口访问此对象的功能。

多点触控

Touch 对象支持多点触控。这对于 On touched object 和 Is touching object 条件非常有用,例如可以检测是否正在使用多个屏幕上的触摸控件。这对许多项目来说已经足够了。

对于更高级的使用,可以使用 TouchID、XForID 和 YForID 表达式来跟踪不同目的的各个触摸。每个触摸都有一个唯一的 ID(这是一个任意数字),并可以在像 On any touch start 这样的事件中使用 TouchID 表达式访问。然后可以将触摸 ID 存储在变量中,并使用 XForID 和 YForID 表达式进行跟踪。最后,在 On any touch end 中比较 TouchID 表明该触摸已被释放。

触摸属性

  • 使用鼠标输入:如果启用,鼠标点击将模拟触摸事件。单击并拖动鼠标左键将模拟沿着鼠标拖动的触摸,而单击将模拟轻触。这对于测试计算机上的触摸事件是否正常工作非常有用,尽管它不支持触摸输入。然而,只能使用鼠标模拟单点触摸,而且鼠标比触摸精确得多,因此最好还是在真正的触摸屏设备上进行测试。

触摸条件

  • On double-tap:当快速连续在同一位置执行两次轻触手势时触发。On double-tap object 变体在对对象执行此手势时触发。
  • On hold:当触摸被按住(按下且未移动)一段短时间时触发。On hold over object 变体在对对象执行此手势时触发。
  • On tap:当执行轻触手势时触发,定义为快速连续在同一位置进行触摸和释放。On tap object 变体在对对象执行此手势时触发。
  • Compare acceleration:需要运动权限。比较当前设备的加速度,以 m/s^2(米每秒平方)为单位。可以包括或排除重力的影响,但请注意,有些设备只支持包括重力影响的加速度计值,并将始终返回 0 作为排除重力的加速度。
  • Compare orientation:需要方向权限。比较设备的当前方向,如果设备支持倾角仪。Alpha 是罗盘方向角度。Beta 是设备从前到后的倾斜度(即如果你在面前拿着它向前倾斜)。正值表示前倾,负值表示后倾。Gamma 是设备从左到右的倾斜度(即如果你在面前拿着它扭曲)。正值表示向右倾斜,负值表示向左倾斜。
  • On permission granted:在 Request permission 操作之后根据权限请求的结果触发。即使在不向用户显示实际权限提示的情况下,这些也可以被触发,例如如果已经显示了类似的提示。
  • Has Nth touch:如果给定的触摸编号当前与屏幕接触则为真。例如,如果有至少两个触摸当前与屏幕接触,则 Has touch 1 将为真(考虑到它是一个零基索引)。
  • Is in touch:如果任何触摸当前与屏幕接触则为真。
  • Is touching object:如果任何触摸当前触摸给定对象则为真。
  • On any touch end:当任何触摸从屏幕上释放时触发。
  • On any touch start:当屏幕上有任何触摸时触发。
  • On Nth touch end:当给定的触摸编号从屏幕上释放时触发。例如,On touch 1 end 将在释放第二个同时触摸时触发(考虑到它是一个零基索引)。
  • On Nth touch start:当给定的触摸编号触摸屏幕时触发。例如,On touch 1 start 将在第二个同时触摸时触发(考虑到它是一个零基索引)。
  • On touched object:当给定对象被触摸时触发。Type 参数默认为 start,这意味着它将在触摸开始在给定对象内时触发。将 Type 参数更改为 end 将意味着它仅在触摸在给定对象内释放时触发。

触摸动作

  • Request permission:请求访问设备加速度计(运动)或倾角仪(方向)的权限。在获得用户授权之前,加速度和方向表达式可能不会返回任何值。这必须用于用户输入事件中,通常在 On touch end(注意 On touch start 可能不起作用)。有些系统将这两个请求合并到一个请求中,所以如果你只请求一个权限,设备将授予两者的访问权限。根据用户是否批准权限提示,On permission granted 或 On permission denied 将被触发。这些也可以在没有提示的情况下自动触发,如果用户最近在同一浏览器会话中批准或拒绝了类似的权限提示。

    触摸表达式

加速度

  • AccelerationX:获取设备在 X 轴上的加速度,不包括重力影响。
  • AccelerationY:获取设备在 Y 轴上的加速度,不包括重力影响。
  • AccelerationZ:获取设备在 Z 轴上的加速度,不包括重力影响。
  • AccelerationXWithG:获取设备在 X 轴上的加速度,包括重力影响。
  • AccelerationYWithG:获取设备在 Y 轴上的加速度,包括重力影响。
  • AccelerationZWithG:获取设备在 Z 轴上的加速度,包括重力影响。

指南针方向

  • CompassHeading:获取设备的指南针方向。
  • Alpha:获取设备的指南针方向,以度为单位。
  • Beta:获取设备的前后倾斜角度,以度为单位。
  • Gamma:获取设备的左右倾斜角度,以度为单位。

绝对位置

  • AbsoluteX:获取触摸点在画布上的绝对 X 坐标。
  • AbsoluteY:获取触摸点在画布上的绝对 Y 坐标。
  • AbsoluteXAt(index):获取指定索引的触摸点的绝对 X 坐标。
  • AbsoluteYAt(index):获取指定索引的触摸点的绝对 Y 坐标。
  • AbsoluteXForID(id):获取具有特定 ID 的触摸点的绝对 X 坐标。
  • AbsoluteYForID(id):获取具有特定 ID 的触摸点的绝对 Y 坐标。

相对位置

  • X:获取触摸点在布局坐标系中的 X 坐标。
  • Y:获取触摸点在布局坐标系中的 Y 坐标。
  • XAt(index):获取指定索引的触摸点的 X 坐标。
  • YAt(index):获取指定索引的触摸点的 Y 坐标。
  • XForID(id):获取具有特定 ID 的触摸点的 X 坐标。
  • YForID(id):获取具有特定 ID 的触摸点的 Y 坐标。

层位置

  • X(layer):获取触摸点在指定图层中的 X 坐标。
  • Y(layer):获取触摸点在指定图层中的 Y 坐标。
  • XAt(index, layer):获取指定图层上指定索引的触摸点的 X 坐标。
  • YAt(index, layer):获取指定图层上指定索引的触摸点的 Y 坐标。
  • XForID(id, layer):获取指定图层上具有特定 ID 的触摸点的 X 坐标。
  • YForID(id, layer):获取指定图层上具有特定 ID 的触摸点的 Y 坐标。

触摸数量

  • TouchCount:获取当前与设备屏幕接触的触摸点数量。

触摸 ID 和索引

  • TouchID:获取触摸事件中触摸点的唯一 ID。
  • TouchIndex:获取触摸事件中触摸点的索引。

触摸运动角度、宽度、高度、压力和速度

  • AngleAt(index):获取指定索引的触摸点的运动角度。
  • AngleForID(id):获取具有特定 ID 的触摸点的运动角度。
  • WidthForID(id):获取具有特定 ID 的触摸点的宽度。
  • HeightForID(id):获取具有特定 ID 的触摸点的高度。
  • PressureForID(id):获取具有特定 ID 的触摸点的压力值。
  • SpeedAt(index):获取指定索引的触摸点的速度。
  • SpeedForID(id):获取具有特定 ID 的触摸点的速度。
正文完
 0
评论(没有评论)