Skip to content

App

App 是 Rendx 引擎的顶层控制器,负责场景、渲染层、事件和插件的统一管理。

构造

typescript
import {App} from 'rendx-engine';

const app = new App({
  width: 800,
  height: 600,
  layers: ['background', 'foreground'],
  autoResize: false,
});

AppConfig

继承 RendererConfig,额外配置:

属性类型说明
widthnumber画布宽度(默认 800)
heightnumber画布高度(默认 600)
layersstring[]额外渲染层名称
autoResizeboolean监听容器尺寸变化自动 resize

生命周期

方法说明
mount(container)挂载到 DOM,创建 Canvas 并绑定事件
render()同步渲染一帧(仅重绘脏层)
requestRender()rAF 异步渲染循环(有动画时自动继续)
resize(w, h)调整画布尺寸,同步更新所有层
clear()取消 rAF,清空各层
dispose()销毁引擎释放所有资源

层管理

方法说明
addLayer(name, index)动态添加渲染层
getLayer(name)获取指定层

App 初始化时自动创建:

  • __event__ — 透明事件层(z=99999),不渲染,仅接收事件
  • default — 默认渲染层(z=0)

插件

方法说明
use(plugin)注册插件(同名不重复)
getPlugin(name)获取已注册的插件

导出与序列化

方法说明
toCanvas()合成所有渲染层到单个 Canvas
toJSON()序列化场景图为 RendxJSON
App.fromJSON(json, cfg?)从 JSON 创建 App(静态工厂)
restoreFromJSON(json)就地恢复场景(保留挂载和插件)

属性

属性类型说明
sceneScene场景根节点
observerEventObserver事件观察器
containerHTMLDivElement | null挂载容器(只读)
mountedboolean是否已挂载(只读)