2013-08-27 6 views
0

키네틱 js에서 레이어를 삭제하는 방법을 찾고 있습니다. 나는 node.remove() 또는 layer.remove (node)와 같은 코드를 사용해 본 간단한 작업이라고 생각하지만 정말 그것을 알아낼 수 없습니다.키네틱 Js 레이어 지우기

<!DOCTYPE HTML> 
<html> 
    <head> 

    </head> 
    <body> 
    <div id="container"></div> 
    <script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.6.0.min.js"></script> 
    <script defer="defer"> 
    var stage = new Kinetic.Stage({ 
     container: 'container', 
     width: 578, 
     height: 200 
     }); 

     var layer = new Kinetic.Layer(); 

     var rect = new Kinetic.Rect({ 
     x: 239, 
     y: 75, 
     width: 100, 
     height: 50, 
     fill: 'green', 
     stroke: 'black', 
     strokeWidth: 4 
     }); 

     // add the shape to the layer 
     layer.add(rect); 

     // add the layer to the stage 
     stage.add(layer); 

function delete() 
    { 
    layer.remove(); 

    } 
    </script> 
    <button type="button" onclick="delete()">Delete</button> 
    </body> 
</html> 

내 삭제() 함수가 작동하지 않습니다 왜 그것을 파악하지 못했습니다 :

여기에 샘플 코드입니다. 누군가 내가 뭘 잘못했는지 알아? 전에 감사합니다.

답변

0

사실 저는 전체 레이어를 제거 할 필요가 없습니다. 나는 그것을 깨끗이하고 그것을 재사용한다.

layer.removeChildren();

는 (그룹) 또는 (선) 또는 (이미지) 또는 어떤 같은 단지 특정 콘텐츠를 제거 할 수

또는

...

console.dir(layer); // initial check -- look at (children)... 

    var groups = $('#layerID').find('Group'); 
    groups.each(function(group) { 

     group.destroy(); or.... 
     group.remove(); 

    }); 

console.dir(layer); // verify it worked (look at children again... a bunch were removed)