в направлении слева направо в ActionScript 3 - PullRequest
0 голосов
/ 25 января 2012

Я хочу, чтобы анимация моего ящика появлялась слева направо, сейчас мой ящик появляется сверху вниз, как я могу изменить направление своего движения слева направо, у меня есть девять ящиков и по три каждый другая строка, как на картинке ниже

enter image description here

вот мой текущий код

function random_item()
{
    var listItem:Array = new Array();
    for (var i:uint=0; i<15; i++)
    {
        listItem.push(i);
    }
    ItemLeft = 0;
    for (var x:uint=0; x<boardWidth; x++)
    {
        for (var y:uint=0; y<boardHeight; y++)
        {
            var thisItem:FirstBox = new FirstBox();
            thisItem.stop();
            thisItem.x = x * IcardHorizontalSpacing + IboardOffsetX;
            thisItem.y = y * IcardVerticalSpacing + IboardOffsetY;
            var r:uint = Math.floor(Math.random() * listItem.length);
            thisItem.cardface = listItem[r];
            listItem.splice(r,1);
            thisItem.addEventListener(MouseEvent.CLICK,clickItem);
            thisItem.buttonMode = true;
            addChild(thisItem);
            ItemLeft++;
        }
    }

}

как сделать анимацию слева направо, спасибо, прежде чем

Ответы [ 3 ]

0 голосов
/ 25 января 2012
//change
for (var y:uint=0; y<boardHeight; y++)

//to
for (var y:uint=boardHeight; y>0; y--)

Хотя в вашем коде вы вкладываете цикл y в цикл x.Это означает, что для каждой итерации цикла X поле будет идти снизу вверхЯ не знаю, если это то, что вы ищете.Пожалуйста, будьте более конкретны в описании того, что вы хотите.

0 голосов
/ 26 января 2012

Вы зацикливаетесь сначала по x, а затем по y. Это означает, что он добавит 3 элемента для каждого столбца. Инвертируйте циклы, чтобы добавить 3 элемента для каждой строки.

function random_item()
{
    var listItem:Array = new Array();
    for (var i:uint=0; i<15; i++)
    {
        listItem.push(i);
    }
    ItemLeft = 0;
    for (var y:uint=0; y<boardHeight; y++)
    {
        for (var x:uint=0; x<boardWidth; x++)
        {
            var thisItem:FirstBox = new FirstBox();
            thisItem.stop();
            thisItem.x = x * IcardHorizontalSpacing + IboardOffsetX;
            thisItem.y = y * IcardVerticalSpacing + IboardOffsetY;
            var r:uint = Math.floor(Math.random() * listItem.length);
            thisItem.cardface = listItem[r];
            listItem.splice(r,1);
            thisItem.addEventListener(MouseEvent.CLICK,clickItem);
            thisItem.buttonMode = true;
            addChild(thisItem);
            ItemLeft++;
        }
    }

}
0 голосов
/ 25 января 2012

Поскольку у вашего вложенного цикла for есть y-позиция, вложенная в x-позицию, для каждой x-позиции появятся три y-позиции (верхняя, средняя, ​​нижняя).

Возможно, вы сможете исправить поведение, которое вы видите, структурировав свой цикл for, как показано ниже, переключая порядок переменных:

for (var y:uint=0; y<boardHeight; y++)
{
    for (var x:uint=0; x<boardWidth; x++)
    {
        //Inner code remains the same
    }
}

Таким образом, три x-позиции будут отображаться для каждой y-позиции, надеюсь, создавая поведение слева направо, которое вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...