SView Help Center
English (US)

鼠标事件

Author: sviewngts Last Updated: 2026-09-08 16:21

    鼠标消息监听与其他消息监听不同,是单独的Listener,代码如下:

let eventListener = new SView.EventListener();
eventListener.mouseDownListener = function(event){
   //鼠标按下或开始触摸时的监听回调
   //若返回true,则继续执行后续添加的回调,若全部回调都返回true,则执行H5中鼠标按下事件
   //若返回false,则不再继续执行后续添加的回调,且不会执行H5中鼠标按下事件
   return true;
}
eventListener.mouseMoveListener = function(event){
   //鼠标移动或触摸移动时的监听回调
   //返回值效果参考mouseDownListener
   return true;
}
eventListener.mouseUpListener = function(event){
   //鼠标抬起或触摸结束时的监听回调
   //返回值效果参考mouseDownListener
   return true;
}
eventListener.mouseWheelListener = function(event){
   //鼠标滚轮滚动时的监听回调
   //返回值效果参考mouseDownListener
   return true;
}
eventListener.keyDownListener = function(event){
   //键盘按下时的监听回调
   //返回值效果参考mouseDownListener
   return true;
}
eventListener.keyUpListener = function(event){
   //键盘抬起时的监听回调
   //返回值效果参考mouseDownListener
   return true;
}
frame.addEventListener(eventListener);

    回调函数中的event是H5自主封装的event对象,分为M3D.Inputs.MouseEventArgs、M3D.Inputs.TouchEventArgs、M3D.Inputs.KeyEventArgs;
    event.inputEventType为输入类型,类型为M3D.Inputs.InputEventType,对应值为:

M3D.Inputs.InputEventType.INPUTEVENT_MOUSE_DOWN//鼠标按下
M3D.Inputs.InputEventType.INPUTEVENT_MOUSE_MOVE//鼠标移动
M3D.Inputs.InputEventType.INPUTEVENT_MOUSE_UP//鼠标抬起
M3D.Inputs.InputEventType.INPUTEVENT_MOUSE_WHEEL//鼠标滚轮
M3D.Inputs.InputEventType.INPUTEVENT_TOUCH_DOWN//触摸按下
M3D.Inputs.InputEventType.INPUTEVENT_TOUCH_MOVE//触摸移动
M3D.Inputs.InputEventType.INPUTEVENT_TOUCH_UP//触摸抬起
M3D.Inputs.InputEventType.INPUTEVENT_KEY_DOWN//键盘按下
M3D.Inputs.InputEventType.INPUTEVENT_KEY_UP//键盘抬起

    其中各事件的EventArgs对应如下:

MouseEventArgs.mouseButton;//鼠标的按键,类型为M3D.Inputs.MouseButton
MouseEventArgs.deltalScroll;//鼠标中键滚动值
MouseEventArgs.mouseEvent;//鼠标事件对应的event,类型为MouseEvent/WheelEvent
M3D.Inputs.MouseButton.MOUSE_BUTTON_NONE//无按键
M3D.Inputs.MouseButton.MOUSE_BUTTON_LEFT//鼠标左键
M3D.Inputs.MouseButton.MOUSE_BUTTON_MIDDLE//鼠标中键
M3D.Inputs.MouseButton.MOUSE_BUTTON_RIGHT//鼠标右键
TouchEventArgs.touchCount;//触摸按下点的数量
TouchEventArgs.touchEvent;//触摸事件对应的event,类型为TouchEvent
KeyEventArgs.key;//按键值,类型为M3D.Inputs.Key
KeyEventArgs.keyEvent;//按键事件对应的event,类型为KeyboardEvent