D0812171 ランダムにMCをならべるスクリプトの記述
Name 信長
Date 2008年12月17日 (水) 01時59分
Message 9個程あるMCをランダムに並べられるようにしたいです。
そこで以下のようなスクリプトを記入しました。

bMax = 9;
bList = new Array();
bana = new Array();
for (i = 0; i < bMax; i++){
bList[i] = i;
}
for (n = 0; n < bMax; n++){
var len=bList.length-1;
Rndo = Math.floor(Math.random()*len);
bana[n] = bList[Rndo];
bList.splice(Rndo,1);
}

var num1=bana[0];
var num2=bana[1];
var num3=bana[2];
var num4=bana[3];
var num5=bana[4];
var num6=bana[5];
var num7=bana[6];
var num8=bana[7];
var num9=bana[8];

this["ba"+num1]._x=430;
this["ba"+num1]._y=-235;

this["ba"+num2]._x=430;
this["ba"+num3]._x=430;
this["ba"+num4]._x=430;
this["ba"+num5]._x=430;
this["ba"+num6]._x=430;
this["ba"+num7]._x=430;
this["ba"+num8]._x=430;
this["ba"+num9]._x=430;

this["ba"+num2]._y=this["ba"+num1]._y+this["ba"+num1]._height+8;
this["ba"+num3]._y=this["ba"+num2]._y+this["ba"+num2]._height+8;
this["ba"+num4]._y=this["ba"+num3]._y+this["ba"+num3]._height+8;
this["ba"+num5]._y=this["ba"+num4]._y+this["ba"+num4]._height+8;
this["ba"+num6]._y=this["ba"+num5]._y+this["ba"+num5]._height+8;
this["ba"+num7]._y=this["ba"+num6]._y+this["ba"+num6]._height+8;
this["ba"+num8]._y=this["ba"+num7]._y+this["ba"+num7]._height+8;
this["ba"+num9]._y=this["ba"+num8]._y+this["ba"+num8]._height+8;

this.gotoAndStop(2);

この状態ですと、9つあるMCのうちいくつかはランダムで表示されるのですが、
なぜか表示個数が3つだったり2つだったり全く安定しません。
なんとか全部ランダムに縦に並べられるようにしたいのですが、
どのようにすればいいでしょうか?
何卒よろしくお願いします。
Response 01
2008年12月17日 (水) 02時33分> 信長 
すいません、自己解決しました。
もっと良いやり方がありそうですが、
とりあえず現状これでよしとします。
お騒がせしました。
Response 02
2008年12月20日 (土) 00時35分> 憲ちゃん 
以下のようにすればよいと思います。

 bMax = 9;
 bList = new Array();
 for (i = 0; i < bMax; i++) {
   bList.push(i);
 }
 for (i = 0; i < bMax; i++) {
   Rnd = Math.floor(Math.random()*bList.length);
   mc = "ba"+bList[Rnd];
   this[mc]._x = 430;
   if (i != 0) {
     this[mc]._y = this[bmc]._y+this[bmc]._height+8;
   } else {
     this[mc]._y = -235;
   }
   bmc = mc;
   bList.splice(Rnd, 1);
 }
 this.gotoAndStop(2);

なお、このスクリプトは全角文字を多用していますので、ここでコピペして使用されますと
シンタックスエラーになります。
これを参考に、ご自分でスクリプトを打ち込んでください。

このページの先頭へ