UNDO 및 REDO 함수를 지원하기 위해 Konva.js에서 명령 클래스 명령 클래스를 구현하는 방법은 무엇입니까?
konva.js의 명령 모드를 기반으로 실행 취소 redo 함수 구현
이 기사에서는 명령 모드를 사용하여 UNDO (Ctrl Z) 및 redo (Ctrl y) 기능을 Konva.js 그리기 응용 프로그램에서 구현하는 방법을 소개합니다. 그래픽 작업을 명령 개체로 캡슐화하고 명령 스택을 사용하여 이러한 작업을 관리하여 그래픽 편집의 폴백 및 진행 상황을 달성합니다.
먼저 기본 Command
클래스를 정의하십시오.
클래스 명령 { 생성자 () { this.states = []; // 상태 스냅 샷을 저장하는 데 사용} 실행하다() { 새 오류를 던지십시오 ( '실행 방법이 구현되어야 함'); } undo () { 새 오류를 던지십시오 ( '실행 취소 방법을 구현해야 함'); } 저축 (주) { this.states.push (state); } Restorestate () { this.states.pop () ||를 반환하십시오 널; // 이전 상태 또는 NULL로 돌아갑니다 } }
다음으로, 사각형을 그리는 명령과 같은 특정 명령 클래스를 만듭니다.
Class DrawRectAngleCommand 확장 명령 { 생성자 (스테이지, 레이어, 낙타) { 감독자(); this.stage = 단계; this.layer = 레이어; this.rect = rect; } 실행하다() { this.savestate (this.layer.tojson ()); // 현재 레이어 상태를 저장 this.layer.add (this.rect); this.layer.draw (); } undo () { this.rect.destroy (); const prevstate = this.restorestate (); if (prevstate) { this.layer.destroychildren (); // 레이어를 지우십시오 .layer = konva.node.create (prevstate, this.stage); // 이전 상태를 복원 this.stage.add (this.layer); this.layer.draw (); } } }
그런 다음 명령 관리자를 구현하십시오.
클래스 CommandManager { 생성자 () { this.undostack = []; this.redostack = []; } executeCommand (명령) { command.execute (); this.undostack.push (명령); this.redostack = []; // 새 명령을 실행 한 후 Redo Stack을 지우십시오} undo () { if (this.undostack.length === 0) 반환; const command = this.undostack.pop (); command.undo (); this.redostack.push (명령); } redo () { if (this.redostack.length === 0) 반환; const command = this.redostack.pop (); command.execute (); this.undostack.push (명령); } }
마지막으로 Konva.js 응용 프로그램에서 사용하십시오.
Const Stage = New Konva.Stage ({{ 컨테이너 : '컨테이너', 너비 : Window.InnerWidth, 높이 : Window.innerHeight }); const layer = new Konva.layer (); stage.add (레이어); const CommandManager = new CommandManager (); stage.on ( 'click', (e) => { const rect = new konva.rect ({ X : e.evt.layerx, Y : e.evt.layery, 너비 : 50, 높이 : 50, 채우기 : '빨간색', Draggable : True }); const command = new DrawRectAngleCommand (Stage, Layer, rect); CommandManager.ExecuteCommand (명령); }); document.addeventListener ( 'keydown', (e) => { if (e.ctrlkey && e.key === 'z') { CommandManager.undo (); } else if (e.ctrlkey && e.key === 'y') { CommandManager.redo (); } });
이 코드는 간단한 사각형 도면과 실행 취소를 구현합니다. 이동, 스케일링, 회전 등과 같은 다른 그래픽 작업을 지원하기 위해 Command
클래스를 확장 할 수 있습니다. 각 작업의 execute
방법에서 현재 상태를 저장하고 undo
방법에서 이전 상태를 복원해야합니다. 이렇게하면 실행 취소 레디 기능이 올바르게 작동합니다.
위 내용은 UNDO 및 REDO 함수를 지원하기 위해 Konva.js에서 명령 클래스 명령 클래스를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











초보자에게 적합한 cryptocurrency 데이터 플랫폼에는 CoinmarketCap 및 비소 트럼펫이 포함됩니다. 1. CoinmarketCap은 초보자 및 기본 분석 요구에 대한 글로벌 실시간 가격, 시장 가치 및 거래량 순위를 제공합니다. 2. 비소 인용문은 중국 사용자가 저 위험 잠재적 프로젝트를 신속하게 선별하는 데 적합한 중국 친화적 인 인터페이스를 제공합니다.

기관 투자자는 Coinbase Pro 및 Genesis Trading과 같은 준수 플랫폼을 선택하여 냉장 저장 비율 및 감사 투명성에 중점을 두어야합니다. 소매 투자자는 사용자 경험과 보안에 중점을 둔 Binance 및 Huobi와 같은 대규모 플랫폼을 선택해야합니다. 규정 준수에 민감한 영역의 사용자는 Circle Trade 및 Huobi Global을 통해 Fiat 통화 거래를 수행 할 수 있으며 Mainland Chinese 사용자는 규정을받는 처방전없이 구입할 수있는 채널을 통과해야합니다.

OKX 및 Coinbase와 같은 준수 플랫폼에 우선 순위가 부여되어 다중 인자 검증이 가능하며 자산 셀프 사용량은 의존성을 줄일 수 있습니다. 1. 규제 라이센스와의 교환을 선택하십시오. 2. 2FA의 화이트리스트와 인출을 켜십시오. 3. 하드웨어 지갑 또는 자기 사용을 지원하는 플랫폼을 사용하십시오.

대량 거래 플랫폼을 선택할 때 다음 요소를 고려해야합니다. 1. 유동성 : 평균 일일 거래량이 50 억 달러 이상인 플랫폼에 우선 순위가 부여됩니다. 2. 규정 준수 : 플랫폼이 미국의 Fincen과 같은 라이센스, 유럽 연합의 Mica와 같은 라이센스를 보유하고 있는지 확인하십시오. 3. 보안 : 콜드 지갑 저장 비율 및 보험 메커니즘이 핵심 지표입니다. 4. 서비스 기능 : 독점 계정 관리자 및 맞춤형 트랜잭션 도구를 제공할지 여부.

국내 사용자 적응 솔루션에는 규정 준수 채널 및 현지화 도구가 포함됩니다. 1. 규정 준수 채널 : 국내에서 Circle Trade와 같은 OTC 플랫폼을 통한 프랜차이즈 환전. 홍콩 또는 해외 플랫폼을 통과해야합니다. 2. 현지화 도구 : 통화 서클 네트워크를 사용하여 중국 정보를 얻고 Huobi Global Station은 메타 우주 거래 터미널을 제공합니다.

다양한 복잡한 거래 도구 및 시장 분석을 제공합니다. 이 회사는 100 개 이상의 국가를 다루고 있으며 평균 일일 파생 상품 거래량은 300 억 달러 이상이며 300 개가 넘는 거래 쌍과 200 배의 레버리지를 지원하며, 기술 강도가 강하고, 글로벌 사용자 기반, 전문적인 거래 플랫폼, 안전한 스토리지 솔루션 및 풍부한 거래 쌍을 제공합니다.

2025 년의 상위 10 개 보안 디지털 통화 거래소는 다음과 같습니다. 1. Binance, 2. Okx, 3. Gate.io, 4. Coinbase, 5. Kraken, 6. Huobi, 7. Bitfinex, 8. Kucoin, 9. Bybit, 10. Bitstamp. 이 플랫폼은 핫 및 콜드 지갑의 분리, 다중 서명 기술 및 24/7 모니터링 시스템을 포함한 다단계 보안 조치를 채택하여 사용자 자금의 안전을 보장합니다.

일반적인 안정된 안정은 다음과 같습니다. 1. 테더, 테더가 발행하고 미국 달러로 휘두르고 널리 사용되지만 투명성에 의문이 제기되었습니다. 2. Circle 및 Coinbase가 발행 한 미국 달러, 투명성이 높고 기관이 선호하는 미국 달러; 3. Makerdao가 발행 한 Dai, 분산 및 결함 필드에서 인기가 있습니다. 4. BINANCE와 PAXOS가 협력 한 BISD (Binance Dollar)는 훌륭한 거래 및 지불 성과를 가지고 있습니다. 5. 신뢰
