CreateObject
[同步方式]创建组件
注意: !!!!!!!!!!!!!!!!!!你要保证目标包已经加载了
CommonPackage里的包是肯定被加载的
FGUI:CreateObject(parent, packageName, objName, bindClass)
参数 必选 类型 说明
parent 是 table 父级容器/组件
packageName 是 string 目标包所在包名
objName 是 string 对象/组件名
bindClass 是 boolean
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-02-26 02:09:16 |
👁️ 阅读: 1
`CreateObject` 和 `CreateObjectAsync` 都是用于从 FGUI 包中创建组件对象的函数,主要区别在于创建方式(同步/异步)和参数。
**1. CreateObject (同步方式)**
* **功能**:同步创建组件,调用后会立即返回创建好的组件对象。
* **关键参数**:
* `parent`:**必须**提供父级容器或组件对象(`table`类型),用于放置新创建的组件。
* `bindClass`:**必须**为 `boolean` 类型。
* 当设置为 `false` 时,函数返回一个普通的显示对象。
* 当设置为 `true` 时,返回的对象会绑定为对应的类对象,并且会执行该类的 `Create` 和 `Destroy` 生命周期接口。
**2. CreateObjectAsync (异步方式)**
* **功能**:异步创建组件,创建过程不会阻塞当前逻辑,创建完成后通过回调函数通知。
* **关键参数**:
* `parent`:**不需要**此参数。
* `callback`:**必须**提供一个回调函数(`function`类型),当组件创建完成后,会调用此回调函数并传入创建好的组件对象。
* `bindClass`:**必须**为 `boolean` 类型,其含义与 `CreateObject` 中的 `bindClass` 参数完全相同。
* `false`:回调函数收到的是一个普通的显示对象。
* `true`:回调函数收到的是绑定了对应类、具有生命周期的对象。
**总结区别**:
* **同步 vs 异步**:`CreateObject` 是同步调用,直接返回结果;`CreateObjectAsync` 是异步调用,通过回调函数返回结果。
* **参数 `parent`**:同步创建**必须**指定父容器;异步创建**不需要**此参数。
* **参数 `bindClass`**:在两个函数中**含义一致**,都用于决定返回的对象是普通显示对象还是绑定了特定类、具有生命周期的对象。
← 返回问答库