3

Kineticjsに問題があります。

2つの長方形を含むグループを取得getHeight()および取得するにはどうすればよいですか?getWidht()

これが私のコードです:

var mygrup=new Kinetic.Group({
name:"mygrup",


draggable:true  
})

layer.draw()

var tool= new Kinetic.Rect({
       width: 50,
      height: 20,
      x:0,
      y:20,
      fill: '#'+(0x1000000+(Math.random())*0xffffff).toString(16).substr(1,6),

      name:"image",

    });
var tool1= new Kinetic.Rect({
       width: 50,
      height: 20,
      x:0,
      y:0,
      fill: '#'+(0x1000000+(Math.random())*0xffffff).toString(16).substr(1,6),

      name:"image",


    });
mygrup.add(tool1).add(tool)
4

4 に答える 4

3
  var children = mygrup.getChildren();
  var width = 0;
  for( var i=0; i< children.length; i++){
      if(children[i].getWidth() > width)
          width = children[i].getWidth(); 
  }

これは要素の最大幅を取得しますが、重要な部分は、グループのすべての子を取得してから、それらを反復処理することです。幅を合計するか、すべての x 値を取得して、最も左の値と最も右の値を取得し、それを幅にすることができます。または、他の何か。

于 2013-03-11T13:34:17.547 に答える
1

おそらく、より良いアプローチは、すべての子を反復処理し、形状の幅を考慮してminX、minY、およびmaxXとmaxYを見つけることです。その場合、グループの幅と高さは次のようになります。

var width = maxX-minX; var height = maxY-minY;

group.getWidth()とgroup.getHeight()は、将来実装される場合、同様のアプローチを取ります。

于 2013-03-15T19:49:13.637 に答える