回答
你可以在配置模式中通过设置参数来控制按钮的状态。下面是一个示例代码,展示了如何在 Hamibot 中使用 JavaScript 逻辑控制“开始”和“暂停”按钮的有效性:
// 文档地址 https://docs.hamibot.com/
var handlers = {
running: false,
start: function () {
if (this.running) return;
this.running = true;
toast('任务开始');
// 执行你的开始逻辑
},
stop: function () {
if (!this.running) return;
this.running = false;
toast('任务停止');
// 停止任务逻辑
},
};
// 创建悬浮窗
var floatyWin = floaty.window(
<vertical padding="16">
<button id="startBtn" text="开始任务" bg="#4CAF50" />
<button id="stopBtn" text="停止任务" bg="#F44336" enabled="false" />
<button id="exitBtn" text="退出脚本" bg="#607D8B" />
</vertical>
);
floatyWin.startBtn.click(function () {
handlers.start();
ui.run(function () {
floatyWin.startBtn.enabled = false;
floatyWin.stopBtn.enabled = true;
});
});
floatyWin.stopBtn.click(function () {
handlers.stop();
ui.run(function () {
floatyWin.startBtn.enabled = true;
floatyWin.stopBtn.enabled = false;
});
});
floatyWin.exitBtn.click(function () {
handlers.stop();
floatyWin.close();
hamibot.exit();
});
setInterval(function () {}, 1000);
实现原理:
- 使用
handlers
对象维护一个状态变量running
,表示当前是否正在运行。 - 根据
running
的值决定是否执行启动或停止操作,并同步更新按钮的启用状态(enabled)。 - 在点击“开始任务”按钮时禁用它并启用“停止任务”按钮;反之亦然。
这样,你可以根据实际逻辑控制按钮的启停功能,达到有效的交互效果。
补充回答 1
你可以使用 Hamibot 提供的 UI 接口来创建一个带有“开始”和“暂停”按钮的界面,并为按钮绑定点击事件来执行对应的操作。
以下是一个完整的示例代码,实现了:
- 显示“开始”和“暂停”按钮
- 点击“开始”后执行任务逻辑
- 点击“暂停”后停止任务
- 根据状态切换按钮的启用/禁用状态
// 文档地址 https://docs.hamibot.com/
// 管理任务状态
var task = {
running: false,
start: function () {
if (this.running) return;
this.running = true;
toast("任务开始");
// 模拟执行任务(这里可以替换为你自己的逻辑)
this.intervalId = setInterval(function () {
// 这里可以放任务要做的操作
// log("任务运行中...");
}, 1000);
},
stop: function () {
if (!this.running) return;
this.running = false;
toast("任务暂停");
clearInterval(this.intervalId);
}
};
// 设置 UI 界面
ui.setContentView(
<vertical padding="16">
<button id="startBtn" text="开始" bg="#4CAF50" />
<button id="pauseBtn" text="暂停" bg="#FF9800" enabled="false" />
</vertical>
);
// 绑定按钮点击事件
ui.startBtn.click(function () {
task.start();
ui.startBtn.enabled = false;
ui.pauseBtn.enabled = true;
});
ui.pauseBtn.click(function () {
task.stop();
ui.startBtn.enabled = true;
ui.pauseBtn.enabled = false;
});
使用说明:
- 将上面的代码粘贴到 Hamibot 的脚本编辑器中。
- 运行脚本后会显示两个按钮:“开始”和“暂停”(初始状态下“暂停”是灰色不可点击)。
- 点击“开始”按钮后,任务启动,按钮变为不可点击,“暂停”按钮变为可点击。
- 点击“暂停”按钮后,任务停止,按钮状态再次互换。
注意事项:
- 实际任务逻辑可以替换
setInterval
中的内容。 - 如果你需要更复杂的 UI 或功能,请参考 Hamibot 的 UI 文档。
ℹ️ 本回答由 AI 生成,内容仅供参考