2014-04-08 1 views
0

도형을 그릴 때마다 나는 단지 shape.draw() 메서드 을 호출하므로 도형이 다시 한번 반복됩니다. 내 질문은 이전에 그려진 모양이 더 이상 나타나지 않으면 서 모양을 추가하는 방법입니다.
다음 샘플 코드도형이 kineticjs stage.draw()에서 반복됩니다.

//creating group for adding text 
    var textGroup = new Kinetic.Group({ 
        x: e.pageX, 
        y: e.pageY - posY, 
        draggable: true, 
        id: 'textgroup' 
       }); 
       layer.add(textGroup); 
       stage.add(layer); 
       textname = 'text' + shapecount; 
//creating text 
       var text = new Kinetic.Text({ 
        x: 0, 
        y: 0, 
        text: comment, 
        fill: "#" + fillcolor, 
        fontSize: 24, 
        opacity: 0.5, 
        name: textname 
       }); 
//adding text into group 
       textGroup.add(text); 
//finally drawing stage 
        stage.draw(); 


Can anyone help me out? 

    Thanks in Advance, 

답변

0

당신은 단지 그룹에 무승부() 메서드를 호출 할 수는 당신이 모양을 추가합니다. 그러면 특정 그룹의 모양 만 다시 그려집니다. 나는. textGroup.draw()

실제로 모든 노드 (도형, 레이어, 스테이지, 그룹 등)에서 draw() 메서드를 호출 할 수 있습니다.

업데이트 나는 바이올린 http://jsfiddle.net/u9xHe/1/했다. 텍스트 도형을 추가하고 draw를 호출 한 다음 다른 Text 도형을 추가하고 다시 draw합니다. 이 경우에는 아무것도 보이지 않습니다.

+0

답장을 보내 주셔서 감사합니다. 여전히 동일한 문제가 있습니다. – Siva

+0

문제를 좀 더 명확하게 설명해 주시겠습니까? 어쩌면 바이올린 예제를 사용합니다. draw() 메서드는 더 이상 모양을 추가하지 말고 기존 모양을 다시 그리면됩니다. – Sjiep

+0

하나의 직사각형을 그린 다음 하나의 원을 그립니다. 이 경우 직사각형과 원이 한 번만 추가되었습니다. 서버에 스테이지를 저장하고 아래 메서드와 같이 다시로드하면 stage = Kinetic.Node.create (json, 'toImage'); 여기 각 모양이 두 번 나타납니다. – Siva