保留所选对象的顺序

我在画布上选择了多个对象(按住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

回到顶部