• ベストアンサー

どなたかマウスイベントとムービークリップの扱い方を教えてください。

現在、羽を羽ばたかす蝶(胴体、羽2枚で構成しています)を右から左へ移動させつつ、マウスを乗せたらそこで蝶が動きを止めて、ウィンドウ(動くのと同じ蝶が二匹ウィンドウを支えている)がゆっくり開く、というものを作ろうとしています。 蝶つきのウィンドウはムービークリップでつくれましたし、 on (rollOver) { this.gotoAndPlay("start"); } on (rollOut) { this.gotoAndPlay("end"); } という表記に加え、ラベルを使用することでウィンドウのマウスによる制御は一応できました。 ですが蝶の動きをとめることがどうにもできていません。 上のスクリプトになにがしか停止のための命令を加えたらよいのでしょうか? 正直質問があいまいですが当方初心者もいいところでして・・・ どなたか教えていただけたら幸いです。

  • Flash
  • 回答数3
  • ありがとう数6

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

> 蝶つきのウィンドウはムービークリップでつくれましたし、 > > on (rollOver) { >   this.gotoAndPlay("start"); > } ということは, この this.gotoAndPlay("start"); の this は ムービークリップ内のタイムラインを示すわけですね。 > 羽を羽ばたかす動きを蝶のオブジェクトの下のそうで動かし、 > 移動はシーン1にモーションで仕込んでいます。 ということは, 「蝶つきのウィンドウムービークリップ」自体をモーショントゥイーンで動かしているというわけですね。 そうであるとするならば, 書かれていらっしゃるスクリプトを 次のように↓変更すれば良いかもしれません。 ---------------------------- on (rollOver) { this.gotoAndPlay("start"); this._parent.stop(); } on (rollOut,releaseOutside) { this.gotoAndPlay("end"); this._parent.play(); } ----------------------------   なお, モーショントゥイーンの間にキーフレームがあれば, 全てのキーフレームに同様のことを書く必要がありますが。   ムービーの構造がどうなっているのかわからないので何とも言えませんが, 場合によっては, this._parent._parent.stop(); や this._parent._parent.play(); かもしれません。 ターゲットパス http://homepage3.nifty.com/ginga-b/MX/targetpath.html

girth0079
質問者

お礼

>「蝶つきのウィンドウムービークリップ」自体をモーショントゥイーンで動かしているというわけですね。 これに関しては、ウィンドウの中(シーン1の下の階層)に「ウィンドウムービークリップの動き(小>大とα)」を仕込んでいますが、蝶はその上にのっけてあるだけで羽の動きのみです。 つまるところスノーボードの上に羽ばたく蝶がとまっている感じというか・・・ >この this.gotoAndPlay("start"); の this は ムービークリップ内のタイムラインを示すわけですね。 で、そのgotoなのですが下の階層のウィンドウがおいてあるところに別レイヤーで ラベルをstart、endをつけてあります。 ウィンドウに連動している、? と思うのですが・・・ もうどうにも手探りなので抽象的な説明のしかたですいません。 とにかく教えていただいたスクリプトをためさせていただきますね。 ありがとうございます! (もしかしたらまたお聞きするかもしれませんが;)

その他の回答 (2)

  • zari514
  • ベストアンサー率48% (26/54)
回答No.3

1です。 ムービークリップの構造が2さんが言われた形なら 2さんの回答で良いかと思いますが、1つ補足です。 ―――――――――――――――――――――――― モーショントゥイーンの間にキーフレームがあれば, 全てのキーフレームに同様のことを書く必要がありますが。 ―――――――――――――――――――――――― これは、正しくは ―――――――――――――――――――――――― モーショントゥイーンの間にキーフレームがあれば, 全てのキーフレーム の「蝶つきのウィンドウムービークリップ」 に 同様のことを書く必要がありますが。 ―――――――――――――――――――――――― です。

girth0079
質問者

お礼

ご丁寧にありがとうございます。 初心者の私のあやふやな言い方に親切に答えてくださり感謝感謝です。

  • zari514
  • ベストアンサー率48% (26/54)
回答No.1

“動きをとめる”とは「羽を羽ばたかす」事ですか? 「右から左へ移動」の事ですか? それは、どういう方法で動かしてるんですか? (モーショントゥイーンでもスクリプトでも動かせます)

girth0079
質問者

お礼

