intersectsWithObject() 似乎不适用于组中的对象

intersectsWithObject() doesn't seem to work with objects in groups

我有一个 Fabric.js canvas 上面有一组形状 (a "token") 和一个我要将令牌拖到上面的矩形 (a "platform").将代币拖到平台上会发生各种事情。

当我调用 token.intersectsWithObject(platform) 时,一切正常。但是我要有几个平台来拖令牌,我想提高拖放交互的精度,所以我决定在检查碰撞时,我只想考虑令牌,不是全部。

这应该不会太难,因为令牌的底部是一个形状。我所要做的就是在 token.base 中存储对该形状的引用并调用 token.base.intersectsWithObject(platform).

但出于某种原因,这不起作用。 token.base.intersectsWithObject() 存在,但总是 returns false。我不知道为什么。谁能帮忙?这是 CodePen;拨动 JavaScript 顶部的开关可在 tokentoken.base 之间切换相关逻辑。

对象 base 在组中。它的坐标不会改变,因为它在组中。如果你做一些控制台日志记录,你会看到组的坐标确实发生了变化,而组内对象的坐标没有改变。所以理论上 base 对象不与 platform

相交
console.log('Left margin of group =', fred.getLeft());
console.log('Top margin of group =', fred.getTop());
console.log('Left margin of base =', fred.base.getLeft());
console.log('Top margin of base =', fred.base.getTop());

CodePen