createjs stage event
by Yanan Tian
HTML
<canvas width="400" height="300" id="mineCanvas"></canvas>
<script src="https://code.createjs.com/easeljs-0.8.1.min.js"></script>
<script src="https://code.createjs.com/tweenjs-0.6.2.min.js"></script>
<script src="https://code.createjs.com/soundjs-0.6.2.min.js"></script>
<script src="https://code.createjs.com/preloadjs-0.6.2.min.js"></script>
JavaScript
var stage = new createjs.Stage("mineCanvas"),
canvas = stage.canvas,
CW = canvas.width,
CH = canvas.height;
stage.enableDOMEvents(true);
var pen, penX, penY,
c = createjs,
size = 2,
color = '#f60';
stage.addChild(pen = new c.Shape());
stage.on('stagemousedown', function(evt){
size = 10;
console.log('stagemousedown')
});
stage.on('stagemouseup', function(evt){
size = 2;
color = c.Graphics.getHSL(Math.random()*360, 150, 50);
console.log('stagemouseup')
});
//超出画布之后仍允许监听 stage 的各种事件
stage.mouseMoveOutside = true;
stage.on('stagemousemove', function(evt){
if(penX){
pen.graphics.beginStroke(color)
.setStrokeStyle(size, 'round')
.moveTo(penX, penY)
.lineTo(evt.stageX, evt.stageY)
.endStroke();
stage.update();
}
penX = evt.stageX;
penY = evt.stageY;
//永远在边界以内
console.log("stageX/Y: "+evt.stageX+","+evt.stageY);
//可以超出边界,小于 0 或 大于 canvas 的宽高(CW/CH)
console.log("rawX/Y: "+evt.rawX+","+evt.rawY);
});
//除了上面的 3 事件外,stage 还可以监听 click 事件
stage.on('click', function(e){
console.log('click:'+e.rawX+','+e.rawY);
});