早速の回答ありがとうございます。 言葉が足りませんでしたよねすいません。 動き、とは右から左への移動のことです。 恐らくなにか間違ったことをしているのだとはおもうのですが、右から左へ動く蝶にマウスカーソルを合わせると、ウィンドウは開くんですが右から左への移動がとまらず、追いかけないと蝶が逃げていってしまう状態です。 モーショントゥイーンで動かしています。 羽を羽ばたかす動きを蝶のオブジェクトの下のそうで動かし、移動はシーン1にモーションで仕込んでいます。 これにウィンドウがゆっくり開く(モーションでα0>100>0 大きさ小>大)を作りました。 そんな状態でどんな形でスクリプトを仕込んだらうまく動くのか、試行錯誤中です。 最初、間違えて補足で送信してしまいました。 重複した内容になっていますが改めて御礼のほうから送信させていただきました。 ぜひご教授願えたら幸いです。

girth0079
質問者

補足

早速の回答ありがとうございます。 言葉が足りませんでしたよねすいません。 動き、とは右から左への移動のことです。 恐らくなにか間違ったことをしているのだとはおもうのですが、右から左へ動く蝶にマウスカーソルを合わせると、ウィンドウは開くんですが右から左への移動がとまらず、追いかけないと蝶が逃げていってしまう状態です。 モーショントゥイーンで動かしています。 羽を羽ばたかす動きを蝶のオブジェクトの下のそうで動かし、移動はシーン1にモーションで仕込んでいます。 これにウィンドウがゆっくり開く(モーションでα0>100>0 大きさ小>大)を作りました。 そんな状態でどんな形でスクリプトを仕込んだらうまく動くのか、試行錯誤中です。

