前回作った回るメニューの動きで、マウスが乗っていいないときの動きがさみしかったので、前回作成したものをステージにマウスが乗っていないときにランダムで切り替わるようにしました。
処理自体はとくに難しいところはなく、flag1という変数を作って判定しています。ちなみにステージの外に出たかどうかの判定は MOUSE_LEAVEという便利なイベントがあったので、それを使っています。
stage.addEventListener(Event.MOUSE_LEAVE, onMLeave);
前に発生させた乱数と同じ数値を出さないようにする方法
ここでちょっとした問題が発生。乱数を使って次に表示する花を選んでいるわけだが、この乱数が前の数値を同じであると、その花が通常の2秒プラス2秒で4秒表示しているかのうように見える。このため、一瞬FLASHが停止したかのようにも見える。
これを改善するために前の数値で発生した乱数と、次に発生した乱数が一致しないようにスクリプトを少し修正した。↓がその一文。
var regNum:int=clickedNum;//ひとつ前の数を残しておくための変数
//前の数値と乱数でいま発生した数値が一致するかの判定はdo-whileの繰り返し分を使う。
//doは必ず一度処理する部分 whileは繰り返すか繰り返さないか判定を行う部分
//do{ 必ず一度処理する部分 }while(この条件式が正ならば繰り返し)
do {
clickedNum=int(Math.random()*12);//乱数を発生させ、値を代入する
} while ( clickedNum == regNum);//ひとつ前と同じか判定する
}
この同じ乱数を発生させない方法は他のところにも利用できそうだ。






コメントのRSSを取得する · トラックバック