API 参考 / 事件系统
MouseEvent
契约上表示场景级鼠标分发(点击 / 拖动 / 释放),继承 CancellableEvent。
方法速览
| 方法 | 用途 |
|---|---|
type() | 事件类型(按下 / 拖动 / 释放) |
x() / y() | 场景逻辑 1280×720 空间坐标 |
button() | 按键号 |
type()
java
public InputType type();行为:返回鼠标事件类型(如 MOUSE_PRESSED / MOUSE_DRAGGED / MOUSE_RELEASED)。
x()
java
public int x();行为:返回场景逻辑 1280×720 空间的横坐标。
y()
java
public int y();行为:返回场景逻辑 1280×720 空间的纵坐标。
button()
java
public int button();行为:返回按键号,与 InputEvent#mouseButton() 同口径(1 = 左键)。
示例
java
ctx.eventBus().subscribe(MouseEvent.class, EventPriority.HIGHEST, event -> {
if (overlayBounds.contains(event.x(), event.y())) {
event.setResult(EventResult.DENY);
}
});完整签名
java
public class MouseEvent extends CancellableEvent {
public MouseEvent(InputType type, int x, int y, int button);
public InputType type();
public int x();
public int y();
public int button();
}行为核验与注意:当前宿主源码中没有投递本事件的代码路径(仅验收壳直接 post 以验证短路语义)。因此不要依赖它接收鼠标;需要鼠标交互请实现模组场景的 Scene#handleInput(InputEvent)(鼠标事件的 mouseX() / mouseY() / mouseButton() 在其中可用,返回 true 表示已消费)。上面的示例只演示短路写法。
稳定性:2.0 起冻结,2.x 内只增不破。