Last active
December 20, 2015 11:58
-
-
Save drkibitz/6127432 to your computer and use it in GitHub Desktop.
Another (more simple) pixi.js PIXI.InteractionManager Proposal Usage
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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