좌표로 그리려는 모든 직사각형의 모델을 저장합니다. 그런 다음 mouseclick 이벤트 (또는 mouseover 이벤트)를 청취하고 모델의 각 요소를 탐색하여 마우스 클릭이 사각형의 좌표 내부에서 수행되었는지 확인해야합니다.
이전 포스터에서 말했듯이 캔버스를 변경할 때마다 캔버스를 다시 그려야합니다 (관심 영역 만 다시 그리면 속도가 향상 될 수 있음). 조금 도와주는 희망!
편집 :
당신은 정의 된 사각형 개체 수 :
function Rectangle(x, y, w, h) {
this.x = x;
this.y = y;
this.w = w;
this.h = h;
this.contains = function(x, y) {
return (x > this.x && x <= (this.x + this.w) &&
y > this.y && y <= (this.y + this.h));
}
this.clone = function() {
return new Dimension(this.x, this.y, this.w, this.h);
}
}
을 다음 모델이 될 것입니다 배열이 있습니다
var model = [];
그리고 다음에 사각형을 추가를 :
model.push(new Rectangle(10,10,10,10));//x, y, width, height
당신이 당신의 캔버스를 클릭하면 0
그런 다음, 당신은 마우스 클릭은 마우스 이벤트에서 좌표를 검색하고 당신은 당신의 배열 이상 루프는 클릭이 사각형 중 하나 내부에 수행 된 경우 확인 : 나는 것을 발견
for (i = 0 ; i < model.length ; i++) {
if (model[i].contains(mouseEvent.x, mouseEvent.y))
//do something like redraw your canvas
}
"좌표로 그리려는 모든 직사각형의 모델을 저장합니다." - 어떻게하면 돼? – Seany242
내 대답을 편집하십시오보기 – Gaet
http://diagramo.com에 비슷한 모델을 사용 했으므로 작업이 보장됩니다. – Alex