处理多个动画片段相对于彼此的位置

时间:2017-08-14 10:46:55

标签: actionscript-3 movieclip flash-cs6

我使用Flash并不是那么新,但是我主要用它来制作动画,而且我并没有真正使用动作脚本,但这次我想尝试按代码制作布局。

我试图将方形影片剪辑定位为形成网格状菜单。 我将每个动画片段全部放在代码中,但我想也许有更好,更有效的方法。

代码是非常基本的,但无论如何我都会发布它,所以你有一个我试图让它看起来像的图像。我不太擅长解释,我道歉。

//1st row//
var btn1:MovieClip = new dBtn();
btn1.x = -210;
btn1.y = -90;
addChild(btn1);

var btn2:MovieClip = new dBtn();
btn2.x = btn1.x+70;
btn2.y = btn1.y;
addChild(btn2);

var btn3:MovieClip = new dBtn();
btn3.x = btn2.x+70;
btn3.y = btn2.y;
addChild(btn3);

//2nd row//
var btn4:MovieClip = new dBtn();
btn4.x = btn1.x;
btn4.y = btn1.y+70;
addChild(btn4);

var btn5:MovieClip = new dBtn();
btn5.x = btn4.x+70;
btn5.y = btn4.y;
addChild(btn5);

var btn6:MovieClip = new dBtn();
btn6.x = btn5.x+70;
btn6.y = btn5.y;
addChild(btn6);

//3rd row//
var btn7:MovieClip = new dBtn();
btn7.x = btn4.x;
btn7.y = btn4.y+70;
addChild(btn7);

var btn8:MovieClip = new dBtn();
btn8.x = btn7.x+70;
btn8.y = btn7.y;
addChild(btn8);

var btn9:MovieClip = new dBtn();
btn9.x = btn8.x+70;
btn9.y = btn8.y;
addChild(btn9);

1 个答案:

答案 0 :(得分:0)

循环+简单的数学。

var buttonsList:Array = new Array;

for (var i:int = 0; i < 9; i++)
{
    // You can omit () with "new" operator if there are no arguments.
    var aBut:MovieClip = new dBtn;

    // Value of i % 3 goes 0 1 2 0 1 2 0 1 2.
    aBut.x = -210 + 70 * (i % 3);
    // Value of int(i / 3) goes 0 0 0 1 1 1 2 2 2.
    aBut.y = -90 + 70 * int(i / 3);

    addChild(aBut);
    buttonsList[i] = aBut;
}

然后,要解决其中的每一个,您可以分别使用0到8之间的索引:

// Make the central one semi-transparent.
buttonsList[4].alpha = 0.5;