• ベストアンサー
  • すぐに回答を!

フラッシュのASについて。

  • 質問No.1233137
  • 閲覧数46
  • ありがとう数2
  • 回答数1

お礼率 42% (9/21)

宜しくお願いいたします。
当方WINXP,FLASH MXを使用しています。

フラッシュを使用してHPを製作しております。
そのフラッシュコンテンツの中で、
読み込まれた時に一応ランダムに他のフレームに飛ぶように次のようなASを1フレーム目に置いています。

if (random(2) == 1) {
gotoAndPlay("m01");
} else {
gotoAndPlay("m02");
}

現状はランダムといっても二箇所のどちらかしか飛ばない内容になっています。

例えば現状は"m01"、"m02"、とありますが、その後には"m03""m04"と続くとして、"m01"、"m02"、"m03"、"m04"全てに対してランダムに飛ばすにはどういうASを書いたら良いのでしょうか。
飛び込みの用事なのですが、上のASを作った本人としばらく連絡取れない物ですから。

どうぞ宜しくお願いします。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 41% (1357/3236)

こんばんは。
ActionScriptを書かれるのならご存知でしょうが、

random関数は、ver5よりMath.randomになりました。
ただこいつは0から1までの間の乱数発生装置なので、こちらで整数にしてやる必要があります。
(数式の説明は省かせて頂きます。でも考えてみればなるほどね、という感じです)
Math.floorも使うと便利だと思います。

また条件式の中に関数を入れてしまうよりも、
先に宣言してしまった方が良いのではないかと思います。

つまり、

jump(任意です) = Math.floor(Math.random()*4)+1;

これで変数「jump」に1から4までの数字がランダムに発生します。

あとは条件式を整えるだけ。

if (random(2) == 1)
はいただけないので、
if (jump == 1)とします。

そして今はelseでつないでいますが、
これをelse ifに変更。

if (jump == 1){
gotoAndPlay("m01");
} else if (jump == 2){
gotoAndPlay("m02");
} else if........以下省略

これで行けるんじゃないですかね。

それにしてもrandomはver4までなんですけど、
もしかして携帯用だったりします?
その場合は確かにver4までだと聞いた事がある(作った事は無いです)ので、Math.randomじゃだめかも。

その場合は、
jump = random(4);
として、条件を0,1,2,3で取れば行けます。
お礼コメント
samejima

お礼率 42% (9/21)

大変参考になりました。
ありがとうございました。
投稿日時:2005/02/23 05:53
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