Skip to content

派发事件

关键方法

emit ( type: string, event?: IEvent | IObject, capture?: boolean )

手动派发事件, event 参数可以为一个自定义的 object 数据对象, UI 事件会自动生成, 如: leaf.emit(PointEvent.DOWN)。

emitEvent ( event?: IEvent , capture?: boolean )

手动派发事件,event 参数必须为 IEvent 对象,会自动绑定 current。

归属

UI

示例

派发自定义事件

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

const leafer = new Leafer({ view: window })

const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })

leafer.add(rect)

rect.on('file.save', (data) => {
    console.log(data.text)
})

rect.emit('file.save', { text: '这是一个自定义的事件' })

模拟派发交互事件

ts
import { Leafer, Rect, PointerEvent } from 'leafer-ui'

const leafer = new Leafer({ view: window })

const rect = new Rect({ x: 100, y: 100, fill: 'green', draggable: true })

leafer.add(rect)

function onEnter(e: PointerEvent) {
    (e.current as Rect).fill = 'blue'
}

rect.on(PointerEvent.ENTER, onEnter)

rect.emit('pointer.enter', { current: rect }) 
js
import { Leafer, Rect, PointerEvent } from 'leafer-ui'

const leafer = new Leafer({ view: window })

const rect = new Rect({ x: 100, y: 100, fill: 'green', draggable: true })

leafer.add(rect)

function onEnter(e) {
    e.current.fill = 'blue'
}

rect.on(PointerEvent.ENTER, onEnter)

rect.emit('pointer.enter', { current: rect }) 

Released under the MIT License.