2014-01-15 97 views
8

如何在保存圖像之前取消激活Fabric.js中的所有對象?如何取消激活Fabric.js中的所有對象

function rasterize() { 
    if (!myscript.Canvas.supports('toDataURL')) { 
    alert('This browser doesn\'t provide means to serialize canvas to an image'); 
    } 
    else { 
    /*i want to deactivate all object here*/ 
    window.open(canvas.toDataURL('png')); 
    } 
} 

回答

9

canvas.deactivateAll(); =>無事件被觸發 http://fabricjs.com/docs/fabric.Canvas.html#deactivateAll

如果的activeObject存在 '前:選擇:清除' 的事件canvas.deactivateAllWithDispatch(); =>和 '選擇:清除' 被燒成。 http://fabricjs.com/docs/fabric.Canvas.html#deactivateAllWithDispatch

+0

感謝他的工作 –

+0

@kienz在「deactivateAll()」之後應該手動觸發「canvas.renderAll()」是否有原因?我希望它是自動的。 – temuri

+0

我認爲這是爲了表現。 – Kienz

0

當我發現這個問題,我一直在尋找:

/* Make sure that touch/click events do nothing */ 
canvas.deactivateAll(); 
canvas.selection = false; 
canvas.forEachObject(function(o) { 
    o.selectable = false; 
}); 
0
canvas.deactivateAll(); 
canvas.renderAll(); 

只有這兩條線路也做同樣不需作canvas.selection爲假。它用於禁用組選擇。