easeljs:getObjectsUnderPoint不返回所有形状

时间:2013-12-22 07:15:00

标签: easeljs createjs

我绘制了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);
}

1 个答案:

答案 0 :(得分:2)

这是0.7.1中的一个错误,该错误已经过修补,并且已经确认在版本0.8.2中得到修复,因为Pim Schaaf已经使用this fiddle进行了演示。如果您坚持使用0.7.1版本,则可以使用所描述的here解决方法,迭代容器的子项并调用hitTest(x, y),将mouseX和mouseY作为参数。