import ByteArray from "../utils/ByteArray"; import Event from "./Event"; import InteractiveObject from "../display/InteractiveObject"; declare namespace openfl.events { /** * The TouchEvent class lets you handle events on devices that detect user * contact with the device (such as a finger on a touch screen). When a user * interacts with a device such as a mobile phone or tablet with a touch * screen, the user typically touches the screen with his or her fingers or a * pointing device. You can develop applications that respond to basic touch * events (such as a single finger tap) with the TouchEvent class. Create * event listeners using the event types defined in this class. For user * interaction with multiple points of contact (such as several fingers moving * across a touch screen at the same time) use the related GestureEvent, * PressAndTapGestureEvent, and TransformGestureEvent classes. And, use the * properties and methods of these classes to construct event handlers that * respond to the user touching the device. * * Use the Multitouch class to determine the current environment's support * for touch interaction, and to manage the support of touch interaction if * the current environment supports it. * * **Note:** When objects are nested on the display list, touch events * target the deepest possible nested object that is visible in the display * list. This object is called the target node. To have a target node's * ancestor (an object containing the target node in the display list) receive * notification of a touch event, use * `EventDispatcher.addEventListener()` on the ancestor node with * the type parameter set to the specific touch event you want to detect. * * @see [Touch, multitouch, and gesture input](https://books.openfl.org/openfl-developers-guide/touch-multitouch-and-gesture-input/) * @see [Touch event handling](https://books.openfl.org/openfl-developers-guide/touch-multitouch-and-gesture-input/touch-event-handling.html) * */ export class TouchEvent extends Event { /** * Creates an Event object that contains information about touch events. * Event objects are passed as parameters to event listeners. * * @param type The type of the event. Possible values are: * `TouchEvent.TOUCH_BEGIN`, * `TouchEvent.TOUCH_END`, * `TouchEvent.TOUCH_MOVE`, * `TouchEvent.TOUCH_OUT`, * `TouchEvent.TOUCH_OVER`, * `TouchEvent.TOUCH_ROLL_OUT`, * `TouchEvent.TOUCH_ROLL_OVER`, and * `TouchEvent.TOUCH_TAP`. * @param bubbles Determines whether the Event object * participates in the bubbling phase of the event * flow. * @param cancelable Determines whether the Event object can be * canceled. * @param touchPointID A unique identification number (as an int) * assigned to the touch point. * @param isPrimaryTouchPoint Indicates whether the first point of contact is * mapped to mouse events. * @param relatedObject The complementary InteractiveObject instance * that is affected by the event. For example, * when a `touchOut` event occurs, * `relatedObject` represents the * display list object to which the pointing * device now points. * @param ctrlKey On Windows or Linux, indicates whether the Ctrl * key is activated. On Mac, indicates whether * either the Ctrl key or the Command key is * activated. * @param altKey Indicates whether the Alt key is activated * (Windows or Linux only). * @param shiftKey Indicates whether the Shift key is activated. * */ constructor(type: string, bubbles?: boolean, cancelable?: boolean, touchPointID?: number, isPrimaryTouchPoint?: boolean, localX?: number, localY?: number, sizeX?: number, sizeY?: number, pressure?: number, relatedObject?: InteractiveObject, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, commandKey?: boolean, controlKey?: boolean, timestamp?: number, touchIntent?: string, samples?: ByteArray, isTouchPointCanceled?: boolean); /** * Defines the value of the `type` property of a `TOUCH_BEGIN` touch * event object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_BEGIN = "touchBegin"; /** * Defines the value of the `type` property of a `TOUCH_END` touch event * object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_END = "touchEnd"; /** * Defines the value of the `type` property of a `TOUCH_MOVE` touch event * object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_MOVE = "touchMove"; /** * Defines the value of the `type` property of a `TOUCH_OUT` touch event * object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_OUT = "touchOut"; /** * Defines the value of the `type` property of a `TOUCH_OVER` touch event * object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_OVER = "touchOver"; /** * Defines the value of the `type` property of a `TOUCH_ROLL_OUT` touch * event object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_ROLL_OUT = "touchRollOut"; /** * Defines the value of the `type` property of a `TOUCH_ROLL_OVER` touch * event object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_ROLL_OVER = "touchRollOver"; /** * Defines the value of the `type` property of a `TOUCH_TAP` touch event * object. * The dispatched TouchEvent object has the following properties: * * | Property | Value | * | --- | --- | * | `altKey` | `true` if the Alt key is active (Windows or Linux). | * | `bubbles` | `true` | * | `cancelable` | `false`; there is no default behavior to cancel. | * | `commandKey` | `true` on the Mac if the Command key is active; `false` if it is inactive. Always `false` on Windows. | * | `controlKey` | `true` if the Ctrl or Control key is active; `false` if it is inactive. | * | `ctrlKey` | `true` on Windows or Linux if the Ctrl key is active. `true` on Mac if either the Ctrl key or the Command key is active. Otherwise, `false`. | * | `currentTarget` | The object that is actively processing the Event object with an event listener. | * | `eventPhase` | The current phase in the event flow. | * | `isRelatedObjectInaccessible` | `true` if the relatedObject property is set to `null` because of security sandbox rules. | * | `localX` | The horizontal coordinate at which the event occurred relative to the containing sprite. | * | `localY` | The vertical coordinate at which the event occurred relative to the containing sprite. | * | `pressure` | A value between `0.0` and `1.0` indicating force of the contact with the device. If the device does not support detecting the pressure, the value is `1.0`. | * | `relatedObject` | A reference to a display list object related to the event. | * | `shiftKey` | `true` if the Shift key is active; `false` if it is inactive. | * | `sizeX` | Width of the contact area. | * | `sizeY` | Height of the contact area. | * | `stageX` | The horizontal coordinate at which the event occurred in global stage coordinates. | * | `stageY` | The vertical coordinate at which the event occurred in global stage coordinates. | * | `target` | The InteractiveObject instance under the touching device. The `target` is not always the object in the display list that registered the event listener. Use the `currentTarget` property to access the object in the display list that is currently processing the event. | * | `touchPointID` | A unique identification number (as an int) assigned to the touch point. | * */ static readonly TOUCH_TAP = "touchTap"; /** * Indicates whether the Alt key is active (`true`) or inactive * (`false`). Supported for Windows and Linux operating systems * only. * */ altKey: boolean; /** * Indicates whether the command key is activated (Mac only). * * On a Mac OS, the value of the `commandKey` property is the same value as the * `ctrlKey` property. This property is always `false` on Windows or Linux. * */ commandKey: boolean; /** * Indicates whether the Control key is activated on Mac and whether the Ctrl key is * activated on Windows or Linux. * */ controlKey: boolean; /** * On Windows or Linux, indicates whether the Ctrl key is active * (`true`) or inactive (`false`). On Macintosh, * indicates whether either the Control key or the Command key is activated. * */ ctrlKey: boolean; /** * Indicates whether the first point of contact is mapped to mouse events. * */ isPrimaryTouchPoint: boolean; /** * The horizontal coordinate at which the event occurred relative to the * containing sprite. * */ localX: number; /** * The vertical coordinate at which the event occurred relative to the * containing sprite. * */ localY: number; /** * A value between `0.0` and `1.0` indicating force of * the contact with the device. If the device does not support detecting the * pressure, the value is `1.0`. * */ pressure: number; /** * A reference to a display list object that is related to the event. For * example, when a `touchOut` event occurs, * `relatedObject` represents the display list object to which the * pointing device now points. This property applies to the * `touchOut`, `touchOver`, `touchRollOut`, * and `touchRollOver` events. * * The value of this property can be `null` in two * circumstances: if there is no related object, or there is a related * object, but it is in a security sandbox to which you don't have access. * Use the `isRelatedObjectInaccessible()` property to determine * which of these reasons applies. * */ relatedObject: InteractiveObject; /** * Indicates whether the Shift key is active (`true`) or inactive * (`false`). * */ shiftKey: boolean; /** * Width of the contact area. * Only supported on Android(C++ target), in the range of 0-1. * */ sizeX: number; /** * Height of the contact area. * Only supported on Android(C++ target), in the range of 0-1. * */ sizeY: number; /** * The horizontal coordinate at which the event occurred in global Stage * coordinates. This property is calculated when the `localX` * property is set. * */ stageX: number; /** * The vertical coordinate at which the event occurred in global Stage * coordinates. This property is calculated when the `localY` * property is set. * */ stageY: number; /** * A unique identification number (as an int) assigned to the touch point. * */ touchPointID: number; override clone(): TouchEvent; override toString(): string; /** * Instructs OpenFL to render after processing of this event completes, if * the display list has been modified. * */ updateAfterEvent(): void; } } export default openfl.events.TouchEvent;