回答
Hamibot循环执行与流程控制指南
循环执行代码
Hamibot提供了几种循环执行代码的方法:
1. 使用engines.execScript的循环参数
// 文档地址 https://docs.hamibot.com/
// 每隔3秒运行一次脚本,循环10次
engines.execScript('循环示例', "toast('正在执行循环')", {
loopTimes: 10, // 循环次数,0表示无限循环
interval: 3000 // 间隔时间(毫秒)
});
2. 使用engines.execScriptFile执行脚本文件
// 文档地址 https://docs.hamibot.com/
// 循环执行脚本文件
var e = engines.execScriptFile("./myScript.js", {
loopTimes: 5, // 循环5次
interval: 2000 // 间隔2秒
});
3. 在脚本内部使用常规循环
// 文档地址 https://docs.hamibot.com/
// 常规for循环
for (var i = 0; i < 5; i++) {
toast("循环第" + (i+1) + "次");
sleep(1000); // 暂停1秒
}
// while循环
var count = 0;
while (count < 3) {
toast("while循环: " + count);
count++;
sleep(500);
}
流程控制
1. 基本条件判断
// 文档地址 https://docs.hamibot.com/
if (条件) {
// 条件为真时执行
} else {
// 条件为假时执行
}
// switch语句
var action = "click";
switch(action) {
case "click":
toast("执行点击操作");
break;
case "swipe":
toast("执行滑动操作");
break;
default:
toast("未知操作");
}
2. 多线程控制
// 文档地址 https://docs.hamibot.com/
// 创建可处置线程用于获取结果
var result = threads.disposable();
// 启动子线程
threads.start(function() {
// 执行耗时操作
var s = 0;
for (var i = 1; i <= 100; i++) {
s += i;
}
// 通知主线程获取结果
result.setAndNotify(s);
});
// 主线程等待结果
toast("计算结果: " + result.blockedGet());
3. 脚本间通信控制
// 文档地址 https://docs.hamibot.com/
// 启动另一个脚本
var e = engines.execScriptFile("./receiver.js");
sleep(2000); // 等待脚本启动
// 向该脚本发送事件控制流程
e.getEngine().emit("command", "start");
注意:Hamibot使用的JavaScript引擎是Rhino 1.7.15,不支持ES6+的某些特性(如箭头函数、默认参数等),编写代码时请确保兼容性。
ℹ️ 本回答由 AI 生成,内容仅供参考