作者:科采通 标签:Magic Leap、MagicScript、空间UI、交互设计、JavaScript
在为 Magic Leap 开发 MR 应用时,构建直观易用的 UI 元素至关重要。MagicScript 是 Magic Leap 提供的前端 JavaScript 框架,它专为 Lumin OS 设计,允许开发者使用类似 Web 的语言开发 3D UI 应用。
本文将以一个下拉选择(UiDropDownList
)组件为例,展示如何用 MagicScript 快速构建一个交互式的 UI 界面,包括嵌套子项的使用与事件响应。
建议使用以下环境配置进行开发测试:
创建一个 MagicScript 应用项目:
bash复制编辑magic-script init my-drop-down org.magicscript.dd "Drop Down List"
cd my-drop-down
我们将构建一个 UI 场景,包含文本显示与多层级下拉列表。
js复制编辑import { LandscapeApp, ui } from 'lumin';
const {
UiText, UiLinearLayout, UiDropDownList, DropDownListItem,
EclipseLabelType, Alignment, HorizontalTextAlignment
} = ui;
export class App extends LandscapeApp {
onAppStart () {
const prism = this.requestNewPrism([1.5, 1.0, 0.5]);
const layout = UiLinearLayout.Create(prism);
layout.setAlignment(Alignment.CENTER_CENTER);
// 文本标签
const text = UiText.CreateEclipseLabel(prism, "", EclipseLabelType.kT7);
text.setAlignment(Alignment.CENTER_CENTER);
text.setTextAlignment(HorizontalTextAlignment.kCenter);
layout.addItem(text, [0.005, 0.005, 0.005, 0.005]);
// 创建下拉菜单
const list = UiDropDownList.Create(prism, "Company");
list.onSelectionChangedSub(function(event) {
const items = list.getSelectedItems();
if (items.length > 0) {
text.setText(items[0].label);
}
});
// 下拉选项:Magic Leap
const sub_ml_item_1 = new DropDownListItem("Rony Abovitz", [], 10);
const sub_ml_item_2 = new DropDownListItem("Rio Caraeff", [], 11);
const item_ml = new DropDownListItem("Magic Leap", [sub_ml_item_1, sub_ml_item_2], 1);
// 下拉选项:Weta Digital
const sub_weta_item_1 = new DropDownListItem("Jamie Selkirk", [], 20);
const sub_weta_item_2 = new DropDownListItem("Peter Jackson", [], 21);
const sub_weta_item_3 = new DropDownListItem("Joe Letteri", [], 22);
const item_weta = new DropDownListItem("Weta Digital", [sub_weta_item_1, sub_weta_item_2, sub_weta_item_3], 2);
// 其他选项
const item_none = new DropDownListItem("None", [], 0);
list.setList([item_ml, item_weta, item_none]);
list.setAlignment(Alignment.CENTER_CENTER);
layout.addItem(list, [0.005, 0.005, 0.005, 0.005]);
prism.getRootNode().addChild(layout);
}
}
bash复制编辑magic-script build -i
bash复制编辑magic-script run --port=10000
确保 Magic Leap 与开发设备处于同一网络,并启用远程调试模式。
你可以在这个基础上:
VoiceIntent
);
MLAPI
共享状态同步。
通过本示例你可以掌握:
✅ 使用 MagicScript 初始化与构建项目
✅ 利用 UiDropDownList
实现多层级选择
✅ 响应用户选择并更新 UI 反馈
对于 MR UI 开发者而言,MagicScript 提供了一种轻量、可定制的空间 UI 方案,特别适合快速原型和产品验证场景。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。