1

Kinetic.jsレイヤーオブジェクトはその幅をスケーリングしますか?

レイヤー全体をスケーリングし、getWidth()メソッドで幅を取得しようとすると、レイヤーのインスタンス化で設定したものを取得します。それは意図的なkinetic.jsの動作ですか?

http://jsfiddle.net/qHmZz/

var stage = new Kinetic.Stage({
    container : 'container',
    width: 300,
    height: 300
});

var layer = new Kinetic.Layer({
    width: 300,
    height: 300
});

var circle = new Kinetic.Circle({
        x: 150,
        y: 150,
        radius: 30,
        fill: 'green',
});

layer.add(circle);

stage.add(layer);

$('#message').append( 'width before scale: ' + layer.getWidth() + "</br>");
// 300

layer.setScale(0.9);
layer.draw();

$('#message').append('width after scale: ' + layer.getWidth());
//300
4

1 に答える 1

1

はい、それは意図された動作です。

スケーリングされた幅が必要な場合:

$('#message').append('width after scale: ' + layer.getWidth() * layer.getScale().x);

http://jsfiddle.net/qHmZz/2/

于 2013-03-04T23:59:25.680 に答える