解決済みの質問
色んな方法があります。
どんな方法を使っても,避けられないのは 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
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