56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
|
|
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) {
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|