画面上にランダムでムービークリップを登場させたい

解決済みの質問

画面上にランダムでムービークリップを登場させたい

3つのキャラクターを画面上にランダムで
(5秒間出て、20秒間画面に出ないでまた5秒間出るなど)
登場させたいのですが、どうすればいいのでしょうか?
よろしくお願いします。

投稿日時 - 2006-01-07 15:05:38

QNo.1880922

すぐに回答ほしいです

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

色んな方法があります。
どんな方法を使っても,避けられないのは Math.random() を使うことでしょう。
「Math.random() でランダムな整数を取得する方法」
http://www.macromedia.com/jp/support/flash/ts/documents/fl0173.html
これで,ランダムな数を用意して,ランダムな何かをさせるわけです。

Math.random() を使うこと以外の部分は,たくさんの方法があり,
コレ! という感じには定まりませんので一例を書いておきます。

大きな流れは,
ライブラリのムービークリップを,ランダムにステージ上に呼び出し,呼び出したムービークリップを消す。
これを繰り返す。
というパターンです。

まず3つのムービークリップを用意します。
ステージ上に3つのムービークリップを作ると,ライブラリパネルにもそのムービークリップが表示されます。
ライブラリパネルが表示されていない場合は,
「ウィンドウ」→「ライブラリ」にチェックを入れる でライブラリを表示させてください。

ライブラリの3つのムービークリップのうち1つを右クリックし,
右クリックの項目の中から 「リンケージ」 を選択します。
すると,「リンケージプロパティ」というダイアログが表示されると思うので,

リンケージ: □ActionScript に書き出し

にチェックを入れてください。
同時に, □最初のフレームに書き出し にもチェックが入ると思いますが,
とりあえずは,チェックが入ったそのままで良いです。
そして,その上の

識別子: [                 ]

となっている欄に,何か名前を付けてください。
アルファベット+1 という形が良いです。
ここの説明では,「chara1」 と付けておきます。
識別子を入力したら「OK」で閉じてください。
「リンケージとは?」
http://www.1art.jp/flash/le/lessona/lessona.htm

ライブラリの3つのムービークリップのうち残りの2つも同様の操作で,違う 識別子 を付けてください。
ここの説明では,2つ目のムービークリップには「chara2」,
3つ目のムービークリップには「chara3」と記入します。

これで,キャラクターの準備はOKです。
次は,このキャラクターをステージ上に登場させては消す部分のスクリプトの作成です。

>> (5秒間出て、20秒間画面に出ないでまた5秒間出るなど)

この時間制限が若干難しいですね。
時間制限が難しいと思ったら,タイムラインを使います。
せっかく Flash にはタイムラインというものがあるのですから,これに頼らないのはもったいないです。
だいたいそれが簡単に確実に行く方法です。

3つのキャラクターをステージ上に登場させては消す司令塔のようなムービークリップを作ります。
ムービークリップのタイムラインのフレームのスクリプトを使って,キャラクターの出し入れをします。

まず,ステージ上に透明な塗りで 5mm くらいのムービークリップを作ってください。
そのムービークリップの中の編集に入ります。
透明なムービークリップの中のタイムラインをフレームの挿入で,200フレームくらいにしてください(とりあえず適当で良いです)。

そして,タイムラインの フレーム1 のスクリプトとして以下のようなものを書きます。

-------------------------------------------
//変数 a に 1~3 の整数をランダムでセット
var a = Math.floor(Math.random()*3)+1;

// _root に 識別子 "chara"+a を
// "chara" というインスタンス名で 呼び出す
_root.attachMovie(["chara"+a], "chara", 0);

// "chara" の x座標とy座標を設定
_root.chara._x = 100;
_root.chara._y = 150;
-------------------------------------------

わかりますか?
Math.floor は,小数点以下を切り捨てると言うことです。
詳細は最初の「Math.random() でランダムな整数を取得する方法」を参考にしてください。

