FLASHのお勉強 ーアクションスクリプトの実践的事始めー

(62) SLOT(スロット)型 「おみくじ」
(actionscript 2.0) 2008/3/17

 サイトに「軽いお遊びを」と言う方向きに「スロット型おみくじ」の作成を勉強しようと思う。 大吉から大凶まで10種類の運勢が上から流れ落ちてくるのを、ボタン操作で止めて占うというもので、出てくる運勢の順番を変えていないので、タイミングを計ってクリックすると「大吉」で止められるというシンプルなものである。 運勢の数を増やしたり、スタートのつど順番をランダムに変えるなどの工夫を凝らせばもっと複雑なものとすることができよう。
 大吉で止まると、簡単なお祝いの図柄が出るようにしているが、このあたりも工夫次第である。
 (actionscript2.0で作成)
サンプル
      
<ステージの準備>
●150*150、48fps、背景色(好みで)のステージを設定
●画面中央上部に運勢表示用窓の矩形を描く
●表示用窓の中央に、ダイナミックテキストボックス(枠線なし、マルチライン)を配置(インスタンス名 msg)
●大吉で止まると表示する赤い星型の絵柄を表示窓に重ねて配置し、インスタンス名を
 atari とする
●表示窓の下に、丸型ボタンを二つ配置し、インスタンス名を start_btn、stop_btn とする
 この例では、サンプルライブラリーのbubbleボタンを使用
●運勢図柄を作成し、適当な順番で、unsei0からunsei9の10このシンボルに変換、同名でリンケージを設定
 ここでの順序は、大吉、末吉、小吉、大凶、吉、中吉、半凶、小吉、吉、凶
●表示窓と同じ大きさの矩形を作成、シンボルに変換し、maskをリンケージを設定
スクリプト(Script)シーン1_rootに

var un:Array = new Array();
var mask:Array = new Array();
var flag = 0;
atari._alpha =0;
msg.text = "あなたの\n運勢は?";
for (i=0; i<=9; i++) {
    un[i] = attachMovie("unsei"+i, "un"+i, i);
    un[i]._x = 50;
    un[i]._y = -50*i;
    mask[i] = attachMovie("mask", "mask"+i, 20+i);
    mask[i]._x = 25;
    mask[i]._y = 25;
    un[i].setMask(mask[i]);
}
start_btn.onPress = function() {
    msg.text = "";
    flag = 1;
    startB = 0;
    atari._alpha = 0;
};
stop_btn.onPress = function() {
    if (startB == 0) {
        flag = 2;
        startB++;
        for (h=0; h<=9; h++) {
            dy = un[h]._y-(un[h]._y+500)%50;
            un[h].targety = dy+350;
       }
    }
};
onEnterFrame = function () {
    if (flag == 1) {
        for (j=0; j<=9; j++) {
            un[j]._y += 8;
            if (un[j]._y>100) {
                un[j]._y -= 50*10;
            }
        }
    }
    if (flag == 2) {
        for (j=0; j<=9; j++) {
            un[j]._y += (un[j].targety-un[j]._y)/30;
            if (un[j]._y>450) {
                un[j]._y -= 50*10;
            }
            if (un[j].targety-un[j]._y<20) {
                if (un[0]._y>0 && un[0]._y<70) {
                    atari._alpha += (100-atari._alpha)/5;
                }
           }
        }
    }
}



ボタン操作認識用変数flagを定義
「大吉」背景図柄を消す

10個の運勢図柄をステージに読込み
50px間隔で縦に並べる

同じ数のマスクの矩形を表示窓の位置に配置


表示窓にきた図柄だけ見えるように
マスクをかける

startボタンがクリックされたら




stopボタンがクリックされたら
startBが0なら(stopボタンが2度クリックされても2度目は無視する)

各(10個の)図柄が止まるy座標を
targetyとして決める






もし、startボタンがクリックされたら
それぞれのy座標を増加(下に移動)

もし、y座標が100を超えたら500を引いて画面上の位置に戻す





もしstopボタンがクリックされたら
それぞれのtargetyで減速停止する

もし、表示窓のところに「大吉」が止まったら、atariのアルファを100に(表示)
HOME   お勉強総リスト