保留所选对象的顺序
我在画布上选择了多个对象(按住Shift键),我的代码依赖于选择顺序(我需要使用第一个选定对象作为组操作的参考) 。 我注意到,有时在做选择时会保留顺序,有时它不会。在调试时我在fabric.js的源发现了以下的代码:保留所选对象的顺序
_createGroup: function(target) { var objects = this.getObjects(),
isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target),
groupObjects = isActiveLower
? [this._activeObject, target]
: [target, this._activeObject];
this._activeObject.isEditing && this._activeObject.exitEditing();
return new fabric.ActiveSelection(groupObjects, {
canvas: this
});
}
因此顺序取决于所述第一两个对象的Z顺序上被选择时(当单个选择变换成多个选择此函数被调用在添加第二个对象之后)。
有关如何实现我的目标和忽略Z-顺序的任何建议?我可以在代码中“撤销”这种重新排序,自己检查Z顺序并将对象交换回“自然”顺序,但这听起来很疯狂。
在解决此功能时,应该将选项preserveObjectStacking
设置为true,否则在渲染过程中选择顺序将恢复为“错误”。
回答:
我可以确认你没有办法保持它的顺序,除非你做你正在做的事情。
请,如果你认为这是一件坏事,缺少功能什么的一个开发只是不应该面对的,只是打开GitHub上的问题跟踪器fabricjs
以上是 保留所选对象的顺序 的全部内容, 来源链接: utcz.com/qa/258996.html