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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     二つのランダム表示を一緒のタイミングにすることは…?
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ktm0_0
Åê¹ÆNo.10739
投稿日時: 2004-9-12 10:57
新米
居住地:
投稿: 19
使用環境:
Flash MX2004
二つのランダム表示を一緒のタイミングにすることは…?
以前動くボタンやジグソーパズルについて質問させていただいたときにいろいろアドバイスを頂き、ありがとうございました。
自分なりに調べたのですがわからないのでまたアドバイスを頂きたくここにきました。
どうぞよろしくお願いします。

今二つのムービークリップ(a_mcとb_mc)をつくっていて、
そのa_mcには赤、青、黄色と3つを描きそのそれぞれにラベルを
no1、no2、no3とつけました。
そしてそれぞれに下のアクションをいれました。

n = Math.floor(Math.random()*3)+1;
this.gotoAndPlay("no"+n);

b_mcも同様にアクションをいれ、こちらには1,2,3を表示するというものを描きました。

それぞれを再生するとランダムにちゃんと動いてくれるのですが、
このランダムに表示させる物をa_mcで赤のときb_mcでは1を表示させるといった
二つのムービークリップの中の物を対応させランダムに表示させることはできるのでしょうか?

またつたない文章で申し訳ございません

野中文雄
Åê¹ÆNo.10740
投稿日時: 2004-9-12 11:11
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 二つのランダム表示を一緒のタイミングにすることは…?
以下のスクリプトは、ムービークリップのどのアクション(フレームアクションかMoiveClipアクションか、前者ならそのフレーム位置)として設定したのでしょうか?
引用:
ktm0_0さんは書きました:
今二つのムービークリップ(a_mcとb_mc)をつくっていて、
そのa_mcには赤、青、黄色と3つを描きそのそれぞれにラベルを
no1、no2、no3とつけました。
そしてそれぞれに下のアクションをいれました。

取りあえず、ムービークリップの第1フレームアクションと「仮定」します。
// _root: メインのタイムライン
// ふたつのMovieClipインスタンスを配置したフレームアクション
n = Math.floor(Math.random()*3)+1;

// MovieClip: _root.a_mc
// 第1フレームアクション
this.gotoAndPlay("no"+_root.n);

引用:
b_mcも同様にアクションをいれ、こちらには1,2,3を表示するというものを描きました。

それぞれを再生するとランダムにちゃんと動いてくれるのですが、
このランダムに表示させる物をa_mcで赤のときb_mcでは1を表示させるといった
二つのムービークリップの中の物を対応させランダムに表示させることはできるのでしょうか?


----------------
 

ktm0_0
Åê¹ÆNo.10794
投稿日時: 2004-9-15 0:24
新米
居住地:
投稿: 19
使用環境:
Flash MX2004
Re: 二つのランダム表示を一緒のタイミングにすることは…?
返答ありがとうございます。
アクションはムービークリップ内のフレームアクションとして、赤、青、黄色のそれぞれの最後のフレームに配置してます。
b_mcも同様にフレームアクションとして配置してます。

返答いただいたのにその内容が飲み込めず失礼な質問になってしまってるのは重々承知してるのですが…
// _root: メインのタイムライン
// ふたつのMovieClipインスタンスを配置したフレームアクション
n = Math.floor(Math.random()*3)+1;
//  MovieClip: _root.a_mc

は、二つのムービークリップを貼り付けているメインのタイムラインのフレームアクションとしてかき、
それぞれのa_mc内b_mc内のフレームアクションとして以下を書くのでしょうか?

// 第1フレームアクション
this.gotoAndPlay("no"+_root.n);


失礼な質問で申し訳ございません。
自分の馬鹿さ加減にあきれてしまうのですがどうぞよろしくお願いします
野中文雄
Åê¹ÆNo.10797
投稿日時: 2004-9-15 2:57
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 二つのランダム表示を一緒のタイミングにすることは…?
とくに「失礼な質問」ではありません。 おわかりにならない点は、明確にされた方がよいでしょう。ただ、どこまで理解されたかというご説明をされると、より適切な回答が可能になります。

直接以下のご質問に、答えを示すことは簡単です。でも、なぜ_rootをつけるのか、おわかりになりますか? たとえば、初心者マークの運転手の隣で、「そこでブレーキを踏んで!」といった指示をいくらしても、ドライブの腕は上達しません。「理由」がわからなければ、次回に活かせないからです。

ターゲットパス」や「変数」について復習し、「なぜ_rootをつけるのか」という理由を考えてください。ヒントは、_rootつまりメインタイムラインが、基本的にムービー中にひとつしか存在しないということです。そして、変数はタイムラインにメモリされます。
引用:
ktm0_0さんは書きました:
返答いただいたのにその内容が飲み込めず失礼な質問になってしまってるのは重々承知してるのですが…

