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
继承关系
graph LR
    IActionEvent --> IActionEventBase
| 属性名 | 类型 | 说明 | 
| identifier | number | 操作的唯一标识符(在按下、移动、抬起中一致) | 
| offsetX | number | 相对于元素左上角的横坐标 | 
| offsetY | number | 相对于元素左上角的纵坐标 | 
| absoluteX | number | 相对于整个画布左上角的横坐标 | 
| absoluteY | number | 相对于整个画布左上角的纵坐标 | 
方法说明
stopPropagation
function stopPropagation(): void;
描述
停止事件的传播(捕获或冒泡阶段)。
示例
item.on('click', ev => {
    ev.stopPropagation(); // 阻止事件继续传播
});
IWheelEvent
graph LR
    IWheelEvent --> IActionEvent --> IActionEventBase
| 属性名 | 类型 | 说明 | 
| 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 | 滚轮事件 | 
总使用示例
::: code-group
// 创建渲染元素(以 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]);
});
// 监听点击事件(冒泡阶段)
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} />;
:::