2017-08-14 6 views
0

Je ne suis pas si novice dans l'utilisation de Flash, mais je l'ai surtout utilisé pour faire des animations et je n'utilise pas beaucoup ActionScript mais cette fois je voulais essayer de faire des mises en page code.gérer la position de plusieurs MovieClips l'un par rapport à l'autre

J'essaie de positionner des clips vidéo carrés pour former un menu semblable à une grille. J'ai placé chacun des MovieClips dans le code, mais je pense qu'il y a peut-être une meilleure façon de le faire.

Le code est très basique mais je le posterai de toute façon afin que vous ayez une image de ce que j'essaie de faire ressembler. Je ne suis pas vraiment bon à expliquer, je m'en excuse.

//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); 

Répondre

0

Boucles + simple math.

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; 
} 

ensuite pour aborder chacun d'entre eux vous pouvez utiliser leurs indices de 0 à 8 respectivement:

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

Merci beaucoup pour cela. Y a-t-il un moyen de cibler chaque instance? J'aimerais ajouter un clip différent dans chacune des instances. – chb382

+0

@ chb382 Voir la réponse mise à jour. – Organis

+0

Je l'ai compris il y a quelques heures. Je pensais que l'utilisation d'un tableau était le moyen de le faire mais je ne savais pas encore comment le faire et après quelques recherches, je l'ai compris. Merci beaucoup pour votre aide. Je pense que je comprends beaucoup mieux maintenant. – chb382