2010-05-28 2 views

답변

14

캔버스 위에 배치 된 투명 이미지에 이미지 맵이 없어도 필요한 것을 얻을 수 있습니까?

+0

좋습니다. –

2

캔버스 대신 svg를 사용 해본 적이 있습니까? svg를 사용하면 그래픽 자체에 활성 영역을 식별하는 데 필요한 모든 정보가 포함될 수 있으며 html 요소와 마찬가지로 이벤트 핸들러를 연결할 수 있습니다.

당신이 SVG 모양의 형상의 다른 부분에 MouseEvent는 감지 할 수있는 방법의 예 :

http://dev.w3.org/SVG/profiles/1.1F2/test/harness/htmlObject/interact-pevents-08-f.html

http://dev.w3.org/SVG/profiles/1.1F2/test/harness/htmlObject/interact-pevents-09-f.html

4

문제에 대한 해결책으로 : 나는에 클릭 이벤트를 붙이는 것 캔버스와 마우스 이벤트에서 마우스 코디를 검사 한 다음 폴리곤과 결합 된 간단한 영역 목록을 통해 충돌 테스트를 수행 할 수 있습니다. 직사각형이 시작이지만 특수 영역이 필요하면 고급 충돌 테스트를 수행해야합니다.

픽셀 정밀도 맵에서 Flash에서 사용한 빠른 해결책은 두 번째 숨겨진 오버레이 비트 맵을 만드는 것입니다.이 오버레이 비트 맵을 사용하면 다른 사람이 보이는 이미지를 클릭 할 때 조회 할 수 있습니다.

이전 모험 게임에서 사용 된 것과 똑같은 기술. 각 "영역/객체/링크"에는 고유 한 픽셀 색상이 있습니다. 그런 다음 일치하는 색상으로 객체 목록을 유지하면됩니다.

당신이 mousecoord에서 pixelcolor이 있으면, 당신은 테이블 .. 빙고에서 매우 빠른 조회를 할 수

...

먼저 취소 제로의 (검은 색)와 "이미지를 클릭"을 먹으 렴 "no link"와 같으면 모든 영역을 특별한 색으로 그려서이 색을 목록에 저장합니다.

도움이 더 필요한지 물어보십시오. 나는 이것이 유용한 대답이되기를 바랍니다.

2

Cake을 살펴보십시오. 캔버스 용 장면 그래프 플러그인입니다. 찾고자하는 것에 너무 복잡 할 수도 있지만 Cake 래핑 된 캔버스 객체에 이벤트를 추가 할 수 있습니다.