【问题标题】:drag shape without fill拖动没有填充的形状
【发布时间】:2015-04-05 23:16:44
【问题描述】:

我正在尝试创建一个 EaselJS 应用程序,它可以让我在画布周围拖动未填充的圆圈 - 因此,当我设置 Shape 时,我不会调用 beginFill,而是调用 beginStroke。我遇到的问题是,如果我不填充形状,我只能在选择形状的左上角时拖动它。填充形状后,我可以通过选择形状内的任意位置来拖动它。有没有办法让未填充的形状像填充的形状一样拖动?

【问题讨论】:

  • 你试过用透明色填充吗?我从来没有专门使用过 EasyJS,但使用了过去对我有用的其他库。
  • 不幸的是,在 EaselJS 中拖动使用鼠标不透明度来确定命中测试(就像所有鼠标交互一样)。尽管您可以使用 1% 或 2% 的不透明度,但使填充完全透明是行不通的。 @derz 提出的 hitArea 解决方案是最好的选择。

标签: javascript easeljs createjs


【解决方案1】:

在 EaselJS 中,描边和填充是蒙版所必需的。但是,您可以将另一个 Shape 分配为 hitArea

 var shape = new createjs.Shape();
 shape.graphics.beginFill("#000000").drawCircle(0, 0, 40);

 draggableCircle.hitArea = shape;

请记住,hitArea-Shape 不必添加到舞台,因此不会可见。

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2020-06-19
    • 2021-03-17
    • 1970-01-01
    相关资源
    最近更新 更多