理解をするためには、試してみることも大切です。ただし、結果としてただ「うまくいった」「うまくいかない」で済まさず、なぜそういう結果になったのかを考えるようにしましょう。
引用:
// _root: メインのタイムライン
// ふたつのMovieClipインスタンスを配置したフレームアクション
n = Math.floor(Math.random()*3)+1;
//  MovieClip: _root.a_mc

は、二つのムービークリップを貼り付けているメインのタイムラインのフレームアクションとしてかき、
それぞれのa_mc内b_mc内のフレームアクションとして以下を書くのでしょうか?

// 第1フレームアクション
this.gotoAndPlay("no"+_root.n);


----------------
 

ktm0_0
Åê¹ÆNo.10861
投稿日時: 2004-9-16 22:32
新米
居住地:
投稿: 19
使用環境:
Flash MX2004
Re: 二つのランダム表示を一緒のタイミングにすることは…?
野中様たびたびありがとうございますっ!!!!

自分の中では_rootをなぜつけるのかは理解しているつもりでしたが、
ちょっと曖昧に理解しているところがあるため、どのように使うのかをまた本とみて学習し直している最中でございます…☆

また厚かましいのも承知でもう一つ質問させてくださいっ(>_<)
2つのムービークリップをランダムにして組になった物を表示させることはできたですが、同じ物が繰り返し表示されてしまうのです。
a_mcとb_mcのなかにフレームアクションとしてアクションを入れていたときは3つの赤、青、黄色がランダムにずっと表示されていたのですが
_rootを使い二つのa_mcとb_mcのランダムのタイミングを一緒にしたことによって例えば赤だけしかでてこないというふうになったしまったのです。
これはまだ私が_rootの使い方や
n = Math.floor(Math.random()*3)+1;
の使い方が間違っているためなのでしょうか?
それぞれの赤などのフレームの最後にstopアクションは入れていないのですが。

文がうまくかけなくて申し訳ございません。
またアドバイスをいただけたらうれしいです。おねがいします。

野中文雄
Åê¹ÆNo.10868
投稿日時: 2004-9-17 6:22
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 二つのランダム表示を一緒のタイミングにすることは…?
「同じ物」の表示される「頻度」が高いということですか? それとも、それが「常に」表示されるということでしょうか?
引用:
ktm0_0さんは書きました:
2つのムービークリップをランダムにして組になった物を表示させることはできたですが、同じ物が繰り返し表示されてしまうのです。

原因を云々する前に、まず今何が起きているのかを、はっきりさせましょう。つまり、「問題の絞込み」です。

ランダムになるべき変数nの値自体がランダムでないのか。nがランダムであるにもかかわらず、this.gotoAndPlay("no"+_root.n)で特定のフレームに移動してしまうのか。あるいは、それ以外の処理が、意図したとおりに流れていないのかという点です。

ランダムな(はずの)値を代入した直後の変数nや、フレーム移動する直前の("no"+_root.n)の値を、trace()ステートメントで出力してみるとよいでしょう。
引用:
_rootを使い二つのa_mcとb_mcのランダムのタイミングを一緒にしたことによって例えば赤だけしかでてこないというふうになったしまったのです。
これはまだ私が_rootの使い方や
n = Math.floor(Math.random()*3)+1;
の使い方が間違っているためなのでしょうか?


----------------
 

ktm0_0
Åê¹ÆNo.11037
投稿日時: 2004-9-22 19:01
新米
居住地:
投稿: 19
使用環境:
Flash MX2004
Re: 二つのランダム表示を一緒のタイミングにすることは…?
野中様
せっかくお返答を頂いたのに返事が遅くなってしまってすいませんm(_ _)m
今はランダムに表示させれるのは「常に」同じ物がでてくる状況であります。
いろいろ書き換えたりしてはみてるんですが
a_mcで赤だったら、b_mcで1や黄色だったら2といった対応した物は表示できるようにはなってるのですが、
ムービークリップを再生した時に最初に赤と1がでてきたらこれしか表示されない状況で他の黄色などは表示されないのでございます。

やはり_rootの使い方や
n = Math.floor(Math.random()*3)+1
の使い方が理解し切れてない上に間違っているのだと思う次第でございます……

また自分なりにtraceを使ってみたのですが使い方がちょっと理解できず間違っているのだと思いますが、
出力パネルにはundefinedとnunなどと表示されてしまいました…。

勉強不足が今回の結果であるのを身にしみてます…
FLASHはむずかしいですね…
野中文雄
Åê¹ÆNo.11044
投稿日時: 2004-9-23 3:09
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 二つのランダム表示を一緒のタイミングにすることは…?
スクリプトに誤りがあると「推測」されます。
引用:
ktm0_0さんは書きました:
ムービークリップを再生した時に最初に赤と1がでてきたらこれしか表示されない状況で他の黄色などは表示されないのでございます。

そうかもしれません。具体的に何をどうされたのかご説明がありませんので、それ以上申し上げることは困難です。以下のステートメント自体は、1から3までのランダムな値が算出されて、変数nに代入されると思います。
引用:
やはり_rootの使い方や
n = Math.floor(Math.random()*3)+1
の使い方が理解し切れてない上に間違っているのだと思う次第でございます……

