Skip to content

编辑器状态

关键属性

visible: boolean

是否显示编辑器, 默认为 true。

隐藏后,交互功能也将禁用。

hittable: boolean

编辑器是否响应交互事件,默认为 true。

设为 false 后,将禁用编辑器交互。

single: boolean

是否只选中了单个元素。

multiple: boolean

是否选中了多个元素。

editing: boolean

是否处于编辑状态,选择元素后即进入编辑状态。

innerEditing: boolean

是否处于内部编辑状态,双击单个元素进入内部编辑状态(有内部编辑器的情况)。

groupOpening: boolean

是否处于打开组状态,双击组可进入打开状态,方便选择组内元素。

dragging: boolean

是否正在拖拽编辑器,包含拖拽控制点、边。

归属

Editor 元素

示例

创建图形模式

ts
// #图形编辑器 [创建图形]
import { App, DragEvent, Rect } from 'leafer-ui'
import '@leafer-in/editor' // 导入图形编辑器插件
import '@leafer-in/viewport' // 导入视口插件(可选)


const app = new App({ view: window, editor: {}, fill: '#333' })

app.tree.add({ tag: 'Text', x: 100, y: 100, text: '2秒后,按下鼠标拖动可创建矩形', fill: '#999', fontSize: 16 })


app.tree.add(Rect.one({ editable: true, fill: '#FEB027', cornerRadius: [20, 0, 0, 20] }, 100, 300))
app.tree.add(Rect.one({ editable: true, fill: '#FFE04B', rotation: 10, cornerRadius: [0, 20, 20, 0] }, 300, 300))

app.editor.select(app.tree.children[2])

setTimeout(() => {

    // 2秒后进入创建图形模式 //
    app.editor.visible = false
    app.tree.hitChildren = false

    // 创建矩形(拖拽)
    let rect: Rect

    app.on(DragEvent.START, () => {
        rect = new Rect({ editable: true, fill: '#32cd79' })
        app.tree.add(rect)
    })

    app.on(DragEvent.DRAG, (e: DragEvent) => {
        if (rect) rect.set(e.getPageBounds()) // 获取事件在 page 坐标系中绘制形成的包围盒  //
    })

}, 2000)
js
// #图形编辑器 [创建图形]
import { App, DragEvent, Rect } from 'leafer-ui'
import '@leafer-in/editor' // 导入图形编辑器插件
import '@leafer-in/viewport' // 导入视口插件(可选)


const app = new App({ view: window, editor: {}, fill: '#333' })

app.tree.add({ tag: 'Text', x: 100, y: 100, text: '2秒后,按下鼠标拖动可创建矩形', fill: '#999', fontSize: 16 })

app.tree.add(Rect.one({ editable: true, fill: '#FEB027', cornerRadius: [20, 0, 0, 20] }, 100, 100))
app.tree.add(Rect.one({ editable: true, fill: '#FFE04B', rotation: 10, cornerRadius: [0, 20, 20, 0] }, 300, 100))

app.editor.select(app.tree.children[0])

setTimeout(() => {

    // 2秒后进入创建图形模式 //
    app.editor.visible = false
    app.tree.hitChildren = false

    // 创建矩形(拖拽)
    let rect

    app.on(DragEvent.START, () => {
        rect = new Rect({ editable: true, fill: '#32cd79' })
        app.tree.add(rect)
    })

    app.on(DragEvent.DRAG, (e) => {
        if (rect) rect.set(e.getPageBounds())  // 获取事件在 page 坐标系中绘制形成的包围盒  //
    })

}, 2000)

Released under the MIT License.