小编Ser*_*rks的帖子

fabricjs:在loadFromJSON之后保留对象的图像过滤器的正确索引

我正在对对象应用过滤器(在图像过滤器演示之后)并且一切正常但在我保存并加载画布后,图像过滤器会更改索引.

目前我有四个过滤器,它们通过索引应用(如演示中所示).

0:灰度

1:反转

2:去除颜色

3: - 混合颜色

因此,如果我应用灰度和删除颜色,'filters'数组看起来像这样,索引0和2是正确的...

在此输入图像描述

但是在我加载画布(使用loadFromJSON)之后,对象的'filters'数组看起来像这样,索引重置...

在此输入图像描述

有什么办法可以加载对象并保留过滤器索引吗?有一些代码依赖于此,当我加载具有带过滤器的对象的画布时,它会导致错误.

我尝试在创建对象时应用以下内容......

   oImg.filters = [
     false,
     false,
     false,
     false
   ];;
Run Code Online (Sandbox Code Playgroud)

在创建对象时它可以正常工作......

在此输入图像描述

但是当它被加载时,错误索引被删除并且它的结果相同......

在此输入图像描述

javascript arrays javascript-objects fabricjs fabricjs2

7
推荐指数
1
解决办法
347
查看次数

FabricJs- 克隆对象丢失自定义属性

我已经在 SVG 对象和 SVG 对象内的路径上设置了自定义属性。

我添加到画布的每个对象也被分配了一个“id”属性,以及我用来与应用程序中的对象交互的一些其他属性。

到目前为止,当我克隆这些对象时,通过在克隆之前将它们存储在会话变量中,然后在克隆之后将它们添加回来,我已经能够保留 SVG 对象上的属性。

我的问题是在每个 object.paths 上设置的属性。我为每个路径都有一个“id”属性,我将其用于一些可以操作对象内路径的函数。

例如,在我对对象进行分组之前, object.paths 属性看起来像这样......

paths: Array(4)
0: klass {id: "_25mm_x_400mm_ROUND", d: "M400.5,60.5A21.52,21.52", fill: "#ccc", dirty: false, stroke: "#000", …}
1: klass {id: "_25mm_x_400mm_ROUND", d: "M400.5,60.5v25c0", stroke: "#000", dirty: false, strokeMiterLimit: 10, …}
2: {id: "shapeTopColor", d: "M400.5,60.5A21.52,21.52", fill: "rgba(0, 0, 0, 0)", dirty: false, stroke: "#000", …}
3: {id: "shapeSideColor", d: "M400.5,60.5v25c0", stroke: "#000", dirty: false, strokeMiterLimit: 10, …}
Run Code Online (Sandbox Code Playgroud)

然后,在取消对象分组后,object.paths 属性看起来像这样......

paths: Array(4)
0: klass {type: "path", originX: "left", …
Run Code Online (Sandbox Code Playgroud)

fabricjs

2
推荐指数
1
解决办法
1651
查看次数