• 締切済み

ムービークリップの制御

ムービークリップの制御に関してですが・・ 組み込んだムービークリップを、メインフレームから制御したいと思っています。 任意の位置で停止させたいのですが、gotoandstopでは、そのフレームまでジャンプしてしまいます。 「任意のフレームまで再生する」、といった制御はできないでしょうか? mc内に、if文にてstopを組み込む方法では、一回目の再生で停止せず、二回目の再生で止まる・・といった現象に悩んでいる為、メインフレームから停止フレームが指定できるような制御があればいいのですが・・ お手数ですが、良い方法をご存知の方がおられましたらお願いいたします。

  • Flash
  • 回答数1
  • ありがとう数2

みんなの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

組み込んだムービークリップにASをかけないのであれば onEnterFrameで監視しましょう。 _root.onEnterFrame = function (){ if (組み込んだMC._currentframe == 任意のフレーム){ 組み込んだMC.stop() } } 『組み込んだMC』と書いているのは組み込んだMCへのパスのことです。

関連するQ&A

  • ムービークリップの制御について

    スクリプト初心者です。 ムービークリップの制御について、まったくわからず困っています (1)シーン1、5フレーム目にムービークリップ、インスタンス名a_mc配置 (2)a_mcの中にb_mc配置。b_mcをクリックすると→a_mcの1フレーム目に移動。もう1度b_mcクリックすると→a_mcの10フレーム目に移動。もう1度b_mcをクリックすると→a_mcの1フレーム目に移動・・・と、 b_mcをクリックするごとにa_mcの1フレーム目、10フレーム目、1フレーム目・・繰り返す制御をしたいのですが。。 どなたか分かる方いましたら 教えてください!!

  • 子ムービークリップの制御について

    flash初心者です。子ムービークリップの制御について教えてください Tシャツのシュミレーションがあるとします。 シャツ_mcに、1フレーム目「丸くび」、2フレーム目「Vネック」、のカタチで シャツ_mc.色_mcにマスクをかけています。 色_mcには1フレーム目「白」、2フレーム目に「赤」とします。 シャツ_mc.色_mcのそれぞれ1フレームにstop(); ボタン「丸くび_btn」「Vネック_btn」「白_btn」「赤_btn」の4つのボタンで それぞれ組み合わせを作りたいのですが 「丸くび_btn」に on (release) { _root.シャツ_mc.gotoAndStop(1); } 「Vネック_btn」に on (release) { _root.シャツ_mc.gotoAndStop(2); } 「白_btn」に on (release) { _root.シャツ_mc.色_mc.gotoAndStop(1); } 「赤_btn」に on (release) { _root.シャツ_mc.色_mc.gotoAndStop(2); } この場合「丸くび_btn」をクリックして「赤_btn」クリックで「丸くび赤シャツ」ができます ここまではいいのですが 赤の色を保持したまま「Vネック_btn」を押してVネック赤シャツのイメージも見たいのですが 色が白に戻戻ってしまいます。(色_mcの1フレーム目に戻る。) これをなんとかしたいのですが。 (色_mcが選ばれた状態で固定され勝手に移動しないようにしたい) アドバイスお願いいたします。

  • ムービークリップ再生順序 制御について

    はじめて質問します。Flash初心者ゆえつたない説明ですいませんが、よろしくお願いします! Flash:ActionScript2.0 [現状] メインフレームにABCというムービークリップを配置しています。 それぞれ「mc1」「mc2」「mc3」というインスタンス名がついています。 各ムービークリップにはそれぞれ動きが設定しており、”moving”というフレームラベルをつけています。 [どう動作してほしいか] まずAのムービークリップが再生。Aのムービークリップ再生終了。 ↓ Bのムービークリップ再生開始。Bのムービークリップ再生終了。 ↓ Cのムービークリップ再生開始。Cのムービークリップ再生終了。 ↓ Aに戻る。 上記の動きをタイムラインを利用するのではなく、メインフレームに1つactionScriptを書くことで動作させるにはどうしたらいいでしょうか? ちなみに今は以下のように記述しており、実行すると3つのムービークリップが全て同時に動いてしまいます。 var list:Array = new Array(); for(var i=1; i < 4; i++) { var mcname = "mc" + i ; list[i] = eval(mcname); list[i].gotoAndPlay("moving"); } よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • flash の ムービークリップの制御

     フレーム1にムービークリップmovieAがフレーム2にmovieBがあります。それぞれのムービーには連続して再生されないように、フレームの最後にstopを設定してあります。  フレーム1のムービーを再生した後に、ボタンなどを使わずに自動的にフレーム2のムービーを再生させたいのですが、一体どうすればよろしいのでしょうか?GotoAndPlayを1フレーム目に設定すると、movieAを再生せずに2フレーム目に行ってしまいます。それぞのムービークリップに設定しているstopがいけないのでしょうか?何かいい解決策はありますか?フラッシュ用の掲示板でお答えいただいたのですが、それでは解決せずこちらでお伺いすることに致しました・・・。(初歩的すぎてこれ以上聞きにくいし・・・泣)よろしくお願い致します。

  • setTimeoutでの制御に関しまして

    初めて質問をさせて頂きます。よろしくお願い致します。 「mc_Image1」、「mc_Image2」、「mc_Image3」という 各ムービークリップをストップボタンを押した際に時間差で停止させたいのですが 「mc_Image2」、「mc_Image3」がstopがかからない状態が稀に生じたりします。 (ムービークリップは全て、1フレーム目にstop();、10フレーム目にgotoAndPlay(2);と設定) 少し端折っておりますが、スクリプトを記載いたします。 ---------------------------- //何回ルーレットしたかカウントする var count:Number = 0; //スタート/ストップボタンが押された押されていないかのフラグ var flg_StartStop:Boolean = false; // mc_Image停止待機速度変数(ミリ秒) var hensu1 = 2000; var hensu2 = 3000; //スタート/ストップボタンを押した時に呼び出される関数 btn_StartStop.onPress = function() { if(flg_StartStop) { //選ばれたフレームに飛ぶ mc_Image1.gotoAndStop(parseInt(one)+1); // setInterval で hensu(ミリ秒)後に_root.gotoAndStop(); を実行 stopID = setInterval(function () { _root.mc_Image2.gotoAndStop(parseInt(two)+1); clearInterval(stopID); }, hensu); stop2ID = setInterval(function () { _root.mc_Image3.gotoAndStop(parseInt(three)+1); clearInterval(stop2ID); }, hensu2); //押されたかどうかの変数を「偽」に flg_StartStop = false; //カウンタを増やす count++; } else { //ムービークリップを走らせる mc_Image1.play(); mc_Image2.play(); mc_Image3.play(); //押されたかどうかの変数を「真」に flg_StartStop = true; } } ---------------------------- 。 きちんと「gotoAndStop();」させるにはどのように対処すれば よろしいでしょうか。 不足がございましたら申し訳ありません。 何卒よろしくお願い致します。

  • ムービークリップ内のムービークリップ制御について

    誠に不勉強の段お許しください。 Flashでサイトを製作しているのですが、どうしても分からず投稿させていただきました。 仮に -rootにボタンとAムービークリップ配置しました。 また、Aムービークリップ内の10フレー目にBムービークリップを配置し、Bムービークリップ内にボタンを配置しています。 _rootのボタンからAムービークリップを制御して10フレーム目のBムービークリップを表示はできるのですが、-root上でAムービークリップのBムービークリップ内のボタンでBムービークリップを制御するのにはどうすればよろしいのでしょうか。 なにとぞご教授いただけましたら幸に存じます。

  • 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
  • ムービークリップがマウスカーソルを追いかけ、マウスカーソルと同じ位置に来たときにムービークリップを変えたい

    以下のようにスクリプトを書いたのですが ムービークリップがマウスカーソルと同じ位置に来ても ムービークリップがフレーム2に移動しません。 ドラゴンクエストVIIIのトップページのFlashのような 表現をしたいのですがうまくいきません。 http://www.square-enix.co.jp/dragonquest/eight/ _mc.onEnterFrame = function() { this._x += ( _root._xmouse - this._x ) / 5; if( this._x == _root._xmouse ) this._mc.gotoAndStop(2); else this._mc.gotoAndStop(1); }; どうすればこの問題を解決することができるのでしょうか。 ご存知の方がおられましたらご回答をよろしくお願いします。

    • ベストアンサー
    • Flash
  • FLASHの同一タイムラインで、複数のムービークリップを順に再生したい

    ムービークリップを複数作成しました。(名前を仮にa_mc, b_mc, c_mcとします。) このムービークリップを順に再生していきたいので、同一タイムライン上の 1フレーム目にa_mc 2フレーム目にb_mc 3フレーム目にc_mc と配置し、タイムラインの最後のフレームに this.stop(); とスクリプトを書きましたが、a_mcの再生が終わったところ(=1フレーム目)で停まってしまいます。 1フレーム目の後、2フレーム目以降(b_mcとc_mc)を続けて再生するには、どのようにすれば良いのでしょうか?

    • ベストアンサー
    • Flash
  • 指定時間にムービークリップを再生した後戻れない他

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 各種バージョンの説明 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FLASHのバージョン:CS3 Action Scriptのバージョン:2.0 質問者のバージョン:AS初心者 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 作りたいものの説明 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 毎時、0分0秒と、30分0秒に、 指定のムービークリップを数秒間再生して、 元の時計に戻る。といった、 鳩時計のようなものが作りたいです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ できたっぽいこと ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○アナログ時計は正常にできたようです。 ○指定の時間に、指定のムービークリップを再生することは  できたようです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ できてないこと ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○指定の時間に、指定のムービークリップを再生した後、  元のアナログ時計に戻れない。 ※パソコンの時間を変更して確認していますが、  一度変更した後、ブラウザを更新しないと  元のアナログ時計に戻ってくれない。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 現在のスクリプト構成 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【アナログ時計部分】 レイヤー1|○| | レイヤー2|●|●| レイヤー2の1フレーム目には、 ふつうのアナログ時計のムービークリップが入っています。 そのふつうの時計のムービークリップの中の1フレーム目には、 以下のスクリプトを書きました。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ this.onEnterFrame = function() { now_date = new Date(); h = now_date.getHours(); m = now_date.getMinutes(); s = now_date.getSeconds(); this.h_mc._rotation=h*30+m*0.5; this.m_mc._rotation=m*6+s*0.1; this.s_mc._rotation=s*6; }; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【指定時間に指定MCを再生部分】 レイヤー1|○| | レイヤー2|●|●| レイヤー1の1フレーム目には、 以下のスクリプトを書きました。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ this.onEnterFrame = function(){ myDate = new Date(); myHour = myDate.getHours(); if (myHour>=6 && myHour<14) { this.gotoAndStop(2); } else if (myHour>=14 && myHour<21) { this.gotoAndStop(2); } else { this.gotoAndStop(1); } }; stop(); ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ レイヤー2の2フレーム目には、 指定時間(上記のスクリプトで示すと、6時~21時以外)に 再生したい、ムービークリップを配置しています。 ※現在は、テストなので時間は適当ですが、最終的には、  12時ちょうど、12時30分、1時ちょうど、1時30分・・・  などと、30分おきに指定のムービーを再生したいです。 ※また、現在はテストなので、指定の時間に再生したい  ムービークリップは1種類しかないのですが、  最終的には数種類に増やしたいです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ききたいこと ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○指定の時間に、指定のムービークリップを再生した後、  ブラウザの更新ボタンを押さなくても、  元のアナログ時計に戻すにはどうしたらよいでしょうか? ○指定のムービークリップは、ループしているムービーなのですが、  数秒間再生したら、元のアナログ時計に戻したいのですが、  現在、私の知っているスクリプトの記述方法だと、 if (myHour>=6 && myHour<14) { this.gotoAndStop(2); のように、時間しか指定できないので、 数秒間後に元のアナログ時計に戻すことができません。 (1時間後には戻すことはできます) 秒の指定の仕方を教えてください。 長くなってしまいましたが、どなたか教えていただけると幸いです。 よろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう