在本教程中,我们将学习如何在 FabricJS 中使用时排除 Line 对象的保存。Line 元素是FabricJS中提供的基本元素之一。它用于创建直线。因为线元素在几何上是一维的并且不包含内部,所以它们永远不会被填充。我们可以通过创建 fabric.Line 的实例来创建线条对象,指定线条的 x 和 y 坐标并将其添加到画布中。序列化用于导出画布内容。为了实现这一点,我们使用和方法。excludeFromExport 属性允许我们在导出时包含或省略对象。JSON.stringify()toObject()toJSON()
new fabric.Line(points: Array, { excludeFromExport : Boolean }: Object)
points - 此参数接受点数组,这些点确定 (x1, y1) 和 (x2, y2) 值,分别是线起点和终点的 x 轴和 y 轴坐标。
选项(可选)- 此参数是一个对象,它为我们的线对象提供额外的自定义。使用此参数原点、笔划宽度和许多其他属性都可以更改,这些属性与 excludeFromExport 是其属性的对象相关。
excludeFromExport - 此属性接受布尔值。传递真值时,对象不会导出为对象或 JSON。
让我们看一个代码示例,以查看未使用 excludeFromExport 属性时记录的输出。在这种情况下,我们可以在我们的浏览器控制台(在开发工具中可用)中看到该对象没有被排除在导出之外并且以“type”:“line”开头,因此指示关于线对象。
<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script xx_src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>Logged output when excludeFromExport property is not used</h2> <p> You can open dev tools and see in console that the serialized line object is being logged </p> <canvas id="canvas"></canvas> <script> //启动画布实例 var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); //启动一个 Line 对象 var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, }); //将其添加到画布 canvas.add(line); //使用JSON.stringify方法序列化画布 console.log(JSON.stringify(canvas)); </script> </body> </html>
在此示例中,我们将看到如何通过使用 excludeFromExport 属性并将其传递给真值,我们可以忽略包含序列化行对象。
<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script xx_src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2> Logged output when excludeFromExport property is used </h2> <p> You can inspect from console in dev tools and see that the serialized line object is not being console logged </p> <canvas id="canvas"></canvas> <script> //启动画布实例 var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); //启动一个 Line 对象 var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, excludeFromExport: true, }); //将其添加到画布 canvas.add(line); //使用JSON.stringify方法序列化画布 console.log(JSON.stringify(canvas)); </script> </body> </html>