2013-08-29 1 views
7

Fabric.js에는 object : modified와 같은 객체 수정 이벤트가 있습니다. 전체 캔버스에 대해 비슷한 이벤트가 발생합니까?Fabric.js에서 캔버스 수정 이벤트가 있습니까?

실제로 실행 취소 및 다시 실행 기능을 구현하려고합니다. JSON으로 캔버스를 저장하고 있습니다. 작업이 끝나면 다시 캔버스를 실행 취소 할 수 있습니다.

Fabric.js의이 기능에 대한 더 나은 해결책이 있습니까?

+0

이 이벤트가 어떻게 "object : modified"와 다른 것으로 생각하십니까? "object : modifed"는 캔버스 배경 수정과 같은 변경을 의미하기 때문에 캔버스의 모든 수정 사항을 다루고 있습니다. 일반적으로 실행 취소/다시 실행의 일부가 아니기 때문입니다. – kangax

+0

캔버스에 새 오브젝트를 추가 할 때 object : 수정 된 이벤트가 발생하지 않습니다. 추가 된 오브젝트에 수정 (스케일링, 회전 등)을 수행 할 때만 발사됩니다. – user2571818

+3

"object : added"및/또는 "object : removed"를 사용할 수 있습니다. - http://fabricjs.com/events/ – kangax

답변

0

이 내용은 link에서 더 잘 설명됩니다. 다음과 같이 사용하십시오 :

canvas.on('object:moving', function(e) { // or 'object:added' 
    var activeObject = e.target; 
    console.log(activeObject.get('left'), activeObject.get('top')); 
}); 
0

추가/제거 된 오브젝트도 반드시 확인하십시오.

var canvasModifiedCallback = function() { 
console.log('canvas modified!'); 
}; 

canvas.on('object:added', canvasModifiedCallback); 
canvas.on('object:removed', canvasModifiedCallback); 
canvas.on('object:modified', canvasModifiedCallback); 
관련 문제