Fabricjs 将对象移动到图层
Fabricjs move object to layer
我正在尝试将项目移动到不同的层(以便我可以订购)
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 存在所以...我想我漏掉了一些东西
moveTo()
只是重新排列数组中的对象。您不应将它们视为可以具有与数组中的对象一样多的任何 Id 的层。因此,除非有 11 个对象,否则您不能将某些内容移动到索引 10。
更好的选择可能是首先加载所有对象并根据优先级对它们进行排序,然后根据该顺序将它们添加到 canvas。
我正在尝试将项目移动到不同的层(以便我可以订购)
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 存在所以...我想我漏掉了一些东西
moveTo()
只是重新排列数组中的对象。您不应将它们视为可以具有与数组中的对象一样多的任何 Id 的层。因此,除非有 11 个对象,否则您不能将某些内容移动到索引 10。
更好的选择可能是首先加载所有对象并根据优先级对它们进行排序,然后根据该顺序将它们添加到 canvas。