回答
实现点击悬浮按钮后弹出一个校准设置框的功能,可以分为以下几步:
- 创建悬浮窗并添加按钮;
- 监听按钮的点击事件;
- 点击按钮后弹出一个新的窗口用于校准设置。
以下是完整的代码示例(兼容 Rhino 1.7.15):
// 文档地址 https://docs.hamibot.com/
// 创建悬浮窗主按钮
var floatyWin = floaty.window(
<vertical padding="10">
<button id="calibrateBtn" text="校准" w="60" h="60" bg="#FF4081" textColor="#FFFFFF" textSize="18sp" />
</vertical>
);
// 设置悬浮窗位置为屏幕中间
floatyWin.setPosition(device.width / 2 - 30, device.height / 2 - 30);
// 校准按钮点击事件
floatyWin.calibrateBtn.click(function () {
// 创建校准设置窗口
var calibrateWindow = floaty.window(
<vertical padding="16" bg="#FFFFFF" gravity="center">
<text text="校准设置" textSize="20sp" textColor="#000000" />
<input id="xInput" hint="输入X坐标" marginTop="10" />
<input id="yInput" hint="输入Y坐标" marginTop="10" />
<horizontal gravity="center" marginTop="15">
<button id="confirmBtn" text="确认" w="80" h="40" bg="#03A9F4" textColor="#FFFFFF" />
<button id="cancelBtn" text="取消" w="80" h="40" bg="#E0E0E0" textColor="#000000" marginLeft="10" />
</horizontal>
</vertical>
);
// 设置校准窗口的位置为屏幕中央
calibrateWindow.setSize(300, -2);
calibrateWindow.setPosition(device.width / 2 - 150, device.height / 2 - 150);
// 确认按钮点击事件
calibrateWindow.confirmBtn.click(function () {
var x = calibrateWindow.xInput.text();
var y = calibrateWindow.yInput.text();
if (x && y) {
toast("校准到坐标: " + x + ", " + y);
// 这里可以加入你的校准逻辑,例如移动控件或调整位置
} else {
toast("请输入有效的坐标值");
}
// 关闭校准窗口
calibrateWindow.close();
});
// 取消按钮点击事件
calibrateWindow.cancelBtn.click(function () {
toast("校准取消");
calibrateWindow.close();
});
});
说明:
- 悬浮按钮:使用
floaty.window
创建了一个圆形按钮,并将其定位在屏幕中心。 - 点击事件:当点击“校准”按钮时,会弹出一个新的悬浮窗口作为校准设置界面。
- 输入框和按钮:设置两个输入框分别获取 X 和 Y 坐标,并通过“确认”按钮处理数据,“取消”按钮关闭窗口。
- 窗口布局:使用了
vertical
和horizontal
来构建 UI 布局,并设置了合适的边距和样式。
你可以在确认按钮的回调中加入实际的校准逻辑,比如将设备或控件移动到指定的坐标位置。
ℹ️ 本回答由 AI 生成,内容仅供参考