2013-04-09 6 views
0

약간의 문제가 있습니다.kineticjs - 그룹 S의 모양을 바꾸십시오.

Stage -> layer0 -> group0 -> shapes 
      layer1 -> group1 -> shapes 
      layer2 -> group2 -> shapes 

나는 그룹 1과 그룹 2 모두 때를 이동해야이라고 GROUP0 이벤트 (같은 dragstart, dragmove 등) : 내 운동 단계는이 같은 것입니다. 나는 이런 식으로하려고했다 :

group0.draggable = true; 
group0.on('dragstart', function(){ 
    var a = #save first mouse position point 
}) 
group0.on('dragmove', function(){ 
    #ref to group1 and group2 is store in group0 and as i debugged in chrome, this object is properly recognize 
    group1.setPosition(my new positions x, y) 
    group2.setPosition(...) 
}) 

다른 말로하면. 다른 레이어의 연결된 그룹이 필요하며 중첩 된 3 개의 다른 그룹이있는 것처럼 하나의 그룹에있는 것처럼 그들을 처리합니다. 내 코드가 작동하지 않습니다, 버그 또는 뭔가 잊었습니까? 이것을 달성하는 방법? 콘솔에 아무런 오류가 없다. 그냥 group0을 바꿀 수 있지만 그룹 1과 그룹 2 setPosition 함수는 아무리 바뀌어도 아무 것도 변경하지 않는다. 고마워요

+0

jsfiddle에 코드를 넣을 수 있습니까? 그렇게하면 작동하지 않는 부분을 볼 수 있습니다. – SoluableNonagon

답변

2

나는 내 앞에 코드가 없기 때문에 추측 할 수 있습니다.

하지만 가장 먼저 확인해야 할 것은 레이어를 다시 그려야한다는 것입니다.

group0.on('dragmove', function(){ 
    #ref to group1 and group2 is store in group0 and as i debugged in chrome, this object is properly recognize 
    group1.setPosition(my new positions x, y) 
    group2.setPosition(...) 
    group1.getLayer().draw(); //redraw group1 layer 
    group2.getLayer().draw(); //redraw group2 layer 
    // stage.draw(); // also a possibility 
}) 

//you can also do transitions, which do redrawing for you. 
group1.transitionTo({ 
    duration: 1, //how long the animation takes in seconds 
    x: new position x coord 
    y: new position y coord 
}); 
//repeat for other groups you want moved 

또한, 당신은 100,100에서 shape1이 있다면 그럼이 여전히 그룹 후 (100), (100)에 존재하는 이동보고, 그 안에 항목의 위치를 ​​변경하지 않는 설정 위치를주의하는 것이 중요합니다, 위치가 컨테이너와 관련되기 때문에.

+0

감사합니다. 내 코드에서 버그를 발견했습니다. :) – Puchacz

관련 문제