diff --git a/CHANGELOG.md b/CHANGELOG.md index 7524a1fc4..d9c60eca6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Fixed actors being drawn when their opacity is 0 ([#875](https://github.com/excaliburjs/Excalibur/issues/875)) - Fixed iframe event handling, excalibur will respond to keyboard events from the top window ([#1294](https://github.com/excaliburjs/Excalibur/issues/1294)) - Fixed camera to be vector backed so `ex.Camera.x = ?` and `ex.Camera.pos.setTo(...)` both work as expected([#1299](https://github.com/excaliburjs/Excalibur/issues/1299)) +- Fixed missing on/once/off signatures on `ex.Pointer` ([#1345](https://github.com/excaliburjs/Excalibur/issues/1345)) diff --git a/src/engine/Input/Pointer.ts b/src/engine/Input/Pointer.ts index 930e92cd4..f84098c7f 100644 --- a/src/engine/Input/Pointer.ts +++ b/src/engine/Input/Pointer.ts @@ -3,7 +3,7 @@ import { Vector } from '../Algebra'; import { Class } from '../Class'; import * as Actors from '../Util/Actors'; import { removeItemFromArray } from '../Util/Util'; -import { PointerEvent } from './PointerEvents'; +import { PointerMoveEvent, PointerDownEvent, PointerUpEvent, WheelEvent } from './PointerEvents'; export interface ActorsUnderPointer { [ActorId: number]: Actor; @@ -107,6 +107,30 @@ export class Pointer extends Class { this.on('up', this._onPointerUp); } + on(event: 'move', handler: (event: PointerMoveEvent) => void): void; + on(event: 'down', handler: (event: PointerDownEvent) => void): void; + on(event: 'up', handler: (event: PointerUpEvent) => void): void; + on(event: 'wheel', handler: (event: WheelEvent) => void): void; + on(event: string, handler: (event: any) => void): void { + super.on(event, handler); + } + + once(event: 'move', handler: (event: PointerMoveEvent) => void): void; + once(event: 'down', handler: (event: PointerDownEvent) => void): void; + once(event: 'up', handler: (event: PointerUpEvent) => void): void; + once(event: 'wheel', handler: (event: WheelEvent) => void): void; + once(event: string, handler: (event: any) => void): void { + super.once(event, handler); + } + + off(event: 'move', handler?: (event: PointerMoveEvent) => void): void; + off(event: 'down', handler?: (event: PointerDownEvent) => void): void; + off(event: 'up', handler?: (event: PointerUpEvent) => void): void; + off(event: 'wheel', handler?: (event: WheelEvent) => void): void; + off(event: string, handler?: (event: any) => void): void { + super.off(event, handler); + } + /** * Update the state of current pointer, meant to be called a the end of frame */ @@ -203,20 +227,20 @@ export class Pointer extends Class { return this._actorsUnderPointer.hasOwnProperty(actor.id.toString()); } - private _onPointerMove(ev: PointerEvent): void { + private _onPointerMove(ev: PointerMoveEvent): void { this.lastPagePos = new Vector(ev.pagePos.x, ev.pagePos.y); this.lastScreenPos = new Vector(ev.screenPos.x, ev.screenPos.y); this.lastWorldPos = new Vector(ev.worldPos.x, ev.worldPos.y); } - private _onPointerDown(ev: PointerEvent): void { + private _onPointerDown(ev: PointerDownEvent): void { this.lastPagePos = new Vector(ev.pagePos.x, ev.pagePos.y); this.lastScreenPos = new Vector(ev.screenPos.x, ev.screenPos.y); this.lastWorldPos = new Vector(ev.worldPos.x, ev.worldPos.y); this._isDown = true; } - private _onPointerUp(): void { + private _onPointerUp(_ev: PointerUpEvent): void { this._isDown = false; this.dragTarget = null; }