Event 模块 API 文档
以下内容由 DeepSeek R1
模型生成并微调。
枚举说明
MouseType
值 | 说明 |
---|---|
None | 没有按键按下 |
Left | 左键 |
Middle | 中键(按下滚轮) |
Right | 右键 |
Back | 侧键后退 |
Forward | 侧键前进 |
WheelType
值 | 说明 |
---|---|
None | 无单位 |
Pixel | 以像素为单位 |
Line | 以行为单位(约 1rem) |
Page | 以页为单位(一个屏幕高度) |
ActionType
值 | 说明 |
---|---|
Click | 点击事件(按下与抬起在同一元素) |
Down | 鼠标或手指按下事件 |
Move | 鼠标或手指移动事件 |
Up | 鼠标或手指抬起事件 |
Enter | 进入元素时触发 |
Leave | 离开元素时触发 |
Wheel | 滚轮事件 |
EventProgress
值 | 说明 |
---|---|
Capture | 捕获阶段 |
Bubble | 冒泡阶段 |
接口说明
IActionEventBase
属性名 | 类型 | 说明 |
---|---|---|
target | RenderItem | 触发事件的元素 |
touch | boolean | 是否为触摸操作(true 表示触摸,false 表示鼠标) |
type | MouseType | 触发事件的按键类型(参考 MouseType ) |
buttons | number | 当前按下的按键(通过位运算判断,例如 buttons & MouseType.Left ) |
altKey | boolean | 是否按下 Alt 键 |
shiftKey | boolean | 是否按下 Shift 键 |
ctrlKey | boolean | 是否按下 Ctrl 键 |
metaKey | boolean | 是否按下 Windows/Command 键 |
IActionEvent
继承关系
属性名 | 类型 | 说明 |
---|---|---|
identifier | number | 操作的唯一标识符(在按下、移动、抬起中一致) |
offsetX | number | 相对于元素左上角的横坐标 |
offsetY | number | 相对于元素左上角的纵坐标 |
absoluteX | number | 相对于整个画布左上角的横坐标 |
absoluteY | number | 相对于整个画布左上角的纵坐标 |
方法说明
stopPropagation
typescript
function stopPropagation(): void;
描述
停止事件的传播(捕获或冒泡阶段)。
示例
typescript
item.on('click', ev => {
ev.stopPropagation(); // 阻止事件继续传播
});
IWheelEvent
属性名 | 类型 | 说明 |
---|---|---|
wheelX | number | 横向滚动量 |
wheelY | number | 纵向滚动量 |
wheelZ | number | 垂直屏幕方向的滚动量 |
wheelType | WheelType | 滚动量的单位类型 |
ERenderItemActionEvent
描述了所有的交互事件类型。
事件名 | 参数类型 | 说明 |
---|---|---|
clickCapture | Readonly<IActionEvent> | 点击事件的捕获阶段 |
click | Readonly<IActionEvent> | 点击事件的冒泡阶段 |
downCapture | Readonly<IActionEvent> | 按下事件的捕获阶段 |
down | Readonly<IActionEvent> | 按下事件的冒泡阶段 |
moveCapture | Readonly<IActionEvent> | 移动事件的捕获阶段 |
move | Readonly<IActionEvent> | 移动事件的冒泡阶段 |
upCapture | Readonly<IActionEvent> | 抬起事件的捕获阶段 |
up | Readonly<IActionEvent> | 抬起事件的冒泡阶段 |
enter | Readonly<IActionEventBase> | 进入元素事件 |
leave | Readonly<IActionEventBase> | 离开元素事件 |
wheelCapture | Readonly<IWheelEvent> | 滚轮事件的捕获阶段 |
wheel | Readonly<IWheelEvent> | 滚轮事件的冒泡阶段 |
ActionEventMap
键(ActionType) | 值类型 | 说明 |
---|---|---|
Click | IActionEvent | 点击事件 |
Down | IActionEvent | 按下事件 |
Enter | IActionEvent | 进入元素事件 |
Leave | IActionEvent | 离开元素事件 |
Move | IActionEvent | 移动事件 |
Up | IActionEvent | 抬起事件 |
Wheel | IWheelEvent | 滚轮事件 |
总使用示例
typescript
// 创建渲染元素(以 Sprite 为例)
const item = new Sprite();
// 监听点击事件(冒泡阶段)
item.on('click', ev => {
console.log('点击坐标:', ev.offsetX, ev.offsetY);
ev.stopPropagation(); // 阻止冒泡
});
// 监听滚轮事件(捕获阶段)
item.on('wheelCapture', ev => {
console.log('滚轮滚动量:', ev.wheelY, '单位:', WheelType[ev.wheelType]);
});
// 监听进入元素事件
item.on('enter', ev => {
console.log('进入元素,触发按键:', MouseType[ev.type]);
});
tsx
// 监听点击事件(冒泡阶段)
const click = (ev: IActionEvent) => {
console.log('点击坐标:', ev.offsetX, ev.offsetY);
ev.stopPropagation(); // 阻止冒泡
};
// 监听滚轮事件(捕获阶段)
const wheel = (ev: IWheelEvent) => {
console.log('滚轮滚动量:', ev.wheelY, '单位:', WheelType[ev.wheelType]);
};
// 监听进入元素事件
const enter = (ev: IActionEventBase) => {
console.log('进入元素,触发按键:', MouseType[ev.type]);
};
<sprite onClick={click} onWheelCapture={wheel} onEnter={enter} />;