2011-01-06 17 views
1

私はオブジェクトの束を配置する別の方法を探しています。ここでオブジェクトを配置する別の方法

は私のコードです:

private var orderContainer:Sprite; 
private var currentOrder:uint = 1; 
private var orderArray:Array; 
private var scroller:uint; 
private var xPos:uint; 
private var yPos:uint; 
    ..... 

    xPos = 55; 
    yPos = 30; 

    if (currentOrder == 7){      winkelwagenContent.TestBtn.addEventListener(MouseEvent.CLICK, clickHandler); 
     scroller++; 
     xPos = 700*scroller; 
     yPos = 60; 
     teller = 1; 
     currentOrder = 1; 
    } 
     orderContainer.x = xPos; 
     orderContainer.y = yPos; 
         xPos+=270; 
         if(teller % 2 == 0){ 
          if(scroller >0){ 
           xPos = (700+(teller*8))*scroller; 
          }else{ 
           xPos = 55+(teller*8); 
          } 
          yPos+=100; 
         } 
        teller++; 
         currentOrder++; 
       } 

    private function clickHandler(e:MouseEvent):void{ 
       for each(var order:Object in orderArray){ 
        TweenLite.to(order, .5,{x:order.x-60}); 
       } 
      } 

Basicly私が何をしたいオブジェクト(ordercontainerが)ので1つの左、1つの右は、ダウンへのy位置を移動し、2 collumnsで私のムービークリップに追加されていることです私はちょうど追加し、繰り返します。 私はお互いの下に3つの2桁を取得するまで、これに達すると、yPositionは上にリセットされ、xPositionは右に移動する必要がありますので、2列をもう一度作成して、 collumns、yPositonをもう一度リセットして、すべてのオブジェクトが追加されるまで繰り返します。オブジェクトの量は可変なので、計算は柔軟でなければなりません。 コードを使って作業していますが、私は再び複雑になると感じています。

xPositionはyPosition上で私のアライメントがわずかに対角線になっているため、(teller * 8)が追加されていることがわかります。

すべてのオブジェクトを左に移動させるボタンにトゥイーンが付いていますので、次の欄が表示されます(これはうまく動作しません)。

ので、それをアップSUMMするためには、このように行く必要があります。

**(1)**  **(2)** **(7)**  **(8)** 
**(3)**  **(4)** **(9)**  **(10)** 
**(5)**  **(6)** **(11)**  **(12)** 

数字は、オブジェクトが追加された順序のためのものです。

答えて

0

ここに1つの解決策があります。 objsというムービークリップの配列があるとします。

const colNum:int = 2; 
const rowNum:int = 3; 
var offset:int = 0; 
while (objs.length) 
{ 
    for (var j:int=0; j<rowNum; j++) 
    { 
     for (var i:int = 0; i<colNum; i++) 
     { 
      if (objs.length) 
      { 
       var nextObj:MovieClip = objs.shift(); 
       nextObj.x = (offset+i) * nextObj.width; 
       nextObj.y = j * nextObj.height; 
      } 
     } 
    } 
    offset+=colNum; 
} 
関連する問題