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

Function registerPointerEvent

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

Source from the content-addressed store, hash-verified

708 * },
709 */
710export function registerPointerEvent(
711 eventType: string,
712 region: any,
713 callback: (pointer: Pointer) => boolean | void,
714): void {
715 // make sure the mouse/touch events are initialized
716 enablePointerEvent();
717
718 if (pointerEventList.indexOf(eventType) === -1) {
719 throw new Error(`invalid event type : ${eventType}`);
720 }
721
722 if (typeof region === "undefined") {
723 throw new Error(
724 `registerPointerEvent: region for ${String(region)} event is undefined `,
725 );
726 }
727
728 const eventTypes = findAllActiveEvents(
729 activeEventList,
730 pointerEventMap[eventType],
731 );
732
733 // register the event
734 if (!eventHandlers.has(region)) {
735 eventHandlers.set(region, {
736 region: region,
737 callbacks: {},
738 pointerId: null,
739 });
740 }
741
742 // allocate array if not defined
743 const handlers = eventHandlers.get(region)!;
744 for (let i = 0; i < eventTypes.length; i++) {
745 const eventType = eventTypes[i];
746 if (handlers.callbacks[eventType]) {
747 handlers.callbacks[eventType].push(callback);
748 } else {
749 handlers.callbacks[eventType] = [callback];
750 }
751 }
752}
753
754/**
755 * allows the removal of event listeners from the object target.

Callers 2

onActivateEventMethod · 0.90
onActivateEventMethod · 0.90

Calls 6

enablePointerEventFunction · 0.85
findAllActiveEventsFunction · 0.85
getMethod · 0.65
hasMethod · 0.45
setMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected