カードレイアウトの実装を探しています:
- 固定幅のキャンバスが与えられた場合、任意の数の長方形が配置され、最初はいくつかの余白があります。Y座標固定。
- 長方形の数がキャンバスの幅に収まらない場合、各長方形は次の長方形によって部分的にオーバーレイされます。全体の幅を示す最後の反応角
- 新しい長方形を追加するときにレイアウトを自動調整したかった
そのようなものがすでに存在するか、類似している場合は、共有してください。私はそれを書く必要がないことを望んでいました。
カードレイアウトの実装を探しています:
そのようなものがすでに存在するか、類似している場合は、共有してください。私はそれを書く必要がないことを望んでいました。
@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 によって順序付けられていることを前提としています。