2012-11-21 4 views
1

KineticJS 스테이지의 일부를 저장하려고합니다.오프셋을 사용하여 스테이지의 이미지 저장 KineticJS HTML5

stage.toDataURL({ 
     width: 350, 
     height: 350, 
     mimeType: "image/jpeg", 
     callback: function(dataUrl) { 
      /* 
      * here you can do anything you like with the data url. 
      * In this tutorial we'll just open the url with the browser 
      * so that you can see the result as an image 
      */ 
      window.open(dataUrl); 
     } 
     }); 
    }, false); 

을하지만 내가 원하는 것은 그 오프셋 추가하는 것입니다, 그래서 이미지가 시작하고 스테이지 영역의 좌표 (75,75) 것입니다 :이 코드는 완벽하게 노력하고 있습니다. 어떤 생각?

답변

1

자르기() 메서드가 없으므로 스테이지 75의 모든 객체를 양방향으로 이동해야합니다. 다행히도 그리 어렵지 않습니다.

뭔가 같은 :

var layersList = stage.getChildren(); 
for (var layerNum in layersList){ //loop through all layers 
    var childList = layerList.getChildren(); //get all children of the layer 
    for(var childNum in childList){ 
      childList[childNum].move(-75,-75); 
    } 
} 
stage.draw(); 
stage.toDataURL({.....}); 

당신은 동일한 코드를 사용하고 .move (75,75)를 수행하여이 작업을 취소 할 수 있습니다; 원래 위치에 다시 각 항목을 배치

또는 당신이 함수를 통해 정의 오프셋을 원한다면 바로이 수행

function moveStage(offsetX, offsetY){ 
    var layersList = stage.getChildren(); 
    for (var layerNum in layersList){ //loop through all layers 
     var childList = layerList.getChildren(); //get all children of the layer 
     for(var childNum in childList){ 
      childList[childNum].move(-offsetX,-offsetY); 
     } 
    } 

stage.draw(); 
stage.toDataURL({.....}); 
} 
관련 문제