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

Javascript 如何在新版本的fabricJS中解析getActiveObject()和getActiveGroup()?,javascript,canvas,svg,fabricjs,Javascript,Canvas,Svg,Fabricjs,我从1.1.9版就开始使用fabricjs,并创建了一个相当大的应用程序。现在我正在尝试使用更新的版本1.4.0,并且发现有很多变化。可以使用getActiveObject()选择单个对象,也可以选择多个组对象,但现在当我试图获取所选组的某些属性(如strokeWidth)时,它在组对象上抛出错误,错误是“Uncaught TypeError:无法读取null的属性“strokeWidth”。但如果我对group对象使用getActiveGroup(),则不会出现错误。事实上,如果这是问题所在,

我从1.1.9版就开始使用fabricjs,并创建了一个相当大的应用程序。现在我正在尝试使用更新的版本1.4.0,并且发现有很多变化。可以使用getActiveObject()选择单个对象,也可以选择多个组对象,但现在当我试图获取所选组的某些属性(如strokeWidth)时,它在组对象上抛出错误,错误是“Uncaught TypeError:无法读取null的属性“strokeWidth”。但如果我对group对象使用getActiveGroup(),则不会出现错误。事实上,如果这是问题所在,我必须重新创建我的整个项目。有没有可能通过一些小的修正来解决我的问题?在哪里可以找到1.4.0版的更改日志?

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

function getSelection(){
  return canvas.getActiveObject() == null ? canvas.getActiveGroup() : canvas.getActiveObject()
}

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

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

function getSelection(){
  return canvas.getActiveObject() == null ? canvas.getActiveGroup() : canvas.getActiveObject()
}

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

您可以使用canvas.getActiveObjects()返回所有选定对象

canvas.getActiveObjects().forEach((object) => {
  // do something with object
})

您可以使用canvas.getActiveObjects()返回所有选定对象

canvas.getActiveObjects().forEach((object) => {
  // do something with object
})

我用这种方法解决了这个问题,但我实际上在寻找更好的解决方案…我用这种方法解决了这个问题,但我实际上在寻找更好的解决方案。。。