普通、携帯の待受画面には、自分で設定した「決まった画像」が表示されます。
「この画像が一番!」というように、お気に入りが1枚だけならいいですが、
時には「これもいいけど、こっちもいいし、これも、これも好きなんだよね」という場合もあるはず。
というわけで今回は、「画像をランダムに表示する待受」をFlashを使って作ってみましょう。
これをマスターすれば、待受にしたい画像が複数あっても悩まずに済みますね!
▼今回使用するActionScript
Math.floor
Math.random
if
else if
gotoAndPlay()
gotoAndStop()
▼記述するコード
# メインタイムライン-フレーム2
rand = Math.floor(Math.random() * 6);
if(rand == 0){
gotoAndPlay(1);
}else if(rand == 1){
gotoAndStop(3);
}else if(rand == 2){
gotoAndStop(4);
}else if(rand == 3){
gotoAndStop(5);
}else if(rand == 4){
gotoAndStop(6);
}else if(rand == 5){
gotoAndStop(7);
}
(※ただし、ランダム表示させる画像が5枚の時)
▼記述コードの説明
-------------------------------
rand = Math.floor(Math.random() * 6);
-------------------------------
*rand
任意の変数です。
決まった名前ではないので、「rand」ではなく他の好きな文字列を設定してOKです。
画像をランダムに表示するための条件値を、変数で設定します。
*Math.floor
小数を整数に直します。
例)
rand = Math.floor(1.33) > 「rand」には「1」が入ります。
rand = Math.floor(3.14159265357686) > 「rand」には「3」が入ります。
*(Math.random() * 6)
「Math.random」で、「0以上1未満の浮動小数」を取得します。
さらにその結果に「6」を乗算(かけ算)します。
どうして「6」を乗算するの?という説明をしていくと、ちょっと細かいお話になってきちゃうので今回は省略します。
単純に、「ランダム表示させたい画像の数+1」を乗算すればいいんだ、と思っていただいてOKです。
今回のサンプルでは、5枚の画像をランダム表示させますので、「5+1」で「6」を乗算するという具合です。
※参考
「浮動小数」って何?という方のために、浮動小数をすごく分かりやすく言い換えると、
「何桁か決まってないなんか適当な少数」となるでしょうか。
「0.1」かもしれませんし「0.3561」かもしれませんし、「0.000000001」かもしれません。
要するに、0~1の間の「すべての数値」というわけです。なんとなく便利な小数ですね。(そうか?)
-------------------------------
if(rand == 0){
gotoAndPlay(1);
}else if(rand == 1){
gotoAndStop(3);
}
(・・・以下省略・・・)
-------------------------------
*if(rand == 0)
()の中の条件式の結果が「true」ならば、その後に続く、{ }の中身を実行します。
今回の場合、もし「rand」が「0」だったら、その後に続く、「gotoAndPlay(1)」が実行されます。
ここでひとつ注意しなければならないのが、「==」の使い方です。
「==」は、「数値の比較」でのみ使用します。(※FlashLiteのバージョンによってはこの限りではありません)
「文字列の比較」を行いたい時は、「eq」を使います。
今回は、「rand」には数値しか入りませんので、「==」を使って比較するというわけです。
※参考
ActionScriptなどを勉強していると、「この条件式がtrueなら」とか「falseなら」とかと書いてあるのをよく目にします。
「true」とはつまり、「条件式が成り立つ場合」です。
反対に、「false」は、「条件式が成り立たない場合」を意味します。
例えば、仮にゆかりさんの好きな食べ物が「四川風 旬の素材を使ったヘルシー担々麺」だったとします。
そして嫌いな食べ物が「生ゴーヤのサラダ」だったとします。
それを踏まえて、以下の条件式を見てみましょう。
if( ゆかりさんの好きなたべもの eq "四川風 旬の素材を使ったヘルシー担々麺")
この条件式の結果は「true」です。
ゆかりさんの好きな食べ物は「四川風 旬の素材を使ったヘルシー担々麺」です。間違ってません。
では、この場合は?
if( ゆかりさんの好きなたべもの eq "生ゴーヤのサラダ")
条件式の結果は「false」です。
ゆかりさんは「生ゴーヤのサラダ」が嫌いです。好きじゃありません。苦い!ゴーヤ苦いよ!と怒られます。
*else if(rand == 1)
「else if」は、「if」と一緒に使います。
ifで指定した条件に当てはまらなかった場合(条件式の結果が「false」だった場合)は、
続いてのelse ifで指定されている条件式が判断されます。
上に書きましたが、今回の場合はまず「if(rand == 0)」が判断されます。
「rand」が「0」じゃなかった時に、次の条件「else if(rand == 1)」が判断されます。
以降も同様に、
「rand」が「1」じゃなかったら「else if(rand == 2)」、
「rand」が「2」じゃなかったら「else if(rand == 3)」、というように判断していきます。
判断の結果が正しければ(「rand」が「1」だった、など)、その後に続く、{ }の中身を実行します。
*gotoAndPlay()
*gotoAndStop()
()の中に入っている「フレーム数」まで移動しろ!という命令文です。
gotoAndPlay(1)
ならば、「フレーム1」に移動して、「Play」ですから、「再生」します。
gotoAndStop(2)
ならば、「フレーム2」に移動して、「Stop」ですから、「停止」します。
小難しいActionScriptの前説明はここまでにして、
次回は早速、実際の作り方をお伝えしていきます。