2017-08-14 144 views
0

我對使用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); 

回答

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; 
+0

非常感謝你這一點。有沒有一種方法可以針對每個實例?我想在每個實例中添加一個不同的影片剪輯。 – chb382

+0

@ chb382查看已更新的答案。 – Organis

+0

我實際上在幾個小時前就知道了。我想通過一個數組來實現它,但我還不知道如何去做,經過一番搜索之後,我發現了它。非常感謝你的幫助。我想我現在對它的瞭解要好很多。 – chb382