MCPcopy Create free account
hub / github.com/melonjs/melonJS / releasePointerEvent

Function releasePointerEvent

packages/melonjs/src/input/pointerevent.ts:764–801  ·  view source on GitHub ↗
(
	eventType: string,
	region: any,
	callback?: (pointer: Pointer) => boolean | void,
)

Source from the content-addressed store, hash-verified

762 * me.input.releasePointerEvent('pointerdown', this);
763 */
764export function releasePointerEvent(
765 eventType: string,
766 region: any,
767 callback?: (pointer: Pointer) => boolean | void,
768): void {
769 if (pointerEventList.indexOf(eventType) === -1) {
770 throw new Error(`invalid event type : ${eventType}`);
771 }
772
773 // convert to supported event type if pointerEvent not natively supported
774 const eventTypes = findAllActiveEvents(
775 activeEventList,
776 pointerEventMap[eventType],
777 );
778
779 const handlers = eventHandlers.get(region);
780 if (typeof handlers !== "undefined") {
781 for (let i = 0; i < eventTypes.length; i++) {
782 const eventType = eventTypes[i];
783 if (handlers.callbacks[eventType]) {
784 if (typeof callback !== "undefined") {
785 remove(handlers.callbacks[eventType], callback);
786 } else {
787 while (handlers.callbacks[eventType].length > 0) {
788 handlers.callbacks[eventType].pop();
789 }
790 }
791 // free the array if empty
792 if (handlers.callbacks[eventType].length === 0) {
793 delete handlers.callbacks[eventType];
794 }
795 }
796 }
797 if (Object.keys(handlers.callbacks).length === 0) {
798 eventHandlers.delete(region);
799 }
800 }
801}
802
803/**
804 * allows the removal of all registered event listeners from the object target.

Callers 3

onDeactivateEventMethod · 0.90
onDeactivateEventMethod · 0.90
releaseAllPointerEventsFunction · 0.85

Calls 4

removeFunction · 0.90
findAllActiveEventsFunction · 0.85
getMethod · 0.65
deleteMethod · 0.45

Tested by

no test coverage detected