これで,変数 a に 1~3 の乱数が入りますから,
attachMovie で 識別子 "chara"+a つまり, "chara1" ~"chara3" のうち何れかがステージ上に呼び出されます。
attachMovie についての詳細は,2つめの「リンケージとは?」を参考にしてみてください。

これは,(x , y)=(100 , 150) という一定の場所に配置するパターンです。
場所もランダムが良ければ,こんな感じになります。

-------------------------------------------
var a = Math.floor(Math.random()*3)+1;
var b = Math.random()*Stage.width;
var c = Math.random()*Stage.height;
_root.attachMovie(["chara"+a], "chara", 0);
_root.chara._x = b;
_root.chara._y = c;
-------------------------------------------

変数 a~c にそれぞれ条件付きの乱数をセットして,
それぞれの場所に当てはめます。

ここまでで, _root にキャラクターを呼び出すまでが完成しました。
次に消す部分です。

この透明なムービークリップのタイムラインの フレーム60 をキーフレームにしてください。
その フレーム60 に次のようなスクリプトを書きます。

-------------------------------------------
// インスタンス名 chara のムービークリップを消す
_root.chara.removeMovieClip();
-------------------------------------------

以上です。

これでパブリッシュすると,ランダムなキャラクターがステージ上に出ては消えるものができます。
透明ムービークリップのフレーム数を 200 にしたり, フレーム60 に ムービークリップを消すスクリプトを入れていますが,
タイミングが悪いと思ったら,キーフレームの場所やフレーム数を変えてもらうと,好みのタイミングで出たり消えたりすると思います。


上記説明では,リンケージを使いましたが,
別に使わなくても良いわけで,
Math.floor(Math.random()*○) でランダムなフレームに飛んでも良いと思います。
色んな方法を考えてみてください。
一応上のものは Flash MX 以上ではできます(多分,Flash5 でもできると思います)。

投稿日時 - 2006-01-07 17:44:58

お礼

丁寧な回答ありがとうございます。
なんとか出来ました!
ほんと参考になりました。ありがとうございます。

投稿日時 - 2006-01-07 19:32:00

ANo.3

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

 flashを始めたばっかりで分からないことだらけだと思いますが、漠然と「分かりません」では残念ながら解答の方法がありません。T-T 「どこまで理解しているのか?」「具体的にどこが分からないのか?」というのを提示していただかないと・・・T-T

 とりあえずまったくの初心者ということを前提に説明しますと

0.本屋に行ってFlashの入門書を手に入れる
 1.Flashの簡単な使い方を覚える
 2.ActionScriptを覚える

 下記のURLも参考になるかと思いますのでご覧ください。始めたころは本当にどうしていいのか分からないと思いますが、やってみると楽しいものですよ。がんばってください。

参考URL:http://hfm-kenchan.com/index.html

投稿日時 - 2006-01-07 17:12:48

お礼

アドバイスありがとうございます。
時間がなかったので聞いてしまいました。
すみません。

投稿日時 - 2006-01-07 19:29:55

 mii10様が、どの程度知識があるのかわかりませんし、Flashのバージョンも解りませんが、ActionScriptを使えば簡単にできると思いますよ。

乱数で3つのキャラクタを選んで5秒間表示させて5秒だったら非表示にして20秒カウント....

とう手順でできますが・・・。
乱数については下記URLをご参考にしてください。

参考URL:http://www.macromedia.com/jp/support/flash/ts/documents/fl0173.html

投稿日時 - 2006-01-07 15:46:40

お礼

アドバイスありがとうございます。
バージョンは8で、flashは始めたばかりです。
URLを見たのですが、わかりませんでした・・すみません。

投稿日時 - 2006-01-07 16:10:58

あわせてチェックしたい
  • 画面上にランダムでムービークリップを登場させたい ...
  • ランダム配置のムービークリップが固定配置のムービーに被ってしまいます。 ...
  • Flashでムービークリップのランダム表示 ...
PR
【夫婦アンケート】バレンタインしてますか?[ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら