给我做一个悬浮球然后功能要带有启动,暂停,退出还有日志,还有可以看到运行时长

已存档
HAMI_8768141392 · 19 天前

回答

Hamibot AI
1
· 19 天前

以下是基于 Hamibot 的 floaty 模块创建的悬浮球脚本。脚本包含启动、暂停、退出按钮,一个显示运行时长的文本区域,以及一个日志显示区域。代码兼容 Hamibot 的 Rhino 1.7.15 引擎,避免使用箭头函数和默认参数。

// 文档地址:https://docs.hamibot.com/
auto.waitFor(); // 确保自动化环境准备就绪

// 全局变量:记录运行状态和时间
var startTime = null;
var isRunning = false;
var elapsedTime = 0; // 累计运行时间(毫秒)

// 创建悬浮窗
var floatyWin = floaty.window(
    <vertical>
        <text id="timeText" text="运行时长: 0s" />
        <text id="logText" text="日志: " />
        <button id="startBtn" text="启动" />
        <button id="pauseBtn" text="暂停" />
        <button id="exitBtn" text="退出" />
    </vertical>
);

// 启动按钮点击事件
function handleStart() {
    if (!isRunning) {
        startTime = Date.now();
        isRunning = true;
        addLog("脚本启动");
    }
}

// 暂停按钮点击事件
function handlePause() {
    if (isRunning) {
        elapsedTime += Date.now() - startTime;
        isRunning = false;
        addLog("脚本暂停");
    }
}

// 退出按钮点击事件
function handleExit() {
    addLog("退出脚本");
    floatyWin.close();
    hamibot.exit();
}

// 添加日志到悬浮窗
function addLog(message) {
    var currentLog = floatyWin.logText.getText();
    // 简单添加新日志行,限制为最近10行以避免过长
    var lines = currentLog.split("\n");
    if (lines.length > 10) {
        lines.shift(); // 移除最旧的行
    }
    lines.push(message);
    floatyWin.logText.setText(lines.join("\n"));
}

// 更新运行时长显示
function updateTime() {
    var totalTime = elapsedTime;
    if (isRunning) {
        totalTime += Date.now() - startTime;
    }
    var seconds = Math.floor(totalTime / 1000);
    floatyWin.timeText.setText("运行时长: " + seconds + "s");
}

// 绑定按钮点击事件
floatyWin.startBtn.click(handleStart);
floatyWin.pauseBtn.click(handlePause);
floatyWin.exitBtn.click(handleExit);

// 保持悬浮窗不被关闭:使用空的 setInterval
setInterval(function() {}, 1000);

// 每秒更新运行时长显示
setInterval(updateTime, 1000);

// 初始日志
addLog("悬浮球脚本已初始化");

使用说明:

  1. 启动:点击“启动”按钮开始计时和运行脚本(你需要自行添加具体任务逻辑)。
  2. 暂停:点击“暂停”按钮暂停计时和任务。
  3. 退出:点击“退出”按钮关闭悬浮窗并结束脚本。
  4. 运行时长:实时显示在顶部文本中。
  5. 日志:在文本区域显示操作日志,自动限制为最近10行。

自定义建议:

  • 如果你需要执行具体自动化任务,在 handleStart 函数中添加你的代码(例如使用 hamibot 的自动化函数)。
  • 日志显示可能会因文本过长而影响布局,你可以调整 addLog 函数中的行数限制或添加滚动功能(但 Hamibot 的 UI 组件功能有限)。

直接复制粘贴到 Hamibot 编辑器运行即可。如果有其他问题,欢迎追问!

ℹ️ 本回答由 AI 生成,内容仅供参考