如何在新版本的fabricJS中解析getActiveObject()和getActiveGroup()?

raf*_*afi 2 javascript svg canvas fabricjs

我从 1.1.9 版本开始就开始使用 Fabricjs,并创建了一个相当大的应用程序。现在我尝试使用较新的版本1.4.0,并发现有很多变化。可以使用 getActiveObject() 来选择单个对象,也可以选择多个组对象,但现在当我尝试获取所选组的某些属性(如描边宽度)时,它在组对象上抛出错误,错误是“未捕获”类型错误:无法读取 null 的属性“行程宽度”。但如果我使用 getActiveGroup() 作为组对象,则不会出现错误。事实是,如果这是问题,我必须重新创建我的整个项目。是否可以通过一些小修复来解决我的情况?在哪里可以找到 1.4.0 版本的更改日志?

Ben*_*ick 5

也许这可能是您的解决方案。如果选择了组,则 getActiveObject() 返回 null;如果选择了对象,则 getAtactiveGroup() 也返回 null。只需创建一个返回画布上所选内容的函数即可。

function getSelection(){
  return canvas.getActiveObject() == null ? canvas.getActiveGroup() : canvas.getActiveObject()
}
Run Code Online (Sandbox Code Playgroud)

如果您现在将代码中的所有 getActiveObject() 调用替换为 getSelection() 调用,这应该可以解决您的问题。希望这可以帮助。