回答
在 Hamibot 中,开启悬浮窗需要使用 floaty 模块。该模块提供了两种主要方法来创建悬浮窗,分别是 floaty.window() 和 floaty.rawWindow()。
1. 主要方法
-
floaty.window(layout)
创建带有默认控制按钮的悬浮窗(包含关闭、调整大小、调整位置按键)。适合需要用户交互或调试的场景。 -
floaty.rawWindow(layout)
创建原始悬浮窗,不包含额外控件。支持完全全屏覆盖(包括状态栏),适合制作护眼模式或自定义 UI 场景。
2. 代码示例
以下示例演示如何创建一个基础悬浮窗,并在 5 秒后自动关闭。代码已适配 Rhino 1.7.15 引擎,避免使用箭头函数。
// 文档地址 https://docs.hamibot.com/
// 创建基础悬浮窗
var w = floaty.window(
<frame gravity="center" bg="#FF0000">
<text id="text">悬浮文字</text>
</frame>
);
// 设置位置(可选)
w.setPosition(500, 500);
// 5 秒后关闭悬浮窗
setTimeout(function() {
w.close();
}, 5000);
3. 修改悬浮窗内容
脚本运行的主线程不是 UI 线程,所有对控件的修改操作必须在 UI 线程中执行,需要使用 ui.run() 包裹。
// 文档地址 https://docs.hamibot.com/
var w = floaty.window(
<frame gravity="center" bg="#FF0000">
<text id="text">初始文本</text>
</frame>
);
// 在 UI 线程修改文本内容
ui.run(function() {
w.text.setText('修改后的文本');
});
4. 注意事项
- 权限要求:运行悬浮窗脚本前,请确保设备已授予 Hamibot“显示悬浮窗”或“出现在其他应用上层”的权限。
- 资源释放:使用完毕后建议调用
close()方法关闭悬浮窗,或使用floaty.closeAll()关闭所有悬浮窗,避免内存泄漏。 - 布局参数:
layout参数支持 XML 字符串或 View 对象,具体布局语法参考 ui 模块说明。 - 调整控制:对于
floaty.window()创建的窗口,可通过setAdjustEnabled(true/false)显示或隐藏调整大小和位置的标示。
ℹ️ 本回答由 AI 生成,内容仅供参考