강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của makalu1710010
makalu1710010

câu hỏi đã được viết

Mẫu thiết kế TS/JS với Canvas: Học đúng cách từ Zerocho

Memento - Tạo lịch sử Paint

undo 구현

Viết

·

46

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의 장소??

    어떤 곳에 작업하실지 여쭙고 싶습니다

javascripttypescript객체지향디자인-패턴canvas

Câu trả lời 1

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

eraser에서 할것같습니다. eraser에서 destination-out으로 바꿨으므로 끝날때 마무리도 거기서 하는게 맞아보네요. 상황에 따라 restore까지 둘 다 하면 더 좋을 것 같고요

Hình ảnh hồ sơ của makalu1710010
makalu1710010

câu hỏi đã được viết

Đặt câu hỏi