1

KineticJSステージの一部を保存したい。このコードは完璧に機能しています:

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)になります。何か案が?

4

1 に答える 1

1

まあ、crop() メソッドがないので、ステージ 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({.....});
 }
于 2013-01-10T14:53:13.537 に答える