我正在尝试将项目移动到不同的层(所以我可以订购它们)
for (var x = 0; x < resp.Items.length; x++) {
$('#inv' + resp.Items[x].Type).attr('src', '/public/items/universe/' + resp.Items[x].Type + '/' + resp.Items[x].Name + '.png');
fabric.Image.fromURL('/public/items/universe/' + resp.Items[x].Type + '/' + resp.Items[x].Name + '.png', function(obj) {
inventory.add(obj);
obj.moveTo(obj.priority)
obj.selectable = false;
inventory.renderAll();
console.log(inventory.getObjects().indexOf(obj), obj.priority)
}, {
id: resp.Items[x].Name,
creator: resp.Items[x].Creator.Username,
priority: resp.Items[x].Priority,
category: resp.Items[x].Type
});
}
我正在尝试使用moveTo方法,但根本没有成功。 console.log调用始终显示0,1,2,3 ......而不是moveTo索引
我没有错误,并且item.priority存在,所以......我想错了一些东西
答案 0 :(得分:2)
moveTo()
仅重新排列数组中的对象。您不应该将它们视为可以具有与数组中的对象一样多的Id的层。因此,除非有11个对象,否则您无法将某些内容移动到10的索引。
更好的选择可能是首先加载所有对象并根据优先级对它们进行排序,然后根据该顺序将它们添加到画布。