FabricJS – 如何在其序列化中包含 Line 对象的默认值?


在本教程中,我们将学习如何使用 FabricJS 在 Line 对象的序列化中包含其默认值。Line 元素是 FabricJS 提供的基本元素之一,用于创建直线。由于线元素在几何上是一维的,并且不包含内部,因此它们永远不会被填充。我们可以通过创建一个 fabric.Line 实例,指定线的 x 和 y 坐标并将其添加到画布上来创建线对象。序列化用于导出画布内容。为此,我们将对象转换为 JSON。includeDefaultValues 属性允许我们在序列化时包含或省略对象的默认值。

语法

new fabric.Line(points: Array ,{ includeDefaultValues: Boolean }: Object)

参数

  • points − 此参数接受一个数组点,用于确定 (x1, y1) 和 (x2, y2) 值,它们分别是线起点和终点的 x 轴和 y 轴坐标。

  • options (可选) − 此参数是一个对象,它为我们的对象提供额外的自定义。使用此参数,可以更改与对象的许多属性相关联的原点、笔划宽度和其他许多属性,其中includeDefaultValues 是一个属性。

选项键

  • includeDefaultValues − 此属性接受一个布尔值。传递 false 值时,线对象的默认值不会包含在其序列化中。

使用 includeDefaultValues 属性并将值设置为 "true"

示例

让我们来看一个代码示例,看看当 includeDefaultValues 属性赋值为 true 时的日志输出。在这种情况下,我们可以在控制台中看到对象的序列化包含默认属性,例如 "angle":0, "shadow":null, "opacity":1, "visible":true 等。

<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>Using includeDefaultValues property and passing the value as "true"</h2> <p> You can open console from dev tools and see the default values of the serialized line object </p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate a Line object var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, includeDefaultValues: true, }); // Add it to the canvas canvas.add(line); // Using JSON.stringify method to serialize the canvas console.log(JSON.stringify(canvas)); </script> </body> </html>

使用 includeDefaultValues 属性并将值设置为 "false"

示例

在这个示例中,我们将看到如何使用 includeDefaultValues 属性并将其设置为 false 值,从而省略序列化线对象中默认值的包含。

<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>Using includeDefaultValues property and passing the value as "false"</h2> <p> You can open console from dev tools and see that the default values have been omitted from the serialized line object </p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate a Line object var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, includeDefaultValues: false, }); // Add it to the canvas canvas.add(line); // Using JSON.stringify method to serialize the canvas console.log(JSON.stringify(canvas)); </script> </body> </html>

更新于:2022年10月25日

99 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告