mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-19 17:16:08 +08:00
2.7 KiB
2.7 KiB
UIInstance API 文档
本文档由 DeepSeek R1
模型生成并微调。
graph LR
UIInstance --> IUIInstance
实现 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();