2017-08-14 14 views
0

私はFlashを初めて使う人ではありませんが、アニメーションの作成にはほとんど使用しましたが、実際にはActionScriptを多用しませんでしたが、今回はレイアウトをコード。複数のムービークリップのお互いの位置を扱う

私はグリッドのようなメニューを形成するために正方形のムービークリップを配置しようとしています。 私はムービークリップのそれぞれをコード内に配置しましたが、おそらくこれを行うためのより効率的な方法があると思います。

コードは非常に基本的ですが、とにかく投稿するので、私はそれを見せるようにしようとしています。私は本当に説明していないので、私は謝罪します。

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

ループ+単純な数学。そして、あなたは、それぞれ0から8までそのインデックスを使用することができ、それらの一つ一つに対処する

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

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

はこのためにありがとうございました。それぞれのインスタンスをターゲットにする方法はありますか?私はそれぞれのインスタンスの中に別のムービークリップを追加したいと思います。 – chb382

+0

@ chb382更新された回答を参照してください。 – Organis

+0

ほんの数時間前に私は実際にそれを理解しました。私は配列を使ってそれを行う方法だと思ったが、私はまだそれを行う方法を知らなかったし、いくつかの検索の後、私はそれを考え出した。助けてくれてありがとう。私は今それをもっとよく理解していると思う。 – chb382

関連する問題