跳到主要内容

Swipe(滑动)

在屏幕上滑动或拖动——用于滚动、快滑或移动某物。

用途

执行一个方向手势。用来滚动列表、翻页、拖动一个物件。手势可以覆盖整屏,或限定在一个区域里只滚动某个面板。

它还有第二种、很不一样的模式:Bring a target to the centre(把目标带到中央)。你不说多远、哪个方向,而是指定一个 Find Image 节点,运行时滑动恰好足够远,把匹配结果带到屏幕中央——在任何屏幕尺寸上,流程里不存任何像素值。

何时用

  • 滚动列表、信息流或背包面板。
  • 在页面间翻动。
  • 把一个物件从一处拖到另一处。
  • 在缩放或读取之前把刚找到的东西居中。

何时不用

  • 点击或长按——用 Click
  • 缩放——用 Zoom
  • 微小移动。 两端几乎重合的手势会被判为太短而拒绝。

前提

方向/距离模式需要方向和距离。中央模式需要一个更早在同一路径上运行过并匹配Find Image 节点。

如何运行

设备尺寸不从流程读取——运行时测量活实例。这就是中央模式分辨率无关的原因。

设置

设置类型范围默认作用
Swipe mode选择directionDistancealignTargetdirectionDistance自己配置手势,或指定目标来居中
Target (from Find Image)节点引用中央模式:谁的匹配要居中
Swipe area选择screenregionscreen整屏,或限定在矩形内
Direction选择4 主 + 4 斜updownleftrightupLeftupRightdownLeftdownRight
Direction mode选择fixedrandomnoRepeatweightedfixed每次滑动如何选方向
Directions列表1–8 唯一随机模式的候选集
Direction weightsmap每个 1–1001weighted 的按方向权重
Distanceinteger1–10000 px屏幕模式行程
Distance min / maxinteger1–10000 px都设则每次取均匀随机
Distance percentnumber1–100 %区域模式行程,占区域的百分比
Region矩形屏幕百分比手势所在的矩形
Random offsetinteger0–1000 px0施于整个手势的抖动,保持在区域内
Durationinteger50–10000 ms必填。 手势持续多久
Delay min / maxinteger0–60000 ms手势后随机停顿
Drag and dropbooleanfalse把手势渲染为拾起-移动-落下-释放
Swipe region矩形屏幕百分比屏幕模式:按此矩形而非整屏计算滑动

3% 安全边界

两端被夹在距每条屏幕边缘 3% 处。这挡住手势触发模拟器自己的边缘手势——通知栏、返回手势、最近应用滑动。你用此节点触不到屏幕绝对边缘,这是刻意的。

Duration 是手势时间,不是停顿

Duration 是手指移动的时间。长读作拖动;短读作快滑。它不是滑动后的延时——那用延迟范围或 Wait 节点。

Drag and drop 需要数字化器

dragAndDrop 渲染一个保持的触点——按下、移动、稳定、释放。只能经原生输入传输注入;没有框架回退。

端口

端口走它的时机必接
Success手势已派发(或目标已在中央)
Failure解析出的行程太短,或点无法解析
Timeout输入命令未按时完成
Cancelled手势中途运行被停否——永不被走
Fatal断连,或参数无效(无方向、坏 duration)否——永不被走

基础示例

向上滚动一屏:

  • Swipe area:Screen
  • Direction:up
  • Distance:600 px
  • Duration:300 ms

实际示例——只滚动一个面板

背包列表在屏幕右半;滚动整屏会移动它后面的地图。

  • Swipe area:Region,画在背包面板上
  • Direction:down
  • Distance percent:70 %
  • Duration:400 ms

手势留在面板内,行程是面板高度的 70%——无论面板多大都对。

高级示例——居中目标再动作

让地图自动化分辨率无关的模式:

注意 Wait 然后重查。滑动有动画;紧接读屏读的是动画中途。动作 → 稳定 → 验证是手势驱动自动化最可靠的结构。

最佳实践

  • 用 Region 模式滚动特定列表。 这是滚动信息流和拖动整个世界之别。
  • 重复滚动时随机方向与距离。 noRepeat 避免相邻重复方向,远不那么机械。
  • 要紧的滑动后总要稳定并验证。
  • 优先中央模式而非自算像素距离。 它经得住任何分辨率变化。
  • 拖动用长 duration,快滑用短。 300 ms 快滑;800 ms 拖动。

性能笔记

  • 手势本身耗它的 Duration——400 ms 滑动至少阻塞会话 400 ms。
  • 中央模式在距离大时可能发几个较短手势,避免飞过目标。长行程预算不止一个 duration。
  • 随机延迟范围给每次滑动加真实墙钟时间。滚动 50 次的循环里,0–2000 ms 随机延迟累加达 100 秒。

内存笔记

  • Swipe 不持有帧。中央模式从上下文读一个已记录的 Find Image 结果;它不重新抓帧。

常见错误

错误后果修复
距离太小被判太短 → Failure加大距离,或区域百分比
滚错东西Screen 模式移动一切用 Region 模式覆盖目标面板
把 Duration 当停顿下一节点紧接手势就运行用延迟范围或 Wait
滑动后立刻读屏读到动画中途等待,再验证
中央模式无上游匹配没东西可居中 → Failure确保 Find Image 在路径上运行并匹配
指望滑到最边缘被夹在 3% 边界用放在所需处的区域

故障排查

每次滑动都走 Failure。 解析出的行程低于下限。区域模式里,小区域的小百分比可能只有几像素。

滑动滚了地图而非列表。 Swipe area 是 Screen。改 Region 并画在列表上。

中央模式什么都不做却走 Success。 目标已在中心容差内。正确行为,不是 bug。

Drag and drop 行为像普通滑动。 原生输入传输不可用。查流程的 nativeInputEnabled 开关和实例的 input mode。

FAQ

能在两个精确点间滑动吗? 旧流程可以(start/end),但是旧特性且依赖分辨率。优先方向+距离或区域模式。

随机方向保证多样吗? noRepeat 从袋子取,不相邻重复方向。random 均匀且可能重复。

距离按屏幕像素还是设备像素? 按活实例配置的输入像素。

能居中 Read Text 找到的东西吗? 不——中央模式专读 Find Image 匹配。

相关节点

  • Find Image——提供中央模式的目标
  • Click——点击而非拖动
  • Zoom——与滑动搭配框住目标
  • Wait——手势后的稳定步骤

相关页面