回答
在 Hamibot 的 floaty 悬浮窗中修改按钮透明度,主要有两种方式:在布局 XML 中静态设置,或在脚本运行过程中动态修改。透明度取值范围为 0.0(完全透明)到 1.0(完全不透明)。
1. 布局中静态设置
你可以在创建悬浮窗时,直接在按钮的 XML 标签中使用 alpha 属性,或通过 ARGB 格式的背景色控制透明度:
<!-- 方式一:使用 alpha 属性 -->
<button id="myBtn" text="按钮" alpha="0.5" />
<!-- 方式二:使用带透明度的背景色(前两位 80 为十六进制,约 50% 透明度) -->
<button id="myBtn2" text="按钮" bg="#80FF0000" />
2. 脚本中动态修改
若需要在任务执行过程中调整透明度,必须通过 ui.run() 在 UI 线程中操作。你可以直接调用控件的 setAlpha() 方法:
// 文档地址 https://docs.hamibot.com/
var floatyWin = floaty.window(
<vertical>
<button id="myBtn" text="点击变透明" bg="#607D8B" />
</vertical>
);
floatyWin.myBtn.click(function () {
ui.run(function () {
// 动态修改为 30% 不透明度
floatyWin.myBtn.setAlpha(0.3);
});
});
关键注意事项
- UI 线程安全:所有对悬浮窗控件属性的修改(透明度、文本、可见性、位置等)都必须包裹在
ui.run()中,否则会触发跨线程操作异常。 - 引擎兼容性:Hamibot 底层使用 Rhino 1.7.15 JavaScript 引擎。编写事件回调时请使用标准
function语法,避免使用箭头函数() => {}或函数默认参数,以防语法报错。 - 触摸事件穿透:当按钮或整个悬浮窗透明度调低后,若你希望点击区域能穿透到下层应用,可配合
floatyWin.setTouchable(false)使用。注意该设置作用于整个悬浮窗。
按照上述方法即可准确控制 floaty 中按钮的透明度。如果你在悬浮窗布局或脚本执行流程中遇到其他问题,可以直接告诉我具体场景,我会为你提供对应的解决方案。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实