2017-09-11 4 views
0

は今、私はグループを変更し、データベース内の位置を変更するには、グループ内の各オブジェクトを反復処理しています:ファブリックJS - 修飾基は、個々のオブジェクトを変更しない

canvas.on('object:modified', (e) => { 
    console.log('object modified', e) 
    const target = e.target 
    const activeGroup = this.canvas.getActiveGroup() 
    if (activeGroup) { // Group has been modified 
    activeGroup.forEachObject((obj) => { 
     this.updateObject(obj) 
    }) 
    } else { 
    this.updateObject(target) 
    } 
}) 

updateObject = (fabricObject) => { 
    if (fabricObject.id) { 
     const obj = fabricObject.toObject() 
     console.log(obj) 
     update.call([fabricObject.id, { 
     $set: obj 
     }]) 
    } 
} 

しかし、実際のオブジェクトアクティブグループは座標を変更せず、グループのみを変更します。グループの変更を実装するより良い方法はありますか?おそらくより良い質問は、オブジェクトができます:グループが変更されたときに個々のオブジェクトの変更がトリガされるかどうかです。乾杯

答えて

0

私はあなたがアクティブな選択があるときに、同じ方法で生地がキャンバスの輸出のために使用しています使用することをお勧め:

canvas.on('object:modified', (e) => { 
    const target = e.target 
    const activeGroup = this.canvas.getActiveGroup() 
    if (activeGroup) { // Group has been modified 
    activeGroup.forEachObject((obj) => { 
     this.updateObject(canvas._toObject(obj, 'toObject', ['id'])) 
    }) 
    } else { 
    this.updateObject(target.toObject(['id'])) 
    } 
}) 

updateObject = (fabricObject) => { 
    if (fabricObject.id) { 
     update.call([fabricObject.id, { 
     $set: fabricObject 
     }]) 
    } 
} 
関連する問題