簡體   English   中英

Fabricjs:克隆子類 object 使克隆不可見

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM