我想让我的盒子动画从左到右方向出现,现在我的盒子从上到下出现,我怎样才能从左到右改变盒子的移动方向,我有9个盒子,每个盒子有3个其他行,如下图所示
这是我当前的代码
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++;
}
}
}
如何从左到右制作动画,谢谢
答案 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++;
}
}
}