SMouseEvent.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * 鼠标事件
  3. *
  4. * @author
  5. */
  6. export class SMouseEvent {
  7. /** 事件类型 */
  8. type: string;
  9. /** x坐标 */
  10. x: number;
  11. /** y坐标 */
  12. y: number;
  13. /** 屏幕x坐标 */
  14. screenX: number;
  15. /** 屏幕y坐标 */
  16. screenY: number;
  17. /** 客户端x坐标 */
  18. clientX: number;
  19. /** 客户端Y坐标 */
  20. clientY: number;
  21. /** 是否按下alt键 */
  22. altKey: boolean;
  23. /** 是否按下ctrl键 */
  24. ctrlKey: boolean;
  25. /** 鼠标按键 */
  26. buttons: number;
  27. /**
  28. * 构造函数
  29. *
  30. * @param event 系统鼠标事件
  31. */
  32. constructor(event: MouseEvent | SMouseEvent) {
  33. // let bbox = (this.type = event.type); //event.srcElement.getBoundingClientRect()
  34. this.type = event.type;
  35. this.screenX = event.screenX;
  36. this.screenY = event.screenY;
  37. this.clientX = event.clientX;
  38. this.clientY = event.clientY;
  39. this.altKey = event.altKey;
  40. this.ctrlKey = event.ctrlKey;
  41. this.buttons = event.buttons;
  42. if (event instanceof SMouseEvent) {
  43. this.x = event.x;
  44. this.y = event.y;
  45. } else {
  46. this.x = event.offsetX; // TODO: PLX - bbox.left;
  47. this.y = event.offsetY; // TODO: PLX - bbox.top;
  48. }
  49. } // Function constructor()
  50. } // Class SMouseEvent