MCPcopy Index your code
hub / github.com/spritejs/spritejs / dispatchEvent

Method dispatchEvent

src/node/node.js:293–338  ·  view source on GitHub ↗
(event)

Source from the content-addressed store, hash-verified

291 }
292
293 dispatchEvent(event) {
294 if(!(event instanceof SpriteEvent)) {
295 event = new SpriteEvent(event);
296 }
297 event.target = this;
298 let type = event.type;
299 if(type === 'mousewheel') type = 'wheel';
300
301 const elements = [this];
302 let parent = this.parent;
303 while(event.bubbles && parent) {
304 elements.push(parent);
305 parent = parent.parent;
306 }
307
308 // capture phase
309 for(let i = elements.length - 1; i >= 0; i--) {
310 const element = elements[i];
311 const listeners = element[_captureEventListeners] && element[_captureEventListeners][type];
312 if(listeners && listeners.length) {
313 event.currentTarget = element;
314 listeners.forEach(({listener, once}) => {
315 listener.call(this, event);
316 if(once) elements.removeEventListener(listener);
317 });
318 delete event.currentTarget;
319 }
320 if(!event.bubbles && event.cancelBubble) break;
321 }
322 // bubbling
323 if(!event.cancelBubble) {
324 for(let i = 0; i < elements.length; i++) {
325 const element = elements[i];
326 const listeners = element[_eventListeners] && element[_eventListeners][type];
327 if(listeners && listeners.length) {
328 event.currentTarget = element;
329 listeners.forEach(({listener, once}) => {
330 listener.call(this, event);
331 if(once) elements.removeEventListener(listener);
332 });
333 delete event.currentTarget;
334 }
335 if(!event.bubbles || event.cancelBubble) break;
336 }
337 }
338 }
339
340 dispatchPointerEvent(event) {
341 const {layerX: x, layerY: y} = event;

Callers 15

connectMethod · 0.95
disconnectMethod · 0.95
dispatchPointerEventMethod · 0.95
setResolutionMethod · 0.95
applyRenderEventFunction · 0.45
spritesvg.jsFile · 0.45
node.jsFile · 0.45
layer.jsFile · 0.45
delegateEventsFunction · 0.45
scene.jsFile · 0.45
onHiddenFunction · 0.45

Calls 1

removeEventListenerMethod · 0.45

Tested by

no test coverage detected