[英]Fabricjs: cloning a subclassed object makes the clone invisible
我想制作織物 object 的副本,它是常規織物 class 的子類(即具有與原始織物相同屬性的新 object)。 克隆似乎是通往 go 的途徑,並且確實克隆了常規的 object,例如 Rect,效果很好。 但是,如果我使用相同的代碼克隆子類的實例,則生成的 object 在 canvas 上不可見(盡管它列在canvas.getObjects()
的結果中)。
我究竟做錯了什么?
這是一個最小的例子。 這也在https://codepen.io/micrology/pen/dyKPbRO運行它顯示 3 個矩形,兩個紅色但只有一個黃色。 應該有 2 個黃色矩形。
var canvas = new fabric.Canvas('canvas')
var rect = new fabric.Rect({
top: 100,
left: 100,
width: 60,
height: 70,
fill: 'red',
})
canvas.add(rect)
var clonedRect
rect.clone((obj) => {
clonedRect = obj
clonedRect.set({left: obj.left + 10, top: obj.top + 10})
})
canvas.add(clonedRect)
var CustomRect = fabric.util.createClass(fabric.Rect, {
type: 'rect',
initialize: function (options) {
this.callSuper('initialize', options)
},
})
var customRect = new CustomRect({
top: 200,
left: 200,
width: 50,
height: 50,
fill: '#ffff00',
})
canvas.add(customRect)
var clonedCustomRect
customRect.clone((obj) => {
clonedCustomRect = obj
clonedCustomRect.set({left: obj.left + 10, top: obj.top + 10})
})
canvas.add(clonedCustomRect)
對於仍然有這個問題的人,目前有一個公開討論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.