2014-01-15 2 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

или

canvas.deactivateAllWithDispatch(); => если ActiveObject существует события 'до: отбор: освобоженные' и 'выбор: очищенную' увольняют , http://fabricjs.com/docs/fabric.Canvas.html#deactivateAllWithDispatch

+0

благодарит человека за его работу –

+0

@kienz Есть ли причина, по которой «canvas.renderAll()» следует запускать вручную после «deactivateAll()»? Я ожидаю, что это будет автоматически. – 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 как ложные. Он используется для отключения выбора группы.

Смежные вопросы