转换、循环与控制¶
宏时间线既能保留桌面输入,也能保存 Android 触摸。组件映射负责解释两者之间的关系;跳转、退出和条件循环则决定时间线何时继续、重定向或结束。
生成副本或移动并转换¶
跨平台转换有两种交互:
| 操作 | 结果 |
|---|---|
| 片段右键“生成 ADB 片段副本”或“生成桌面动作片段副本” | 保留源片段,在目标区段新增副本 |
| 轨道右键“生成 ADB 轨道副本”或“生成桌面动作轨道副本” | 保留整条源轨,在新目标轨生成结果 |
| 把 PC 片段拖进 ADB 轨,或把 ADB 片段拖进 PC 轨 | 成功后用转换结果替换源片段 |
多选片段和嵌套片段可以一起转换。一次源动作如果解析成多个独立映射,会在同一时刻生成多个兄弟片段,并分配到互不冲突的目标轨;需要时会自动增加轨道。
转换是原子操作:要么整次成功并写入一条撤销记录,要么失败且不改变时间线。
PC 转为 ADB¶
PC 按键会按当前组件映射目录解析:
- 优先使用完整组合映射。
- 没有完整组合时,使用互不重叠的兼容子集。
- 再使用单键映射。
- 未映射键没有 Android 坐标,会被跳过并报告原因。
命中按键映射或轮盘时,转换结果使用组件坐标;命中 ADB 拖拽时,使用组件定义的固定路径与时长。一个双击 PC 片段只对相应映射生成一次触摸动作;ADB 片段本身没有“双击”属性,需要连续两次触摸时可手动复制和排列。
桌面输入片段有自己的转换方式:瞬时或逐字桌面输入会转换为 ADB 瞬时输入,而不是按键映射动作。
鼠标左键可利用共享鼠标路径转换为 ADB DOWN、MOVE 和 UP。共享路径必须连续覆盖动作需要的时间区间;如果开始或中间缺少坐标,编辑器不会凭空补出一条路径。
没有点击/长按阈值
ADB 输出统一保存为 DOWN、零个或多个 MOVE、UP。原地按压只有 DOWN 和 UP,拖动才包含 MOVE;持续时间来自片段或组件,不由“单击”“长按”名称决定。
ADB 转为 PC¶
ADB 触摸会优先利用明确且无冲突的组件关联恢复 PC 按键:
- 片段来自哪个轮盘、按键映射或拖拽点,会作为首选依据。
- 有明确但已经失效或冲突的绑定时,转换会跳过该项,不会猜一个按键。
- 没有组件关系的手工 ADB 触摸,会回退为桌面鼠标左键路径。
组件关系因此不仅影响实时位置,也让反向转换更可靠。转换后可在片段属性中继续修改,不会与源片段保持实时链接。
并发触点提示¶
转换可能把一个组合拆成多个同时触摸。已有 3 条或更多 ADB 轨道时,PC→ADB 转换会提示确认目标设备是否支持所需并发;这不是禁止继续的硬限制。
执行层当前最多管理 5 个触点。真正限制的是同一时刻的触点数量,而不是时间线上总共有多少条 ADB 轨道。
嵌套片段¶
嵌套片段用于把一组动作封装为子时间线:
- 在当前层级选中至少两个片段。
- 右键选择“嵌套片段”。
- 双击生成的紫色包装片段进入。
- 使用上方紫色“嵌套 N”返回条逐级回到父层。
包装片段覆盖所选内容从最早起点到最晚终点的完整时间范围。它会尽量落在原轨道;如果该范围会覆盖同轨未选片段,创建会被拒绝,需先整理时间线。
嵌套片段的时长由子内容决定,不能像普通片段一样手工裁切。嵌套深度最多 32 层,循环引用无效。
如果选区中存在跳转或识图失败跳转,目标必须仍在选区时间范围内。创建嵌套时目标会换算成子时间线局部时间;越界会阻止嵌套。
启动 Debug 时编辑器会自动回到根时间线,因为运行反馈使用全局时间和完整嵌套路径。
跳转片段¶
PC 动作轨和 ADB 轨都能添加跳转片段。它在片段起点立即生效;片段显示长度只是可视化宽度,不会等到片段结束才跳转。
“跳转至”可设为 0–600 秒:
- 向前跳可跳过一段动作。
- 向后跳可形成时间线循环。
- 跳转发生时,运行层会先释放当前键盘与触点状态,再定位新时间。
- 如果目标时刻落在一个正在进行的拖拽中,会重建继续执行所需的按下状态。
应避免没有出口的后跳循环。需要按画面条件停止时,优先使用条件循环组件。
退出片段¶
退出片段也在片段起点立即结束当前宏,不等待显示长度结束。属性“完成输出”决定宏对外报告:
true:业务成功。false:业务失败。
两者都会真正结束宏,并阻止时间线继续循环。同一时间若退出与跳转同时触发,退出优先;退出片段也高于条件循环和普通“继续下一轮”请求。
因此,把退出片段放在循环中的任意位置,都表示立即结束整个宏,而不是只结束当前一轮。
条件循环组件¶
在预览区右键添加“条件循环”。一个宏最多有一个;再次添加会选中现有组件。它是一个可移动、可缩放的矩形检测区域,不能充当片段坐标锚点。
是否循环¶
“是否循环”默认开启:
- 开启:一轮时间线自然执行完后从头继续。
- 关闭:只执行一遍。
当前没有固定循环次数选项。循环可由检测条件、退出片段或任务取消结束。
检测模式¶
| 模式 | 主要设置 | 默认值 |
|---|---|---|
| 图像匹配 | 宏内图像变量、匹配阈值、模板缩放 | 阈值 0.82;禁止缩放 |
| ONNX | 模型、目标类别、置信度 | 置信度 0.65;类别留空表示任意 |
| OCR | 目标文字 | 留空表示区域内任意非空文字 |
允许模板缩放目前只用于 ADB 目标。检测间隔默认 0.5 秒;检测串行执行,识别耗时包含在间隔内,不会堆叠并发请求。
延迟开始检测¶
“延迟开始检测”默认开启,默认 10 秒,最大 3600 秒。它使用宏启动后的真实经过时间:
- 时间线循环或跳转不会重置计时。
- 延迟期间宏动作照常执行。
- 关闭延迟或设为 0 时,首次检测发生在时间线 0 秒动作之前;如果条件已经满足,可以不发送任何宏动作就结束。
这适合“先运行一段时间,再开始观察是否到达目标画面”的流程。
反转条件¶
“反转条件”默认关闭:
- 关闭:命中条件即停止。
- 开启:命中继续,未命中停止。
退出前完成本轮¶
“退出前完成本轮”默认关闭:
- 关闭:停止条件满足时立即结束。
- 开启:不再开始下一轮,但让当前轮自然完成后结束。
退出片段和任务取消始终立即生效,不受这个选项延后。
选择正确的控制方式¶
| 需求 | 建议 |
|---|---|
| 同一动作需要 PC 和 ADB 两套版本 | 生成跨平台副本 |
| 希望把现有动作整体迁移到另一平台 | 跨区段拖动并转换 |
| 把一组动作折叠成可复用结构 | 嵌套片段 |
| 无条件跳过或重复某段时间 | 跳转片段 |
| 立刻结束宏并报告成功/失败 | 退出片段 |
| 按画面或识别结果决定何时停止循环 | 条件循环组件 |
继续阅读¶
- 建立可靠组件映射:组件、映射与绑定
- 查看片段和轨道基础规则:轨道与片段
- 导出可交换的宏包:导入与导出 .gmacro