メイン 迷える子羊の部屋【初心者専用】 mc再生中にonRollOutした場合の処理 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
brokenman | Åê¹ÆNo.33808 投稿日時: 2007-6-24 7:04 |
新米 居住地: 投稿: 12
|
mc再生中にonRollOutした場合の処理 おはようございます。
mc再生中にonRollOutした場合の処理について、ご質問させて下さい。 _rootに a:MovieClip; b:MovieClip; を配置してます。 bは初期値として不可視状態としています。 bはマウスがaに乗る事で可視状態となります。 bはマウスがaから外れる事で不可視状態となります。 bはaがクリックされる事で再生されます。 (12フレームのモーショントゥイーン) ※フレームレート:12fps _rootの1frameにscriptを記述。 //1frame _root.b._alpha = 0; _root.a.onRollover = function(){ _root.b._alpha = 100; } _root.a.onRollOut = function(){ _root.b._alpha = 0; } _root.a.onRelease = function(){ _root.b.gotoAndPlay(1); } aをクリックしてマウスをaから外すと、bが再生中にも関わらずbが消えてしまいます。 bが再生中にaからマウスを外しても、bの再生を中断させないようにするにはどうすれば良いでしょうか? 作業環境: os : macosX(10.4.10) machine : macBook 2.0GHz memory : 2GHz soft : flash8 |
ひろゆき | Åê¹ÆNo.33811 投稿日時: 2007-6-24 9:12 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: mc再生中にonRollOutした場合の処理 引用:
aをクリックしてマウスをaから外すと、bが再生中にも関わらずbが消えてしまいます。 bが「消える」のでしょうか? bが再生中かどうかに関わらず、 aからマウスを外すと、アルファ値が 0 になるようにしているのではないのですか? 引用: bが再生中にaからマウスを外しても、bの再生を中断させないようにするにはどうすれば良いでしょうか? aからマウスを外しても、bの再生は行われているはずです。 ご自分が作られている動きについて、整理された方が良いように思います。 bのモーション・トゥイーンがどのようなものなのかについても、 説明が必要であるように思います。 位置移動なのか、アルファ値の変化なのか。 なお、スクリプトの一部に大文字・小文字を区別すべき部分があります。 また、bを停止しておいて、再生するようにしたいのであれば、 bの第1フレームには、stop(); と記述した上で、gotoAndPlay(2) だと思いますが。 このあたりも、どのように作られたのか、不明瞭ですね。
|
brokenman | Åê¹ÆNo.33880 投稿日時: 2007-6-26 20:41 |
新米 居住地: 投稿: 12
|
Re: mc再生中にonRollOutした場合の処理 言葉が足りなかったので、書き足します。
引用: bが「消える」のでしょうか? そうだと思います。 引用: bのモーション・トゥイーンがどのようなものなのかについても、 モーショントゥイーンではサイズが大きくなる動きをしています。 引用: なお、スクリプトの一部に大文字・小文字を区別すべき部分があります。 間違ってました。。 |
野中文雄 | Åê¹ÆNo.33881 投稿日時: 2007-6-26 21:54 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: mc再生中にonRollOutした場合の処理 「bが再生中」かどうかを判定して、再生中でなければMovieClip._alphaプロパティを0に設定すればよいでしょう。いわゆる「フラグ」を使った処理が必要とされます。
参考:「MCの制御」 わらわ.net「おまけのロールオーバー」 引用: brokenmanさんは書きました: |
brokenman | Åê¹ÆNo.33998 投稿日時: 2007-7-4 16:22 |
新米 居住地: 投稿: 12
|
Re: mc再生中にonRollOutした場合の処理 お返事遅くなりました。
「おまけのロールオーバー」拝見させて頂きました。 フラグについては、だいぶ理解出来ました。 ありがとうございました。 もう少しやってみます。 今後も宜しくお願いします。 |
brokenman | Åê¹ÆNo.34003 投稿日時: 2007-7-4 18:42 |
新米 居住地: 投稿: 12
|
mc再生中にonRollOutした場合の処理<修正> 再度、考え直してやりましたが未だに出来ません。
下記に新規の構成を書きますのでご教授頂ければと思います。 /*** 階層 ****/ _root └ test(インスタンス名:test) └btn(インスタンス名:btn1) ├btn(インスタンス名:btn2) ├pic1_anime(インスタンス名:pic1) └pic2_anime (インスタンス名:pic2) ※全てMovieClip(以下mc)です。 ※btnは一つのmcです。 ※インスタンス名btn1はインスタンス名pic1に インスタンス名btn2はインスタンス名pic2に 対応しています。 ※btnにonRollOver、onRollOut、onReleaseすると picのトゥイーンアニメーションが再生されます。 アニメーションの最後のフレームでthis.stop();の スクリプトをフレームアクションとして記載してます。 onRollOver:フェードイン(フレームラベル"onRollOver") onRollOut:フェードアウト(フレームラベル"onRollOut") onRelease:拡大(フレームラベル"onRelease") ※インスタンス名pic1とpic2は同じ位置に重ねて配置しています。 各mcの1フレームはアルファ0%としています。 ※インスタンス名btn1とbtn2はpic1とpic2の左側に重ならない ように上下に配置しています。 ※ステージのタイムラインにはtestのインスタンスのみです。 ※testのフレームアクション1フレーム目 /**** btn ****/ btnArray = new Array("btn1", "btn2"); picArray = new Array("pic1", "pic2"); // 初期設定 _root.test.btn._alpha = 50; for(i=0; i<2; i++){ _root.test[btnArray[i]].i = i; _root.test[picArray[i]].i = i; // onRollOver _root.test[btnArray[this.i]].onRollOver =function(){ _root.test[picArray[this.i]].gotoAndPlay("onRollOver"); this._alpha = 100; } // onRollOut _root.test[btnArray[this.i]].onRollOut = function(){ this._alpha = 50; _root.test[picArray[this.i]].gotoAndPlay("onRollOut"); } // onRelease _root.test[btnArray[this.i]].onRelease = function(){ this._alpha = 100; _root.test[picArray[this.i]].gotoAndPlay("onRelease"); } /************************************************/ 以上です。 この時、btn1とbtn2を高速で移動させると、pic1とpic2の二つのmc が重なり合う形でアニメーション表示されてしまいます。 このように重なり合わないように一つが再生中にはもうひとつのアニメーションが再生されないようにしたいです。 フラグ判定が必要だとは教えて頂き分かりましたが、実際どうすればいいかが分かりません。 |
野中文雄 | Åê¹ÆNo.34006 投稿日時: 2007-7-4 22:36 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: mc再生中にonRollOutした場合の処理<修正> 「重ねて配置」しておいて、「重なり合わないように」したいという意味がわかりかねます。→【自分にしかわからない用語を使う】
もっと問題を絞込んだうえで、第三者から見てわかるようにご説明ください。 引用: brokenmanさんは書きました: |
brokenman | Åê¹ÆNo.34010 投稿日時: 2007-7-5 1:16 |
新米 居住地: 投稿: 12
|
Re: mc再生中にonRollOutした場合の処理<修正> 引用:
説明不足でしたので、下記に手順を記します。 1.btn1にRollOverしてpic1がフェードイン(初期アルファ値0%)してアルファが100%になります。 2.btn1をRollOutして、すぐにbtn2にRollOverすると、pic1のフェードアウト(RollOut時のモーショントゥイーン)とpic2のフェードイン(RollOver時のモーショントゥイーン)のアニメーションが同時に再生されてしまいます。 pic1を青色単色のグラフィック、 pic2を赤色単色のグラフィックからmcとしているので 途中紫色に見えます。 |
ひろゆき | Åê¹ÆNo.34011 投稿日時: 2007-7-5 4:51 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: mc再生中にonRollOutした場合の処理<修正> まず、もっと単純な構造にして試すことができるはずです。
_root 上に、ムービークリップ(インスタンス名: btn1, btn2, pic1, pic2) を配置。 _root 第1フレームに
pic1, pic2 のフレームには、 再生中の部分のフレームに、isMotion = true; そうでない部分のフレームに、isMotion = false; と記述。 「サンプル」 これで、「一つが再生中にはもうひとつのアニメーションが再生されないように」できているはずです。 しかし、これでは、 思い描いていた動きは実現できていないのではないでしょうか? そもそも、「一つが再生中にはもうひとつのアニメーションが再生されないように」すること自体が 思い描いている動きを実現する方向に向かっていない可能性もあるのではないでしょうか? もし、そうであるとするならば、その方法よりも前に、 どのような動きを実現したいのかについて、検討される必要があるように思います。 また、それも第三者にも分かるような説明をされる必要があるように思いますし、 それができるようになれば、ご自分でスクリプトを記述できるようになることに繋がるでしょう。
|
野中文雄 | Åê¹ÆNo.34012 投稿日時: 2007-7-5 8:58 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: mc再生中にonRollOutした場合の処理<修正> このご説明では、「悩み事」のご相談にしかなっていません。→【?してしまいます。どうしたらよいでしょう】
引用: brokenmanさんは書きました: ひろゆきさんのいわれるとおり、ではどういう動きにされたいのかが問題です。そして、動作の仕様は決まった答えがある訳ではなく、作者がご自分でよく考えた末に、判断して決めるべきことです。 引用: ひろゆきさんは書きました: 「アニメーションが同時に再生」されないようにするには、再生開始時には他方のアニメーションをつねにリセットする方法があります。逆に、一方の再生中は、他方はクリックできないようにしてもよいでしょう。ただ、その動作結果が、希望に合うかどうかはわかりません。 ロールオーバーしたアニメーションをすべて記憶しておいて、順に再生することも考えられます。しかし、すばやく何度もロールオーバーを繰返せば、マウスの操作を止めた後も、間抜けにアニメーションを繰返す結果にはなります。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |