监听事件
关键方法
on()
on(type: string | string[], listener: IEventListener, options?: IEventListenerOptions | boolean)
侦听事件
once()
once(type: string | string[], listener: IEventListener, capture?: boolean)
只侦听一次事件
示例
监听单个事件
ts
import { Leafer, Rect, PointerEvent } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
leafer.add(rect)
function onEnter(e: PointerEvent) {
(e.current as Rect).fill = '#42dd89'
}
rect.on(PointerEvent.ENTER, onEnter) 监听多个事件
数组形式:
ts
import { Leafer, Rect, PointerEvent } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
leafer.add(rect)
function onEnter(e: PointerEvent) {
(e.current as Rect).fill = '#42dd89'
}
function onLeave(e: PointerEvent) {
(e.current as Rect).fill = '#32cd79'
}
rect.on([PointerEvent.ENTER, PointerEvent.LEAVE],
function (e: PointerEvent) {
if (e.type === PointerEvent.ENTER) {
onEnter(e)
} else {
onLeave(e)
}
}
)字符串形式:
ts
import { Leafer, Rect, PointerEvent } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
leafer.add(rect)
function onEnter(e: PointerEvent) {
(e.current as Rect).fill = '#42dd89'
}
function onLeave(e: PointerEvent) {
(e.current as Rect).fill = '#32cd79'
}
rect.on('pointer.enter pointer.leave',
function (e: PointerEvent) {
if (e.type === 'pointer.enter') {
onEnter(e)
} else {
onLeave(e)
}
}
)只监听一次事件
ts
import { Leafer, Rect, PointerEvent } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
leafer.add(rect)
function onEnter(e: PointerEvent) {
(e.current as Rect).fill = '#42dd89'
}
function onLeave(e: PointerEvent) {
(e.current as Rect).fill = '#32cd79'
}
rect.once('pointer.enter', onEnter)
rect.once('pointer.leave', onLeave)