인프런 커뮤니티 질문&답변
undo 구현
작성
·
31
0
안녕하세요 좋은 강의 잘 듣고 있습니다
undo 기능을 따라 구현하던 중 이슈가 있어 질문 드립니다
pen mode로 그린 뒤 eraser mode에서 일부 지움 -> undo 실행
-> 화면이 모두 지워집니다
원인은 eraser mode에서 mousedown 시 ctx.globalCompositeOperation = 'destination-out' 로 바뀐 상태가 유지된 채 restore() 내부에서 drawImage()가 실행되기 때문인 것 같은데요,
제로초님이라면
eraser mode 종료 시점 (
mouseup)에서source-over로 되돌리는 방식이랑restore에서source-over로 바꾼 뒤drawImage()하는 것또는 제 3의 장소??
어떤 곳에 작업하실지 여쭙고 싶습니다
답변 1
1
제로초(조현영)
지식공유자
eraser에서 할것같습니다. eraser에서 destination-out으로 바꿨으므로 끝날때 마무리도 거기서 하는게 맞아보네요. 상황에 따라 restore까지 둘 다 하면 더 좋을 것 같고요





