【问题标题】:easeljs: getObjectsUnderPoint does not return all shapeseaseljs:getObjectsUnderPoint 不返回所有形状
【发布时间】:2016-08-27 00:39:36
【问题描述】:

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

【问题讨论】:

    标签: easeljs createjs


    【解决方案1】:

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

    【讨论】:

    • 链接已失效。看来这在最近版本的easeljs(0.8.2)中已修复。请参阅 jsfiddle.net/84oz06t4 和 EaselJS 0.8.2。
    • @PimSchaaf:我编辑了我的答案以更好地解释这个问题。感谢您提醒我注意损坏的链接。
    • 太好了,谢谢! (我的名字中有小错字,但不用担心 xD)
    猜你喜欢
    • 2019-09-04
    • 1970-01-01
    • 2020-05-06
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多