アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めまして。
FLASH初心者ですので初歩的な質問かもしれませんが、わかる方がいらっしゃいましたら宜しくお願いします。

FLASHムービー終了後、geturlで他のページへジャンプし、その際複数のURLの中からランダムでジャンプするように設定したいのですが、その方法がわからず行き詰まっています。
宜しくお願いします!

A 回答 (2件)

最後のフレーム(1)を少し伸ばして、伸ばしたフレーム毎にキーフレーム(2)~(n)を作り、そこにフレームアクションでgeturlをそれぞれ配置します。

そしてフレーム(2)~(n)に名前を付け、フレーム(1)にMath.floor(Math.random()*10)で、フレーム(2)~(n)に飛ぶようにされてはどうですか?

少し面倒ですが。
    • good
    • 1
この回答へのお礼

ありがとうございます!
早速やってみようと思います。
その前にMath.randomを使った事が無いので、チャレンジしてみます。
今度はMath.randomの件で質問させて頂くかもしれませんが、宜しくお願いします。

ありがとうございました!

お礼日時:2006/03/20 17:23

なるほど,#1さん考えましたね,


そういう手もありますね?
しかし,確かに少し面倒すぎるかと…… ・ ・ ・
「東京→大阪」 に 「東京→グアム→大阪」 と海外を経由しているような…
(スミマセン,口が悪い物で...m(_ _"m)ペコリ )


私だったら,
FLASHムービー終了後,最終フレームに次のように書くと思います。という例です。

-------------------------------------
// 取りあえずストップ
stop();

// 変数 url0~9 に URL を登録
url0 = "http://www.google.co.jp/";
url1 = "http://www.yahoo.co.jp/";
url2 = "http://www.goo.ne.jp/";
url3 = "http://search.msn.co.jp/";
url4 = "http://ask.jp/";
url5 = "http://www.infoseek.co.jp/";
url6 = "http://www.altavista.com/";
url7 = "http://verno.ueda.info.waseda.ac.jp/";
url8 = "http://www.fresheye.com/";
url9 = "http://search.biglobe.ne.jp/";

// 変数 n にランダムな 0~9 (10個) までの数を代入
n = Math.floor(Math.random()*10);

// url0~9 のどれかの URL に getURL
getURL(this["url"+n]);
-------------------------------------

配列は使っていませんが,ほとんど配列のようなものです。
ジャンプ先を別窓にしたいときは,最後の行を

getURL(this["url"+n], "_blank");

にしてください。


上のようなスクリプトにすると,if文の分岐は不要になり,
URL を変えたいときも手間があまりかかりません。

他にも色々な方法がありますが,
結局,#1の方の書かれている通り

 Math.floor(Math.random()*10);

か,それの変形は使うことにはなると思います。

Math.floor(Math.random()) の詳細は
こちらを参考に↓。
「Math.random() でランダムな整数を取得する方法」
http://www.macromedia.com/jp/support/flash/ts/do …


次に,[ ] についてです。
getURL(this["url"+n]); の [ ]  は「配列アクセス演算子」と呼ばれるもので,
配列でなくても,変数名を動的に変えることができるので,便利で重宝します。
なかなか,簡単で良い説明をされているサイトが見つかりませんでしたが,
一応参考URL
「ドット演算子と配列アクセス演算子」
http://www.fumiononaka.com/TechNotes/Flash/FN050 …



上のスクリプトの場合,

 // 変数 n にランダムな 0~9 (10個) までの数を代入
 n = Math.floor(Math.random()*10);

これで n という勝手に作った変数に 0~9 までのどれかの数がランダムで代入されます。
次に,

 // url0~9 のどれかの URL に getURL
 getURL(this["url"+n]);

ですが,
もし,上のランダムの部分で n に例えば 7 という数が代入されたとしたら,

 getURL(this["url"+7]);

ということになり,
さらにつまり,

 getURL(this.url7);

ということになるわけです。
this.url7 の値は,「http://verno.ueda.info.waseda.ac.jp/
ですから,この URL にジャンプします。



===============================

配列アクセス演算子 を使わず,
if文 を使われるのでしたら次のようになると思います。


-------------------------------------
// 取りあえずストップ
stop();

// 変数 n にランダムな 0~9 までの数を代入
n = Math.floor(Math.random()*10);

if (n == 0) {
getURL("http://www.google.co.jp/");
} else if (n == 1) {
getURL("http://www.yahoo.co.jp/");
} else if (n == 2) {
getURL("http://www.goo.ne.jp/");
} else if (n == 3) {
getURL("http://search.msn.co.jp/");
} else if (n == 4) {
getURL("http://ask.jp/");
} else if (n == 5) {
getURL("http://www.infoseek.co.jp/");
} else if (n == 6) {
getURL("http://www.altavista.com/");
} else if (n == 7) {
getURL("http://verno.ueda.info.waseda.ac.jp/");
} else if (n == 8) {
getURL("http://www.fresheye.com/");
} else if (n == 9) {
getURL("http://search.biglobe.ne.jp/");
}
-------------------------------------

というわけです。
    • good
    • 0
この回答へのお礼

sassakunさん、ありがとうございます!
上記のスクリプトで問題解決できました!!
本当にありがとうございます!!

お礼日時:2006/03/22 14:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!