캔버스의 특정 원이나 사각형에 이벤트 핸들러를 추가 할 수 없다는 것을 알고 있습니다. 그러나 특정 요소에 대한 이벤트 처리를 지원하는 EaselJS, KineticJS, Paper.js, Fabric.js와 같은 멋진 프레임 워크가 있습니다.
다른 사람들이 어떻게 작동하는지 설명 할 수 있습니까?
두 가지 해결책이 있다고 생각합니다.
1. 각 요소에 대해 새 캔버스 영역을 만들고 서로 배치하십시오. 이 방법으로 각 영역에 이벤트 처리기를 제공 할 수 있습니다.
2. 하나의 캔버스 영역과 하나의 이벤트 처리기 만 있습니다. 이 방법으로 복잡한 수학 계산을 수행하여 특정 요소가 클릭되었는지 확인해야합니다. 원이나 사각형 만있는 경우이 방법이 쉽습니다. 그러나 커브가 많은 경로가있는 경우이 솔루션은 상당히 어렵습니다.
라이브러리를 사용하고 싶지 않습니다. 누군가가 나를 도울 수 있다면 좋을 것입니다.캔버스 : 마우스 이벤트
1
A
답변
1
여기 라이브러리를 그리기 캔버스가 변경되지 않은 캔버스가 단지 하나의 큰 비트 맵
를 작동하는 방법의 간단한 요약입니다. 일단 캔버스에 도형을 그리면 액세스 할 수없고 잊어 버린 픽셀입니다.
캔버스 드로잉 라이브러리는 모든 모양을 "보관 된"개체에 저장합니다. 각 도형 객체에는 도면 라이브러리가 필요할 때마다 다시 그릴 수 있도록하는 데 필요한 충분한 정보가 있습니다.
캔버스 드로잉 라이브러리는 개체의 "컨트롤러"입니다. 라이브러리에는 필요에 따라 모든 쉐이프 객체를 추적, 조작 및 다시 그리는 데 필요한 알고리즘이 있습니다. 모양의
고유의 속성을
기본 식별
- ID
- 모양 이름
- 부모 또는 컨테이너 :
다음 정보는 모든 형태의 객체에 대해 유지됩니다 :
- 직사각형 모양 (rect, image, text) 너비와 높이를 알아야합니다.
- 원형 모양 (원, 도형, 규칙적인 다각형, 별)은 반경과 측면 수를 알고 있습니다.
- 선은 길이를 알고 있습니다.
- 곡선 모양 (호, 베 지어, 패스)은 고정 점과 제어점을 알고 있습니다.
- 텍스트도 알고 ... 음, 텍스트!
- 이미지는 또한 픽셀 데이터가
변형 적 정보를 (보통 자바 스크립트 이미지 객체에 저장) 알고
- 시작 X는/Y가 시작 좌표를 해제
- 번역 축적 된 움직임을 좌표입니다.
- 이 모양의 회전 누적 회전 (일반적으로 라디안 단위).
- 스케일링 축적 resizings
- 다른 변환 (흔하지)는 스큐하고
- 정보 - 현재 Z- 색인을
스타일링 정보 레이어링 날실 :
- 은, strokeColor, 을
- StrokeWidth,
- FillColor,
- 불투명도,
- 에서 IsVisible,
- lineCaps,
- CornerRadius를
추적 능력 :
- 완전히이 모양을 포함 박스 작은 사각형 경계는
- 이 사용됩니다 "히트 테스트"를 통해 마우스가이 객체 안에 있는지 확인 (선택 및 끌기)
0
라이브러리를 사용하지 않으려는 경우 내 대답 in this thread이 도움이 될 수 있습니다. markE에서 말한 것처럼 일단 캔버스가 쓰여지면 데이터를 추적 할 수있는 방법이 없습니다 (픽셀 수준의 충돌 감지에 유용하지만 각 픽셀을 반복하여 색을 테스트하지 않는 한).
관련 문제
- 1. HTML5 캔버스 마우스 오버 이벤트
- 2. 캔버스 마우스 이벤트 및 포커스
- 3. HTML5 캔버스 마우스 휠 이벤트
- 4. WPF 캔버스, 마우스 휠 이벤트 허용
- 5. 누적 캔버스 이벤트
- 6. 마우스 클릭으로 캔버스
- 7. HTML5 캔버스 마우스
- 8. 캔버스 마우스 위치
- 9. 캔버스 - 마우스 포인트로 총알
- 10. 캔버스 마우스 포인터가 동기화되지 않았습니다.
- 11. 이벤트 패스 스 캔 캔버스
- 12. 요소에 대한 HTML 5 캔버스 마우스 이벤트 (쇼 툴팁)
- 13. 마우스 이벤트
- 14. 마우스 이벤트 리스너 및 "this"
- 15. 간단한 실버 마우스 이벤트 질문
- 16. 실버 캔버스와 사각형의 마우스 이벤트
- 17. 퍼펙 팅 캔버스 마우스 좌표
- 18. 캔버스 이미지 및 클릭 이벤트
- 19. 캔버스 이벤트 라이브러리를 찾으십니까?
- 20. HTML5 캔버스 클릭 이벤트
- 21. html 5 캔버스 이벤트
- 22. 마우스 이벤트 및 동작 이벤트
- 23. 자동 여백 요소의 오프셋 수수께끼 - 캔버스 요소에서 마우스 및 x 축을 검색하는 방법 - 마우스 이벤트
- 24. 마우스 클릭 이벤트 리스너 제거
- 25. 마우스 이벤트 처리
- 26. User32.dll 마우스 이벤트
- 27. 마우스 이벤트 처리기
- 28. JQuery : 마우스 이동 이벤트?
- 29. JPanel의 마우스 이벤트
- 30. 마우스 휠 이벤트