1

カードレイアウトの実装を探しています:

  • 固定幅のキャンバスが与えられた場合、任意の数の長方形が配置され、最初はいくつかの余白があります。Y座標固定。
  • 長方形の数がキャンバスの幅に収まらない場合、各長方形は次の長方形によって部分的にオーバーレイされます。全体の幅を示す最後の反応角
  • 新しい長方形を追加するときにレイアウトを自動調整したかった

そのようなものがすでに存在するか、類似している場合は、共有してください。私はそれを書く必要がないことを望んでいました。

4

1 に答える 1

2

@puggsoy のように、これを行うライブラリは思いつきませんが、必要なことを行う単純な関数を次に示します。

function updateLayout(canvasWidth:Number, rects:Array, rectWidth:Number, margin:Number):void
{
    var totalWidth:Number = rects.length * rectWidth + ((rects.length-1)*margin);
    var offset:Number = rectWidth + margin;
    if(totalWidth > canvasWidth)
    {
        offset = (canvasWidth - rectWidth) / (rects.length-1);
    }

    var currX:Number = 0;
    for each(var rect:DisplayObject in rects)
    {
        rect.x = currX;
        currX += offset;
    }
}

これは、rects 配列内の DisplayObjects が childIndex によって順序付けられていることを前提としています。

于 2013-02-22T16:59:16.067 に答える