普通、携帯の待受画面には、自分で設定した「決まった画像」が表示されます。

「この画像が一番!」というように、お気に入りが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の前説明はここまでにして、

次回は早速、実際の作り方をお伝えしていきます。