具体的にどこで何をどうtrace()されたのかわかりかねますので、間違っているのかどうか、間違っているとしてそれが具体的にどこかはコメントできません。

「ターゲットパス」を誤っている可能性が高いように「推測」されます。前の回答でご紹介したリンクのドキュメントはお読みになりましたか?
引用:
また自分なりにtraceを使ってみたのですが使い方がちょっと理解できず間違っているのだと思いますが、

trace()ステートメントの対象となる変数やインスタンスが存在しないか、値が設定されていないときundefinedが出力されます。その変数に対して数値演算を行うと、値はNaNになります。
引用:
出力パネルにはundefinedとnunなどと表示されてしまいました…。

どんな名医をもってしても、具体的な症状を伝えずに「風邪でしょうか?」と尋ねるだけでは診断はできません。


----------------
 

ktm0_0
Åê¹ÆNo.11214
投稿日時: 2004-10-1 1:40
新米
居住地:
投稿: 19
使用環境:
Flash MX2004
Re: 二つのランダム表示を一緒のタイミングにすることは…?
野中様
たびたびお返答頂き本当に本当にありがとうございます!!!!!

いろいろ書き換えてみたのですができなくて…もうわけわからなくなってしまってそのまま書き込みをしてしまったので、
書き込んだ内容もわけわからないものとなってしまってました。
すいませんでした。

今までの状況ではメインのタイムラインにa_mcとb_mcがおいてあり、そのメインタイムラインにフレームアクションとして
n = Math.floor(Math.random()*3)+1
をいれており、
a_mc内のラベルno1に赤、no2に青、no3に黄、b_mcはno1に1,no2に2,no3に3というアニメーションが入ってます。
そしてそれぞれのアニメーションのフレームアクションとして
this.gotoAndPlay("no"+_root.n);
を入れていました。その結果以前書いたように一番最初に
ランダムと指定されたものが繰り返しでてしまうという状況でした。
そして教えて頂いたtrace()を使ってみようと思ったのですが使い方が理解できず……。

そして自分なりに考えて、a_mcのなかに
n = Math.floor(Math.random()*3)+1;
this.gotoAndPlay("no"+n);
とフレームアクションを書き、b_mcのなかに
this.gotoAndPlay("no"+_parent.a_mc.n);
とかいてみました。
そしたらランダムに次々と表示されるようになったのですが、2回目に出てくる物からb_mcが遅れて表示されてしまうのです。

ランダム関数として3→2→3とされたときにa_mcではそのまま3→2→3の順番に表示されるのですがb_mcでは3→3→2→3と1番目を2回表示してからになってしまうのです。
フレーム数は同じにしてあるのでずれてしまっているということはないとはおもうのですが…
これは一回メインに戻ってからb_mcへときているからのでしょうか?
やはり書き方の問題なのでしょうか?

文がうまくかけなくてたびたび指摘を受けているのですが、
今回もかけていなくて本当にすいません。
どうかアドバイスをいただきたいです…。
野中文雄
Åê¹ÆNo.11216
投稿日時: 2004-10-1 1:58
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 二つのランダム表示を一緒のタイミングにすることは…?
trace()ステートメントの使用方法は、ぜひとも理解すべきだと思います。この使い方をわからずにスクリプトを作成しようとするのは、メーターの見方を理解せずに車を運転するのと同じです。ご自分の運転する車のスピードも、ガスの残りも知らずに、ドライブを続ける結果になります。

trace()の使い方をどのように(ご自分なりに)理解され、どこにどのように記述して、どういう結果だったのですか?
引用:
ktm0_0さんは書きました:
今までの状況ではメインのタイムラインにa_mcとb_mcがおいてあり、そのメインタイムラインにフレームアクションとして
n = Math.floor(Math.random()*3)+1

をいれており、
a_mc内のラベルno1に赤、no2に青、no3に黄、b_mcはno1に1,no2に2,no3に3というアニメーションが入ってます。
そしてそれぞれのアニメーションのフレームアクションとして
this.gotoAndPlay("no"+_root.n);

を入れていました。その結果以前書いたように一番最初に
ランダムと指定されたものが繰り返しでてしまうという状況でした。
そして教えて頂いたtrace()を使ってみようと思ったのですが使い方が理解できず……。

おそらく、b_mcのスクリプトの方が、a_mcのスクリプトより、先に処理されているのでしょう。しかし、それもtrace()ステートメントが使えなければ、確認する手段がありません。
引用:
そして自分なりに考えて、a_mcのなかに
n = Math.floor(Math.random()*3)+1;
this.gotoAndPlay("no"+n);

とフレームアクションを書き、b_mcのなかに
this.gotoAndPlay("no"+_parent.a_mc.n);

とかいてみました。
そしたらランダムに次々と表示されるようになったのですが、2回目に出てくる物からb_mcが遅れて表示されてしまうのです。


----------------
 

(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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