hitTest
<!DOCTYPE html>
<html>
<head>
<title>EaselJS demo: onClick</title>
<style type="text/css">
canvas {
border: 1px solid #ff6a00;
}
</style>
<script src="easeljs-0.5.0.min.js"></script>
<script>
var stage, circle;
function init() {
stage = new createjs.Stage("demoCanvas");
circle = stage.addChild(new createjs.Shape());
circle.graphics.beginFill("red").drawCircle(50, 50, 50);
circle.x = 0;
circle.y = 0;
createjs.Ticker.addListener(this);
}
function tick() {
circle.alpha = 0.2;
if (circle.hitTest(stage.mouseX, stage.mouseY)) { circle.alpha = 1; }
stage.update();
}
</script>
</head>
<body onload="init();">
<canvas id="demoCanvas" width="500" height="200">alternate content
</canvas>
</body>
</html>

globalToLocal实现转动的圆
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
canvas {
border: 1px solid #ff6a00;
}
</style>
<script src="easeljs-0.5.0.min.js"></script>
<script>
var stage, holder;
function init() {
stage = new createjs.Stage("demoCanvas");
holder = stage.addChild(new createjs.Container());
holder.x = holder.y = 150;
for (var i = 0; i < 25; i++) {
var shape = new createjs.Shape();
shape.graphics.beginFill(createjs.Graphics.getHSL(Math.random() * 360, 100, 50)).drawCircle(0, 0, 30);
shape.x = Math.random() * 300 - 150;
shape.y = Math.random() * 300 - 150;
holder.addChild(shape);
}
createjs.Ticker.addListener(this);
}
function tick() {
holder.rotation += 3;
var l = holder.getNumChildren();
for (var i = 0; i < l; i++) {
var child = holder.getChildAt(i);
child.alpha = 0.1;
var pt = child.globalToLocal(stage.mouseX, stage.mouseY);
if (stage.mouseInBounds && child.hitTest(pt.x, pt.y)) { child.alpha = 1; }
}
stage.update();
}
</script>
</head>
<body onload="init();">
<canvas id="demoCanvas" width="500" height="500"></canvas>
</body>
</html>

localToLocal
<!DOCTYPE html>
<html>
<head>
<title>EaselJS demo: onClick</title>
<style type="text/css">
canvas {
border: 1px solid #ff6a00;
}
</style>
<script src="easeljs-0.5.0.min.js"></script>
<script>
var stage, arm;
function init() {
stage = new createjs.Stage("demoCanvas");
target = stage.addChild(new createjs.Shape());
target.graphics.beginFill("red").drawCircle(0, 0, 45)
.beginFill("white").drawCircle(0, 0, 30)
.beginFill("red").drawCircle(0, 0, 15);
target.x = 100;
target.y = 180;
arm = stage.addChild(new createjs.Shape());
arm.graphics.beginFill("black").drawRect(-2, -2, 100, 4)
.beginFill("blue").drawCircle(100, 0, 8);
arm.x = 180;
arm.y = 100;
createjs.Ticker.addListener(this);
}
function tick() {
arm.rotation += 5;
target.alpha = 0.2;
var pt = arm.localToLocal(100, 0, target);
if (target.hitTest(pt.x, pt.y)) { target.alpha = 1; }
stage.update();
}
</script>
</head>
<body onload="init();">
<canvas id="demoCanvas" width="500" height="200">alternate content
</canvas>
</body>
</html>
