在Actionscript 3中从左到右的方向

时间:2012-01-25 10:41:44

标签: actionscript-3 animation

我想让我的盒子动画从左到右方向出现,现在我的盒子从上到下出现,我怎样才能从左到右改变盒子的移动方向,我有9个盒子,每个盒子有3个其他行,如下图所示

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 :(得分:0)

由于嵌套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
    }
}

这样,每个y位置将显示三个x位置,希望创建您正在寻找的从左到右的行为。

答案 1 :(得分:0)

//change
for (var y:uint=0; y<boardHeight; y++)

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

虽然在你的代码中你将y循环嵌套在x循环中 这意味着对于X循环的每次迭代,该框将从底部到顶部 我不知道这是不是你要找的东西 请在您对所需内容的描述中更具体。

答案 2 :(得分:0)

您首先在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++;
        }
    }

}