Skip to content

App

创建 App 应用(可选),了解初始化 应用配置窗口交互

负责组织多个 Leafer 实例 分层 协同工作,提高渲染性能,同时继承 Leafer 的部分功能和事件。


app


TIP

此时 Leafer 相当于一个子 Group 元素,交互事件可以在多个 Leafer 间穿透。

注意: App 不接收子元素的数据变化事件,请在对应的 Leafer 实例上监听。

关键属性

isApp: boolean

是否为 App 实例, 默认为 true 。

children: Leafer[]

Leafer 实例的子对象。

统一结构

为了方便大家记忆和沟通,我们以现实世界的方式为常用的 Leafer 层进行拟物化命名。

当然你也可以手动创建,完全自定义结构,或在这个基础上增加 自定义层都可以。

ground?: Leafer

地面层 (背景层),位于最底部的 Leafer 实例,一般用于渲染背景、网格内容(可选)。

tree: Leafer

树结构 (内容层),位于中间的 Leafer 实例。

sky: Leafer

天空层 (变化层),位于最顶部的 Leafer 实例,一般用来渲染频繁变化的动画、编辑器等。

ts
import { App, Rect } from 'leafer-ui'

const app = new App({
    view: window,
    ground: { type: 'draw' }, // 可选
    tree: {},
    sky: { type: 'draw', usePartRender: false }
})

const background = new Rect({ width: 800, height: 600, fill: 'gray' })
const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
const border = new Rect({ x: 200, y: 200, stroke: 'blue', draggable: true })

app.ground.add(background)
app.tree.add(rect)
app.sky.add(border)
ts
import { App, Leafer, Rect } from 'leafer-ui'

const app = new App({ view: window }) 

app.ground = new Leafer({ type: 'draw' })
app.tree = new Leafer()
app.sky = new Leafer({ type: 'draw', usePartRender: false })

app.add(app.ground)
app.add(app.tree)
app.add(app.sky)

const background = new Rect({ width: 800, height: 600, fill: 'gray' })
const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
const border = new Rect({ x: 200, y: 200, stroke: 'blue', draggable: true })

app.ground.add(background)
app.tree.add(rect)
app.sky.add(border)
ts
import { App, Rect } from 'leafer-ui'

const app = new App({ view: window }) 

app.ground = app.addLeafer({ type: 'draw' })
app.tree = app.addLeafer()
app.sky = app.addLeafer({ type: 'draw', usePartRender: false })

const background = new Rect({ width: 800, height: 600, fill: 'gray' })
const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
const border = new Rect({ x: 200, y: 200, stroke: 'blue', draggable: true })

app.ground.add(background)
app.tree.add(rect)
app.sky.add(border)

预留属性

editor: IEditor

图形编辑器实例,需安装 图形编辑器

视口属性(viewport)

zoomLayer:Group

缩放平移视图层, 默认使用 app.tree.zoomLayer 作为缩放平移层。

可以手动修改它的 xyscalescaleXscaleY 属性进行缩放平移视图。

通过 视图插件 / 滚动条插件 可以便捷控制视图,支持 fit 视图、聚集到指定元素。

关键方法

add ( leafer: Leafer)

添加一个 Leafer 实例。

addLeafer ( config?:ILeaferConfig)

快速创建并添加一个 Leafer 实例。

addAt ( child: Leafer, index: number)

添加一个 Leafer 实例到在指定位置。

addBefore ( child: Leafer, before: Leafer)

添加一个 Leafer 实例 在指定的 leafer 前面。

addAfter ( child: Leafer, after: Leafer)

添加一个 Leafer 实例 在指定的 leafer 后面。

配置

应用配置

视口

窗口交互

继承元素

Leafer

Released under the MIT License.