Fabric js:移动时没有组成员更新

Posted

技术标签:

【中文标题】Fabric js:移动时没有组成员更新【英文标题】:Fabric js : No group member update while moving 【发布时间】:2017-01-14 00:58:38 【问题描述】:

我在这里的第一个问题,经过多年在其他主题中寻找解决方案! 首先,对不起,如果我的英语不完美!

我在我的应用程序中使用 Fabric js,我必须实现一个按钮来对文本或图像进行分组。

但是,我注意到,当我在画布上移动组时,组坐标会更新,但不会更新组的对象。

在画布上,对象与它们的组一起移动得很好,但在控制台中,它们似乎总是具有相同的“顶部”和“左侧”值。

这是一个正常的群体行为,在这种情况下,我真的不明白,或者我错过了什么?

可以注意到我是用addWithUpdate(obj)方法在组中添加对象的。

我真的希望有人可以帮助我!

【问题讨论】:

是的,这很正常。单个对象仅在从组中删除时才会更新,或者您可以进行一些调用以获取已解决的最终定位。您有更具体的问题吗? 感谢您的回答!如果对象在从组中删除时更新,我想我会在需要知道它们的位置时删除它们!我会试试这个,如果我无法找到解决问题的方法,我会尝试问另一个更具体的问题!再次感谢! 【参考方案1】:

是的,这很正常。 但是,您可以通过这种方式在不破坏和重建组的情况下找到位置:

给定一个 groupfabric.Group 和一个 childObject 是 fabric.Object 的子类,您可以:

1) 用 childObject 顶部和左侧创建一个点

var point = new fabric.Point(childObject.left, childObject.top);

2) 获取组transformMatrix:

var transform = group.calcTransformMatrix();

3) 用这个矩阵变换点:

var actualCoordinates = fabric.util.transformPoint(point, transform);

你应该准备好了。

【讨论】:

以上是关于Fabric js:移动时没有组成员更新的主要内容,如果未能解决你的问题,请参考以下文章

在鼠标移动时获取fabric.js中图像像素的rgb值

使在画布上绘制的形状不可移动(fabric.js)

Hyperledger fabric 1.0Beta网络组成及构建流程

Angular.js 和 Fabric.js:一旦代码移动到 Angular 指令,Fabric 画布就会改变行为

node.js loadFromDatalessJSON 上的 fabric.js 在组中移动对象

fabric1.4.1新特性 — raft排序服务