ランダムで御神籤
ムービークリップのシンボルを作成し、1フレーム目にキーフレームをうち、カードの裏側をつくる。
2から7フレーム目にもひとつずつキーフレームをうち、
それぞれ「大吉」「中吉」...と6種類のカードを作成し、1フレーム目にstopのアクションをつける。
裏側のときだけクリックできるように、1フレーム目のカード絵柄を選択し、
シンボルに変換でボタンにしてから下記スクリプトを書込む。
on (release) {
myNum = Math.floor (Math.random ()*6)+2;
2から7までの整数の乱数をmyNumとして生成
gotoAndStop (myNum);
乱数で生成された数(myNum)のフレームへジャンプ(goto)してストップ(stop)
つまり、2から7フレーム目のいずれかにジャンプして待つ。
}
このままではそれぞれ6分の1で抽選しているため同じカードが出る。
配列の値を参照し、1回使用した値をメソッド(splice)で処理する。
配列(値の器) としてステージに新規レイヤーを作り、1フレーム目に下記スクリプトを書込む
randomlist=new Array(2,3,4,5,6,7);
「new Array」によって「(2,3,4,5,6,7)」という値の配列を生成し
「randomlist」という名前に定義する
カードのシンボルを編集状態にし、1フレーム目に配置してある裏側の図柄のボタンを選択して以下のスクリプトを書込む
on (release) {
pos = Math.floor (Math.random ()*_parent.randomlist.length);
「Math.floor (Math.random ())」によって「pos」という名前の乱数を発生させる
「_parent.randomlist.length」の「_parent」はこのスクリプトが書き込まれているボタンからみて
親の階層であるステージ(さきほど書込んだスクリプトのある場所を指定するパス、jを指定するパス、
「randomlist」は上記の新規レイヤーで設定した配列、「length」は「[]」内にある値の個数を表す。
つまり「(2,3,4,5,6,7)」内にのこっている値の個数を出す
myNum=_parent.randomlist[pos];
親の階層であるステージ(_parent)にある「randomlist」のなかのpos番目の値を変数「myNum」に代入する
※pos番目→posの値が「3」だとすると、「配列(2,3,4,5,6,7)」のなかの「4」
_parent.randomlist.splice(pos,1);
親の階層であるステージ(_parent)にある「randomlist」の配列から、
「splice」によってpos番目の値を1つ消す (pos,1)
gotoAndStop (myNum);
変数「myNum」目のフレームにジャンプして待つ
}