Skip to content

Instantly share code, notes, and snippets.

@drkibitz
Last active December 20, 2015 11:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drkibitz/6127432 to your computer and use it in GitHub Desktop.
Save drkibitz/6127432 to your computer and use it in GitHub Desktop.
Another (more simple) pixi.js PIXI.InteractionManager Proposal Usage
// create an new instance of a pixi stage
var stage = new PIXI.Stage(0x66FF99);
// create a renderer instance
var renderer = PIXI.autoDetectRenderer(400, 300);
// Implements EventListener Interface (DOM Events Level 3)
renderer.view.addEventListener('mousedown', {
startTarget: null,
// Implement the EventListener Interface
handleEvent: function (event) {
switch (event.type) {
case 'mousedown':
if (this.startTarget)
return;
var rect = render.view.getBoundingClientRect();
var target = stage.getInteractiveDisplayObjectAtPoint(event.pageX - rect.left, event.pageY - rect.top);
if (target) {
event.preventDefault();
target.activate();
this.startTarget = target;
window.addEventListener('mousemove', this);
window.addEventListener('mouseup', this);
window.addEventListener('mouseout', this);
}
break;
case 'mousemove':
var rect = render.view.getBoundingClientRect();
var target = stage.getInteractiveDisplayObjectAtPoint(event.pageX - rect.left, event.pageY - rect.top);
if (this.startTarget !== target) {
this.startTarget.deactivate();
} else {
target.activate();
}
break;
case 'mouseup':
case 'mouseout':
window.removeEventListener('mousemove', this);
window.removeEventListener('mouseup', this);
window.removeEventListener('mouseout', this);
this.startTarget.deactivate();
this.startTarget = null;
break;
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment