import { _decorator, Component, EventMouse, Node } from 'cc'; const { ccclass, property } = _decorator; @ccclass('BaseButtonAction') export class BaseButtonAction extends Component { onMouseUp?: Function; onMouseLeftUp?: Function; onMouseRightUp?: Function; onMouseDown?: Function; onMouseLeftDown?: Function; onMouseRightDown?: Function; start() { this.node.on(Node.EventType.MOUSE_UP,this._onMouseUp,this); this.node.on(Node.EventType.MOUSE_DOWN,this._onMouseDown,this); } private _onMouseUp(event:EventMouse){ if (this.onMouseUp) this.onMouseUp(); switch (event.getButton()) { case EventMouse.BUTTON_LEFT: if (this.onMouseLeftUp) this.onMouseLeftUp(); break; case EventMouse.BUTTON_RIGHT: if (this.onMouseRightUp) this.onMouseRightUp(); break; default: break; } } private _onMouseDown(event:EventMouse){ if (this.onMouseDown) this.onMouseDown(); switch (event.getButton()) { case EventMouse.BUTTON_LEFT: if (this.onMouseLeftDown) this.onMouseLeftDown(); break; case EventMouse.BUTTON_RIGHT: if (this.onMouseRightDown) this.onMouseRightDown(); break; default: break; } } update(deltaTime: number) { } }