2013-05-27 1 views
0

누군가가 알고있는 것처럼, 특정 모양이나 모양 그룹의 "무대 뒤에서"무대를 드래그하는 방법으로 모양이 끌리지 않습니다. 무대 위의 다른 모든 아이템들과 물론 무대 자체?무대를 드래그 가능하게 만들지 만 특정 모양을 항상 같은 상대 위치 (KineticJS)에 유지하십시오.

제 예제에서는 <canvas> 태그의 보이는 부분 외부에 많은 항목이있는 스테이지가 있습니다.이 태그는 스테이지를 왼쪽/오른쪽으로 드래그하여 접근 할 수 있지만 모양 중 하나는 항상 위치에 있어야합니다. (0, 0)<canvas> -element 중 하나이며 스테이지를 드래그하는 동안 위치를 변경하면 안됩니다.

이 작업을 수행하는 방법을 찾을 수 없으므로 아무도이 작업을 수행 할 수있는 방법을 알고 있다면 매우 기쁠 것입니다.

답변

1

캔버스의 (0,0)에 남아있는 한 모양이 항상 같은 모양이고 변경되지 않는 경우 (0,0)에있는 모양을 제외한 다른 모든 요소를 ​​그룹에 추가하고 그룹을 드래그하는 대신에

스테이지를 드래그해야하는 경우 드래그하는 동안 마우스가 이동 한 거리 x를 계산하고이를 (0,0)에있는 모양의 위치에 적용해야합니다.

+0

오, 죄송 합니다만, 여러 레이어가 있다는 것을 잊어 버렸습니다. 다른 요소가 나뉘어져 그룹화가 불가능합니다 (그룹 및 도형 만 그룹화 할 수 있음). 변경된 마우스 위치에 따라 좌표를 다시 계산하여 접근 방식을 설명해 주시겠습니까? 감사합니다 :) – irie

+1

http://jsfiddle.net/projeqht/x89hw/ 이벤트 스테이지 'dragmove'에서 stage.getX()를 사용하여 스테이지가 이동 한 dx (x 거리)를 찾습니다. 그런 다음 스테이지 X가 움직이는 동안 직사각형의 위치를 ​​정적으로 유지하려면 사각형의 X 위치에서 dx를 뺍니다. 무대의 끌기 범위를 X 축에만 제한했습니다. – projeqht

+0

감사합니다. 다가오는 날에 한번 시도해 보겠습니다. jsfiddle에서 완벽하게 작동하지만 내 코드에는 항상 자체 규칙이있는 것 같습니다. 마지막으로 한 가지 :이 코드는 트윈 기간 동안 작동하지 않습니다. 왜냐하면 제 경우에는 무대에 약간의 밀기를주고 트윈은 잔잔한 이징을 위해서 나머지 작업을하기 때문입니다 ... – irie

관련 문제