FabricJS如何将图片设置为背景?

3
我希望您可以永久地将一个对象放在画布的后面,并且我注意到有不同的方式来做到这一点。

canvas.sendBackwards(myObject)
canvas.sendToBack(myObject)

将对象发送到画布的后面,但如果我添加一个新元素并将其向后推送,则会在其他图像下方,并且我需要避免这种情况。我无法使用canvas.setBackgroundImage,因为我正在创建自定义图像类,并将其设置为backgroundImage将使我失去一些功能。我想设置新创建的图像的z-index。例如,在初始化新图像时,我可以将lockMovementX(和许多其他内容)设置为false或true,难道每个画布元素的z-index都没有这样的东西吗?还是每次画布更改时都要将背景元素推到后面?

1个回答

2

我也遇到了相同的情况 - 我想要一个图像作为背景层,但由于功能受限,不想将它应用为背景图像。

我为我的应用程序编写了一个函数,在每次添加新图层时重新排列图层。 我将name属性设置为此图层,以便快速识别需要发送到后面的图层。

虽然这可能效率不高,但我从未遇到与此函数相关的性能问题。 但在我的应用中,通常只有大约5到20个图层 - 通常是在该范围较低的端点。


这是我最终使用的相同解决方案,但它对我来说看起来不太高效,所以我希望有人能提供更好的解决方案。我也没有遇到任何性能问题,只是它对我来说不像是一个“干净”的解决方案。 - Daniele Sassoli
@promInc,你能分享一下你的解决方案吗? - user2810718
抱歉 @user2810718,我不再拥有那段代码,并且已经三年没有使用过fabricJS了... - PromInc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接