関連するQ&A

  • マウスポインタを変化させない方法

    50も半ば過ぎの初心者です。 Flash8で、jpg画像の上にムービークリップ及びボタンを配置、   on (rollOver) { gotoAndPlay("s1"); } on (releaseOutside, rollOut) { gotoAndPlay("s2"); } で、画像へのマウスポインタの乗り降りでムービークリップの制御をしました。 このとき、画像にマウスポインタが乗ると形状がデフォルトの"矢印"から"手"に変りますが、これをデフォルトのまま変化させない方法を教えてください。 on (rollOver) { Mouse.hide(); gotoAndPlay("s1"); } on (releaseOutside, rollOut) { Mouse.show(); gotoAndPlay("s2"); } で、画像にマウスポインタが乗ると消えるようにはできたのですが、クリックしても何も起こらない"ボタン"なので、"矢印"のままにしておきたいのです。 よろしくご指導ください。

    • ベストアンサー
    • Flash
  • FLASHのボタンの動作(他のボタンにロールオーバーしたら…)

    AというボタンとBというボタンがあります。 Aには on (rollover) { this.gotoAndPlay(2); } on(rollout){ this.gotoandplay(6); } というアクションがついていますが、 「rollout」ではなくて、「Bのボタンにrolloverしたら」というように変えたいのですが、 どのように記述したらよろしいでしょうか? よろしくお願いします。

  • FLASH MXでムービークリップをボタンではなくムービークリップ自体で操作できますか?

    いまだにFLASH MXを使っています。 やりたいことはムービークリップを作成し、マウスがそれに触ると停止し、離れると動く、といった感じにしたいのですが、どうにも上手くいきません。 他にボタンを作成しそこにアクションを設定すれば上手く動くのですが ボタンではなく自分自身で操作できないかと思っています。 ボタンのシンボルをムービークリップ(movie)化 それをステージに配置しアクションを設定 アクションイメージ on (rollOver) { movie.stop(); } on (rollOut) { movie.start(); }

  • マウスオーバーで全ムービークリップ停止

    上手く説明出来ないのですが、 ムービークリップのメニューを作ろうとしています。 マウスオーバーで全部のムービーが止まる様にしたくて、 一つのムービークリップに全部のムービークリップのメニューをまとめ、選択すると ーーーーーーーーーーーーーーーーここから シーン=シーン1,レイヤー=menu,フレーム マウスイベントはボタンインスタンスでのみ使用できます。 シーン=シーン1,レイヤー=menu,フレーム マウスイベントはボタンインスタンスでのみ使用できます。 ーーーーーーーーーーーーーーーーここまで とエラーになってしまいます。 だからといってメニュー一つ一つに on(rollOver){ stop(); } on(rollOver){ play(); } を記述しても、マウスオーバーしているメニューだけが止まって、 他のメニューは動いてぐちゃぐちゃになってしまいます。 ひとつのメニューをマウスオーバーするだけで他全部のムービークリップも停止、 マウスをはずすと同じ所から動きだす事って出来ますか? いい方法がありましたら教えて下さい。

  • マウスアウトしているのに、マウスオーバーのままになってしまいます。

    よろしくお願いいたします。 ↓このようなものを作っています。(実際に参考にしているサンプルです。) http://www.oshige.com/flash/mx/swf17/divide_x.html スクリプトは --------------------------------- this.init(); this.onEnterFrame = function() { if (base.hitTest(_root._xmouse, _root._ymouse, false)) { this.rollover(); } else { this.rollout(); } this.resize(); this.setalpha(); }; 以下、function init、function rollout、function rollover、function resize、function setalphaが続きます。 --------------------------------- 最下層のレイヤーに「base」という名前のムービークリップを、ドキュメントと同じサイズ、x=0、y=0で配置。 その上に実際に動かしたいムービークリップが乗っていて、「base」にマウスオーバーしている時にそれぞれのムービークリップの動きをコントロールするというものです。 ですが、マウスを速く動かした時などに、baseからマウスアウトしているにも関わらず、マウスオーバーの状態のままになってしまいます。 色々試してみたところ、実際にbaseやムービークリップが乗っているサイズよりもドキュメントのサイズをかなり大きく取ると解消されたのですが、(サンプルでもそのようになっていました)それではページデザイン上問題があるので・・ スクリプトでどうにかできるものでしょうか? どうぞよろしくお願いいたします。 全然意味が分からない説明になっているかもしれません。不明な点がありましたらご指摘ください。

    • ベストアンサー
    • Flash
  • ムービークリッププロパティの変更

    こんにちは。 ムービークリップA_mcをロールオーバーした時にムービークリップB_mcを表示ロールアウトした時にムービークリップB_mcを非表示にしたいのです。 まずはムービークリップB_mcの_alphaを100にするスクリプトを記述しようとしています。 B_mcはアニメーションですでに_alpha=0でステージにおかれています。 A_mcに on(rollOver){ _root.B_mc._alpha=100; } on(rollOut){ _root.B_mc._alpha=0; } と記述したのですが、表示されませんでした。 試しにと on(rollOver){ _root.B_mc._visible=true; } on(rollOut){ _root.B_mc._visible=false; } としてもだめでした・・・ すみません。原因がよくわからず対処方法もわかりません・・・何方かご教授頂けないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • ボタンの中にボタンを作るには?

    ボタンの中にボタンを入れたいのですが、中にボタンを入れると一番外のボタンに命令していたスクリプトがいうことを聞かなくなってしまいます。ちなみに外のボタンには on(rollOver){ gotoAndPlay(フレーム); } on(rollOut){ gotoAndPlay(1); そして10フレームほどトゥイーンがあり、10フレーム後のボタンには } on(rollOver){ gotoAndStop(10フレーム後); } on(rollOut){ gotoAndPlay(1); } と書いています。このボタンは、あるボタンを押すと出てくるようになっています。このボタンの中に文字でボタンを入れたく、また、見え方も外のフレームと一緒にしたいです。 わかりづらい説明で申し訳ないのですが、よろしくお願いいたします。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • フラッシュでボタンにマウスポイントを当てた時に点滅する方法

    フラッシュを勉強している者です。 ボタンを作成してその上にマウスポイントを置いた時にそのボタンが暗くなったり、明るくなったりという要領で光りを放ち、マウスポイントを放すと元の状態に戻す。という物を作りたいと思いました。 下記の通りソースを書いた所、パブリッシュ時にエラーが表示されてそのままフラッシュ自体が強制終了してしまいます。 on(rollOver){ this.gotoAndPlay(2) } on(rollOut){ this.gotoAndPlay(1) } おそらく考えられる事としてボタン自体をムービー的なタイムランで動かそうとしているからではと思っています。 どうか実現するためのソース例を教えて頂けないでしょうか?お願いします。

  • ムービークリップ内のボタン

    フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。

  • flash:ムービークリップの制御

    誠に不勉強の段お許しください。 Flashで知人のサイトを製作しているのですが、どうしてもうまくいかず投稿させて頂きました。使用してる環境;ソフトはMacOS10.4.11:Flash8.0です。 (1)動かしたい内容は、-rootにムービークリップのスプレー缶があって、それにロールオーバーすると少し上がり指が現れ、そこで止まる。(ムービークリップ10フレーム目で停止) (2)ロールアウトすると逆戻りで元の位置に戻る。 (3)(1)の止まった状態でプレスすると10フレーム目から進み(スプレーされるアクションが入り)指定アドレスに飛ぶ。(ムービークリップ15フレーム目でgetURL) この様な、動きをさせたいのですが 様々解らないなりに調べて、何とか15フレーム目までいって止まり、その逆戻りまでは出来たんですが、10フレーム目で一旦止める事が出来ません...。 onClipEvent (load) { nMove = 0; } onClipEvent (enterFrame) { if (nMove != 0) { nNextFrame = this._currentframe+nMove; if (1<=nNextFrame && nNextFrame<=this._totalframes) { this.gotoAndStop(nNextFrame); } else { nMove = 0; } } } on (rollOver) { nMove = 1;} on (rollOut) { nMove = -1; } 大変恐縮ですが、 なにとぞご教授いただけましたら幸に存じます。

    • ベストアンサー
    • Flash

専門家に質問してみよう