3

Kinetic.Pathオブジェクトの幅と高さを取得する方法はありますか?常にゼロを返します。

var path = new Kinetic.Path({
    x: 40,
    y: 40,
    data: "m 148.57143,-1.9235271 200,82.8571401 L 257.14286,300.93361 2.8571414,263.79075 z",
    stroke: "green",
    draggable: true
});

layer.add(path);

stage.draw();

console.log(path.getWidth()); // returns zero
4

2 に答える 2

4

KineticJSは、パスのバウンディングボックスを計算しません。パスのデータを使用して、自分で計算する必要があります。そのために、これらのパスを処理するコードを作成しました。

https://gist.github.com/4075955

ただし、コードは現在、曲線や円弧ではなく、線のみをサポートしています。コードはパブリックドメインに公開されているので、誰でも変更することをお勧めします。

例:

var dimensions=getPathDimensions(path);
var width=dimensions.width;
于 2012-11-15T01:02:45.093 に答える
0

申し訳ありませんが、パスシェイプに組み込まれていないメトリック機能はありません(つまり、高さ、幅などを取得するため)。

まあ、長さは別として:

Kinetic.Path.calcLength = function(x、y、cmd、points)

(パス内の個々の要素、つまり、解析されたPath.dataarrayの要素にのみ使用することを目的としています)

于 2012-11-13T18:44:15.363 に答える