回答
你可以在配置模式中通过设置参数来控制按钮的状态。下面是一个示例代码,展示了如何在 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 生成,内容仅供参考