トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ランダムに関する質問です
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nonbirino
Åê¹ÆNo.12647
投稿日時: 2004-11-24 21:22
新米
居住地:
投稿: 3
使用環境:
WinXP,Flash MX2004
ランダムに関する質問です
はじめまして。
超初心者でフラッシュファイルを作成中ですが、
「ランダム」のアクションスクリプトに関して
わからないことがあり、質問させてください。

ボタンをクリックするたびに、同じシーンに配置した
ムービークリップをランダムなフレームで再生
させたいのですが、スクリプトがわかりません。

現在ボタンには

on (press) {

//Movieclip GotoAndPlay Behavior
_root.mc.gotoAndPlay("mcx");
//End Behavior

}

というスクリプトを記入しています。

「mc」がムービークリップのインスタンス名、
「mcx」をランダムにしたいのです。

ムービークリップ「mc」には
フレーム名を五つ付け、それぞれ
違ったイラストを配置しています。
それぞれのフレームが再生されると、
最後にはステージに何も配置していない
フレームに「GoToAndStop」するように指定しています。
つまり「ボタンを押すたびにランダムにイラストが
表示されて消える」というのをつくりたいのですが。

使用しているのはMXです。

一応、検索かけてみましたが、見当たりませんでした。
もし、同様の質問と回答がありましたら、
そのページを教えていただければありがたいです。
どなたかお手すきのときによろしくお願いいたします。

永井勝則
Åê¹ÆNo.12648
投稿日時: 2004-11-24 21:45
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: ランダムに関する質問です
永井勝則です。
お使いの環境はプロフィールに記入してください。

ご質問の件ですが、複合技になりますので、分けることが必要になります。
1)ランダムな数値を得る。この場合、ラベル名が5個あるようですので、1から5の数をランダムに得るというのがよいかと思います。ランダムな数値は、Math.rondom()で発生させます。
2)得た数値が1の場合は、”ラベル名1”に行き、2の場合は”ラベル名2”に行き・・・というif文による条件分岐を使います。"mcx"が何を指しているのか分かりませんが、gotoAndPlay()の行き先には"ラベル名1から5のどれか"が入ります。

とまぁ、辞書や参考書などを見ながらやってみてください。なかなか一発ではうまくいきませんので、そうしたら、ここまでできたけど、ここからどうするの? などとここで聞くと、たぶんどなたかが答えてくれます。

追加)ラベル名を配列に入れて、そのインデックス番号をランダムで得て、そこへ飛ばす、という方法もあります。これだと上記1、2より短いスクリプトですみます。
でも、初めはこまめにひとつずつ理解しながら進めるのが、後々のためによいかと思います。


----------------
永井勝則:
himco.jp :

nonbirino
Åê¹ÆNo.12649
投稿日時: 2004-11-24 22:17
新米
居住地:
投稿: 3
使用環境:
WinXP,Flash MX2004
Re: ランダムに関する質問です
永井さま、早速返信ありがとうございます。

「mcx」は仮のフレーム名です。
返信を読みながら、いろいろとやってみます。
とりあえず、

ムービークリップのフレームに「mc0」?「mc5」と名前をつけ、
Math.rondom()で0?5をランダムに変える、という方法はどうでしょう?

on (press) {

//Movieclip GotoAndPlay Behavior
_root.mc.gotoAndPlay("mcx");
//End Behavior

}

でいうと、

mcx=mc+x
x=Math.random()*6);

というようなことにならないでしょうか?

上の式は適当なのですが(一応試してみましたがもちろんエラーです)
このような感じでスクリプトはできないでしょうか?

よろしくお願いいたします。
旭日ゆうほ
Åê¹ÆNo.12650
投稿日時: 2004-11-24 22:31
Bak@Fla名人
居住地: 心は岡山
投稿: 91
使用環境:
Windows Vista Home Premium
Flash MX2004 v7.2
Flex2 SDK
Flex3 SDK
FlashDevelop3.0.0 Beta7
Re: ランダムに関する質問です
こんにちは

文字列を扱うなら、「"」で囲えばできます。

mcx = "mc" + x;


しかし、気をつけなければならないのは、
Math.random()では、綺麗な整数はでないので、

x = Math.floor(Math.random()*6);

とすれば0?5のランダムな整数が得られます。


----------------
旭日ゆうほ
swf置いてます。AM902

永井勝則
Åê¹ÆNo.12654
投稿日時: 2004-11-25 0:43
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: ランダムに関する質問です
永井勝則です。
nonbirinoさん+旭日ゆうほさん案で、
x = Math.floor(Math.random()*6);
trace(x);
tLabel = "mc"+x;
trace(tLabel);
trace(typeof (tLabel));

でできます。

ただしnonbirinoさんが”超初心者”で、たとえばスクリプト1行めが何をやっているか分からない、とかいうことでしたら、ひとつずつ変数に入れて、それをtrace()して確認するとよいです。また、if文をやったことがない、ということでしたら、上に書いた方法も試してみてください。


----------------
永井勝則:
himco.jp :

nonbirino
Åê¹ÆNo.12657
投稿日時: 2004-11-25 2:06
新米
居住地:
投稿: 3
使用環境:
WinXP,Flash MX2004
Re: ランダムに関する質問です
永井さま、旭日ゆうほさま、たいへんありがとうございます。
無事に動きました!

スクリプトの個々の意味はよくわからない部分もありますが、
これからいろいろと勉強していきます。

それにしても、このフォーラムはとても助かりますね。
また質問することがあるかもしれませんが、そのときは
よろしくお願いいたします。
pekori.....
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops