pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
552 lines (551 loc) • 20.1 kB
TypeScript
import type { Container } from '../scene/container/Container';
/**
* The tracking data for each pointer held in the state of an {@link EventBoundary}.
*
* ```ts
* pressTargetsByButton: {
* [id: number]: Container[];
* };
* clicksByButton: {
* [id: number]: {
* clickCount: number;
* target: Container;
* timeStamp: number;
* };
* };
* overTargets: Container[];
* ```
* @typedef {object} TrackingData
* @property {Record.<number, Container>} pressTargetsByButton - The pressed containers'
* propagation paths by each button of the pointer.
* @property {Record.<number, object>} clicksByButton - Holds clicking data for each button of the pointer.
* @property {Container[]} overTargets - The Container propagation path over which the pointer is hovering.
* @category events
* @internal
*/
export type TrackingData = {
pressTargetsByButton: {
[id: number]: Container[];
};
clicksByButton: {
[id: number]: {
clickCount: number;
target: Container;
timeStamp: number;
};
};
overTargets: Container[];
};
/**
* Internal storage of an event listener in EventEmitter.
* @ignore
*/
type EmitterListener = {
fn(...args: any[]): any;
context: any;
once: boolean;
};
/**
* Internal storage of event listeners in EventEmitter.
* @ignore
*/
export type EmitterListeners = Record<string, EmitterListener | EmitterListener[]>;
export {};
/**
* Fired when a mouse button (usually a mouse left-button) is pressed on the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mousedown
* @param {FederatedPointerEvent} event - The mousedown event.
*/
/**
* Capture phase equivalent of `mousedown`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mousedowncapture
* @param {FederatedPointerEvent} event - The capture phase mousedown.
*/
/**
* Fired when a pointer device secondary button (usually a mouse right-button) is pressed
* on the container. Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightdown
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `rightdown`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightdowncapture
* @param {FederatedPointerEvent} event - The rightdowncapture event.
*/
/**
* Fired when a pointer device button (usually a mouse left-button) is released over the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseup
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `mouseup`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseupcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device secondary button (usually a mouse right-button) is released
* over the container. Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightup
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `rightup`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightupcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device button (usually a mouse left-button) is pressed and released on
* the container. Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* A `click` event fires after the `pointerdown` and `pointerup` events, in that
* order. If the mouse is moved over another Container after the `pointerdown` event, the
* `click` event is fired on the most specific common ancestor of the two target Containers.
*
* The `detail` property of the event is the number of clicks that occurred within a 200ms
* window of each other upto the current click. For example, it will be `2` for a double click.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#click
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `click`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#clickcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device secondary button (usually a mouse right-button) is pressed
* and released on the container. Container's `eventMode`
* property must be set to `static` or 'dynamic' to fire event.
*
* This event follows the semantics of `click`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightclick
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `rightclick`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightclickcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device button (usually a mouse left-button) is released outside the
* container that initially registered a
* [mousedown]{@link Container#event:mousedown}.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* This event is specific to the Federated Events API. It does not have a capture phase, unlike most of the
* other events. It only bubbles to the most specific ancestor of the targets of the corresponding `pointerdown`
* and `pointerup` events, i.e. the target of the `click` event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseupoutside
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `mouseupoutside`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseupoutsidecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device secondary button (usually a mouse right-button) is released
* outside the container that initially registered a
* [rightdown]{@link Container#event:rightdown}.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightupoutside
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `rightupoutside`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#rightupoutsidecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device (usually a mouse) is moved globally over the scene.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#globalmousemove
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device (usually a mouse) is moved while over the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mousemove
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `mousemove`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mousemovecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device (usually a mouse) is moved onto the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseover
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `mouseover`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseovercapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when the mouse pointer is moved over a Container and its descendant's hit testing boundaries.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseenter
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `mouseenter`
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseentercapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device (usually a mouse) is moved off the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* This may be fired on a Container that was removed from the scene graph immediately after
* a `mouseover` event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseout
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `mouseout`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseoutcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when the mouse pointer exits a Container and its descendants.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseleave
* @param {FederatedPointerEvent} event
*/
/**
* Capture phase equivalent of `mouseleave`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#mouseleavecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device button is pressed on the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerdown
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointerdown`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerdowncapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device button is released over the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerup
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointerup`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerupcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when the operating system cancels a pointer event.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointercancel
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointercancel`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointercancelcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device button is pressed and released on the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointertap
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointertap`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointertapcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device button is released outside the container that initially
* registered a [pointerdown]{@link Container#event:pointerdown}.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* This event is specific to the Federated Events API. It does not have a capture phase, unlike most of the
* other events. It only bubbles to the most specific ancestor of the targets of the corresponding `pointerdown`
* and `pointerup` events, i.e. the target of the `click` event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerupoutside
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointerupoutside`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerupoutsidecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device is moved globally over the scene.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#globalpointermove
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device is moved while over the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointermove
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointermove`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointermovecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device is moved onto the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerover
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointerover`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerovercapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when the pointer is moved over a Container and its descendant's hit testing boundaries.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerenter
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointerenter`
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerentercapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a pointer device is moved off the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerout
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `pointerout`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointeroutcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when the pointer leaves the hit testing boundaries of a Container and its descendants.
*
* This event notifies only the target and does not bubble.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerleave
* @param {FederatedPointerEvent} event - The `pointerleave` event.
*/
/**
* Capture phase equivalent of `pointerleave`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#pointerleavecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a touch point is placed on the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchstart
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `touchstart`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchstartcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a touch point is removed from the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchend
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `touchend`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchendcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when the operating system cancels a touch.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchcancel
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `touchcancel`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchcancelcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a touch point is placed and removed from the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#tap
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `tap`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#tapcapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a touch point is removed outside of the container that initially
* registered a [touchstart]{@link Container#event:touchstart}.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchendoutside
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `touchendoutside`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchendoutsidecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a touch point is moved globally over the scene.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#globaltouchmove
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a touch point is moved along the container.
* Container's `eventMode` property must be set to `static` or 'dynamic' to fire event.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchmove
* @param {FederatedPointerEvent} event - Event
*/
/**
* Capture phase equivalent of `touchmove`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#touchmovecapture
* @param {FederatedPointerEvent} event - Event
*/
/**
* Fired when a the user scrolls with the mouse cursor over a Container.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#wheel
* @type {FederatedWheelEvent}
*/
/**
* Capture phase equivalent of `wheel`.
*
* These events are propagating from the {@link EventSystem EventSystem}.
* @event Container#wheelcapture
* @type {FederatedWheelEvent}
*/