HumanBreak/docs/api/motajs-system-ui/UIInstance.md

2.7 KiB
Raw Blame History

UIInstance API 文档

本文档由 DeepSeek R1 模型生成并微调。

实现 IUIInstance 接口

类描述

UIInstance 表示通过 GameUI 模板创建的具体 UI 实例,用于管理单个 UI 实例的状态和数据绑定。实现了 IUIInstance 接口。


属性说明

属性名 类型 描述
key number 只读,实例的唯一标识(用于 Vue 的 key 属性)
ui IGameUI<C> 只读,关联的 UI 配置实例(即创建该实例的 GameUI 模板)
vBind UIProps<C> 只读,传递给 UI 组件的响应式 Props 对象
hidden boolean 当前实例是否处于隐藏状态
alwaysShow boolean 是否强制保持显示(不受显示模式影响)

构造方法

function constructor(
    ui: IGameUI<C>,
    vBind: UIProps<C>,
    alwaysShow: boolean = false
): UIInstance;
  • 参数
    • ui: 关联的 GameUI 配置实例
    • vBind: 初始化的组件 Props 对象
    • alwaysShow: 是否强制保持显示(默认 false

注意事项:一般不需要手动创建 UIInstance 实例,请使用 UIController.open 打开 UI 并创建实例。


方法说明

setVBind

function setVBind(data: Partial<Props<C>>, merge?: boolean): void;

更新组件的响应式 Props。

  • 参数
    • data: 需要更新的数据(部分 Props
    • merge: 是否与现有数据合并(默认 true),若为 false 则完全覆盖

示例

// 合并更新音量值
instance.setVBind({ volume: 60 });

// 覆盖所有 Props
instance.setVBind({ theme: 'dark' }, false);

hide

function hide(): void;

控制实例的显示状态(直接操作 hidden 属性)。

示例

instance.hide(); // 隐藏 UI
setTimeout(() => instance.show(), 1000); // 1 秒后显示

show

function show(): void;

控制实例的显示状态(直接操作 hidden 属性)。

示例

instance.show(); // 隐藏 UI
setTimeout(() => instance.show(), 1000); // 1 秒后显示

总使用示例

import { myController, MyUI } from './myUI';

const myIns = myController.open(MyUI, { title: '警告' });

// 动态更新 props
myIns.setVBind({ title: '错误' });

// 设置显示状态
myIns.show();