我绘制了2个形状,一个在另一个之上。 getObjectsUnderPoint函数只返回一个形状,即使该点是两个形状的一部分。我在上面形状的addEventListener处理程序中得到的这一点。这是完整的jsfiddle example。
var stage;
function init() {
stage = new createjs.Stage("canvas");
var rect = new createjs.Shape();
rect.graphics.beginFill("#ff0000").drawRect(10, 10, 100, 100);
stage.addChild(rect);
var circle = new createjs.Shape();
circle.graphics.beginFill("#00ff00").drawCircle(60, 60, 40);
circle.addEventListener("click", onClick);
stage.addChild(circle);
stage.update();
}
function onClick(e) {
// the length should be 2: circle + rectangle, but is only 1 ???
alert(stage.getObjectsUnderPoint(e.stageX, e.stageY).length);
}
答案 0 :(得分:2)
这是0.7.1中的一个错误,该错误已经过修补,并且已经确认在版本0.8.2中得到修复,因为Pim Schaaf已经使用this fiddle进行了演示。如果您坚持使用0.7.1版本,则可以使用所描述的here解决方法,迭代容器的子项并调用hitTest(x, y)
,将mouseX和mouseY作为参数。