2014-01-15 16 views
8

Wie Sie alle Objekte in Fabric.js vor dem Speichern eines Bildes deaktivieren?So deaktivieren Sie alle Objekte in 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')); 
    } 
} 

Antwort

9

canvas.deactivateAll(); => keine Ereignisse ausgelöst werden http://fabricjs.com/docs/fabric.Canvas.html#deactivateAll

oder

canvas.deactivateAllWithDispatch(); => wenn activeObject die Ereignisse existiert 'vor: Auswahl: gelöscht' und 'Auswahl: gelöscht' gefeuert werden . http://fabricjs.com/docs/fabric.Canvas.html#deactivateAllWithDispatch

+0

danke man seine funktioniert –

+0

@kienz Gibt es einen Grund, warum "canvas.renderAll()" manuell nach "deaktivierenAll()" ausgelöst werden sollte? Ich würde erwarten, dass es automatisch ist. – temuri

+0

Ich denke, es ist für die Leistung. – Kienz

0

Wenn ich diese Frage gefunden, die ich suchte:

/* 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(); 

nur diese beiden Linien auch nicht die keine Notwendigkeit, gleiche canvas.selection als falsch zu machen. Es wird verwendet, um die Gruppenauswahl zu deaktivieren.

Verwandte Themen