• 締切済み

ムービークリップの止め方

ActionScriptでわからない部分があるので質問させていただきます。 ↓状況説明 1フレーム目にActionScriptで、ムービークリップが画面上をひたすら動き回る設定をします。 それとは別に背景などはフレーム単位で動かしています。 その後、100フレームになったらムービークリップのみ止めて(消して)、背景のみ動かして200フレームまで続行したいのです。 しかし、stopだと背景が止まってしまい、止めたいはずのムービークリップは動いたままの状態になってしまいます。 この場合は、どの部分にどんな命令を入れれば止める(消す)事が出きるのですか? お手数ですが、どうぞよろしくお願い致します。

みんなの回答

noname#35109
noname#35109
回答No.5

#1&2&4です。 本題の解決とは全く別の話です。 #4で >> それと書かれているスクリプトは間違っていないと思います。 と書きましたが, s_num=50; for (i=0;i<s_num;i++) { duplicateMovieClip(_root.sample,"sample"+i,i); i++; //←これは不要 } これは不要と書いてある,i++; は不要です。 でもi++;を消したからと言って,決して問題が解決するわけではありません。 本題と違う部分で,見落としていたため,言い間違った訂正です。

全文を見る
すると、全ての回答が全文表示されます。
noname#35109
noname#35109
回答No.4

#2です。 最後の1個ですか… 普通は消えます。それと書かれているスクリプトは間違っていないと思います。 ふつう一番間違えやすいのは,_root などパスの部分です。 でもメインアニメーションのタイムラインで,最初に指定したパスと,消すパスは同じなので,ここも間違いとは思いがたいです。 うーん,わからないので, 以下は当てずっぽうと,当たるかもしれない誤魔化し方法です。 ひょっとしたら何かの理由で,_root.sample に, onClipEvent (enterFrame) { this._visible = true; } のようなことを書いてあるのかもしれません。 理由は不明です。 そんなことを書いても,何の意味もないとは思うのですが。 パス及び,ターゲット名が間違っていないとするならば,残る手段は -------------------------------- _root.sample._visible = false; -------------------------------- と書かれた部分を消して,  -------------------------------- _root.sample._alpha = 0; -------------------------------- です。 当然,誤魔化しです。実際には消えていません。アルファ(透明度)を 0 にするだけです。 これで消えなければ,わかりません。 その他, ------------------------------- _root.sample._x = -1000; ------------------------------- みたいに,_root.sample をステージ外の関係のないところに追いやる方法も考えられますが,アルファが効かなければ,この方法もダメだと思います。 大変申し訳ございませんが,これ以上はわかりません。

全文を見る
すると、全ての回答が全文表示されます。
  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.3

あの~  #1の方が「名前を付けなさい」といったのはムービークリップのプロパティのインスタンスの所にですよね。 m_noeruさんが名前を付けているのはムービーラベルですよね~(^^; 横レス、ごめんさい~

m_noeru
質問者

お礼

ご返事ありがとうございました。 ラベル部分もひと通り見直して、なんとか完成の一歩手前まで持っていくことができました。 アドバイスありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
noname#35109
noname#35109
回答No.2

#1です。 つい昨日,偶然, 「duplicateMovieClip」について書いたところです。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1556287 「duplicateMovieClip」はふつう, duplicateMovieClip(target, newname, depth) という書き方になっていると思います。 ( )内を日本語で書くと duplicateMovieClip( 複製元MCのパスとインスタンス名, 新しいインスタンス名, 深度) です。 ですから消したいMCの「新しいインスタンス名」をターゲットに消せば良いのです。 上で書いたURLを例にすると, duplicateMovieClip(_root.hitoMC, "hitoMC"+i, i); i++; で,hitoMC1,hitoMC2,hitoMC3,hitoMC4,… を作っているので,それを消すのには消したい2フレーム目に removeMovieClip("hitoMC"+k); k++; と書いて一気に消しています。 「duplicateMovieClip」で作られたMCは「removeMovieClip」で消すこともできます。 もちろん, _visible = false; で非表示にすることもできます。 duplicateMovieClipの後の( )内がどうなっているかがわからないため,具体的には言えませんが, ループや変数を使わずに,消したいフレームに, 新しいインスタンス名1._visible = false; 新しいインスタンス名2._visible = false; 新しいインスタンス名3._visible = false; 新しいインスタンス名4._visible = false;   … … … としていけば良いと思います。 数が少なければ,whileやfor文でループさせる必要はありません。

m_noeru
質問者

補足

ご返答ありがとうございます。返事遅くなってしまい申し訳ありません。 「removeMovieClip」は知りませんでした。 そして、早速試してみたんですがなぜか消えませんでした。 なので、それを元にいろいろ試してみたところ、ある程度消す事に成功しました。 ある程度というのも、全部消えたかと思ったらひとつだけ残ってしまい、それを消す事ができません。 ネットで調べたところ、元を消すにはsassakunさんも教えてくれた、 「○○._visible = false;」 を使用すると書いてあったので、一緒に記述したのですが消えませんでした。 ソースを書いてみます。 ↓表示させ始めたいフレーム(1フレーム目)に記入 s_num=50; for (i=0;i<s_num;i++) { duplicateMovieClip(_root.sample,"sample"+i,i); i++; } で、50個表示をしています。 最終的に1個を除き、消す事に成功したソース(100フレーム目に記入) for (k=0;k<=s_num;k++) { removeMovieClip("sample"+k); k++; } _root.sample._visible = false;  ←この宣言文で残り一個が消えるかと思いましたが消えませんでした。 なんとか、このFlashを完成までもっていけたらと思っております。 引き続きご協力いただけたらと思います。 どうぞよろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
noname#35109
noname#35109
回答No.1

人間でもそうですが 誰(何)に対しての命令なのかをはっきりさせるためには, 名指ししないといけませんよね。 Flashも同じです。 名指しする前には,名前が必要です。 その名前を,オブジェクト名,またはオブジェクトのインスタンス名と言います。 止めたいムービークリップを選択。 下に「プロパティパネル」があると思うので, その「プロパティパネル」の「ムービークリップ▼」の下の「<インスタンス名>」となっているところに, インスタンス名を付けてください。 半角アルファベット,もしくは半角アルファベット+半角数字だとたいてい何でも大丈夫です。 なんでも良いですが,この説明では勝手に hitasuraMC と命名します。 その hitasuraMC を止めたいフレームには, ------------------ hitasuraMC.stop(); ------------------ と書いてください, hitasuraMC .内のフレームがストップします。 消したい場合は, ------------------------ hitasuraMC._visible = false; ------------------------ で消えます。

m_noeru
質問者

補足

お返事ありがとうございます。 さっそく止めたいフレームに書いて試してみましたが消えませんでした。 フレームラベルはすでに使用していたので、その名前にして試してみましたがダメでした。 先ほど説明不足で申し訳ありませんですが、改めて見て気になる部分としては 「duplicateMovieClip」を使用していて、同じムービークリップを複数表示させている事です。 これを1フレーム目で宣言しています。 そしてムービークリップには動きの宣言が書いてあります。 「duplicateMovieClip」を使用していると、教えていただいた「○○._visible = false;」では駄目という事はあるのでしょうか? 度々すみませんが、どうぞよろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • ムービークリップの座標AS

    アクションスクリプトの勉強中で、質問があります。 ムービークリップをx座標20、y座標20に移動した場合にフレームをストップするためには、 どのような命令をすればいいのでしょうか・・・。 無知で大雑把な質問すみません。

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

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

  • 7秒後にフレーム5へ移動してムービークリップを再生

    はじめまして。 FLASH初心者です。 レイヤー1~5の5フレームごとにムービークリップを配置しています。 レイヤー1の1フレーム目に配置してあるムービークリップが再生されて、7秒後にレイヤー2の5フレーム目に配置してあるムービークリップを再生し、(レイヤー3~5も同様に…)レイヤー5に配置してあるムービークリップの再生が終わったら、また7秒後にレイヤー1のムービークリップが再生される…といったように繰り返すにはどのようなActionScriptにすればよいのでしょう? 色々、試行錯誤したのですがうまくいきません。 どなたか教えて頂けませんか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash フレームを指定してムービークリップ再生

    ActionScript超初心者です。 よろしくお願いします。 ステージ上にボタン「A」「B」「C」を配置、 ボタン脇のスペースにムービークリップを配置、各ボタンで切り替え再生させたいと思っています。 2フレーム目に簡単なアニメーションのムービークリップ「animA」を、 3フレーム目に同様の「animB」4フレーム目に「animC」を配置し、 各ボタンon (release)で各ムービークリップの再生をしたいのですが うまくいきません。 どこにどのようなスクリプトを書けば良いか教えていただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップ再生順序 制御について

    はじめて質問します。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でムービークリップ後のフレーム移動

    FLASH初心者です。 ムービークリップでムービーを作ったのですが、シーン1に配置するとなぜかうまく動いてくれません。 何が悪いのか検討がつかない。 1フレームに入れたのですが、ちゃんとアクションで stop入れているし・・・。 2フレーム以降、色々ムービーを作っています。 新規作成で新しいflashにそのムービークリップを配置したらなぜかちゃんと再生してくれるのです。 原因が全く分からなくて困っています。 あと、そのムービークリックが一度終了した次点自動的に次のフレーム(2)へ移動してムービーを再生して欲しいのですが、どうすればいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップの入れ子

    Flash CS3の初心者です。ムービークリップの入れ子を使用した際、こちらが思うようにフレーム処理をしてくれません。 "TOP"と名前をつけた1つのシーンに「アクションスクリプト」、「画像」、「テキスト」の3つのレイヤーを準備し、「画像」レイヤーには入れ子になったムービークリップを挿入しています。 入れ子のムービークリップに仕込んだモーショントゥイーンが終わってからテキストを表示する処理をしてほしいのですがうまくいかず困っています。 <作業内容> (1)画像レイヤーにはモーショントゥイーンを仕込んだムービークリップを1フレーム目から挿入しています。(作業場所:TOP/) (2)順序付けのためテキストレイヤーは1フレーム目は空白にし、2フレーム目から挿入しています。(作業場所:TOP/) (3)アクションスクリプトのレイヤーには1フレーム目と2フレーム目にはそれぞれ以下の記入をしています。(作業場所:TOP/)  this.stop(); (4)画像レイヤーに挿入したムービークリップでは、入れ子のムービークリップのレイヤーの他にアクションスクリプトのレイヤーを設け、その最終フレームでは"this.stop();"、"gotoAndPlay(2,"TOP");"と記入しています。(作業場所:TOP/画像ムービークリップ) <問題> (1)~(4)でムービープレビューを実行すると、入れ子にしたムービークリップのモーショントゥイーンは最後までうまくいきますが、(4)の"gotoAndPlay(2,"TOP");"がエラーとなり、「ArgumentError: Error #2108: シーン TOP が見つかりません。・・・」となってしまいます。 シーン名はウィンドウのシーンパネルで確かにTOPに変更しています。ちなみに"TOP"をthis.parentに変更して実行すると、3つのレイヤーの処理が同時にスタートしてしまいます。 最初に記載した動作の実現方法や参考HPについてご教授頂けると大変助かります。よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flashでムービークリップのランダム表示

    ActionScript初心者で過去ログを探してみたりもしたのですが、(探し方自体がヘタなのかもしれませんが(^_^;)・・・)わからなかったもので。 下記のFlashムービーで画面右半分に表示されている減速&加速して画面上を流れる球体のようなムービーを制作する場合。 http://www.kips-ps.com/main/ 例えば10数種類程度の下から上へと流れる、フレーム数の異なるモーショントゥイーンを含むムービークリップを作成して、それぞれをレイヤーに配置するーというような作業だけでできるのでしょうか? それともActionScriptからMCの表示・動作を制御したりしないと、それっぽく見えないものなのでしょうか? 質問そのものが拙い内容であるようにも思うのですが、よろしくお願いいたします。

  • ムービークリップ内に空ムービーを置いて外部SWFをロードするやり方

    ムービークリップ(menu1)このムービーはシーン1に設置してあり、動きはクリックすると右から左に引き出す感じのナビゲーションにしてあります。 それがmenu1,menu2,menu3とありそれぞれ再度押すと元の場所にもどります。 ここまでは完成しているのですが、このmenu1,2,3をそれぞれ押して引き出した後にその引き出した画面にコンテンツを外部swfでロードさせたいのですが、まったく表示されず白い画面のままです。 this.stop(); if(this.onFlag == 0){ //↑左にコンテンツをopenさせ元の位置に戻らぬようストップ //↓menu1外部charch読み込みswf_charchは空ムービー swf_charch.loadMovie("charch.swf"); } このスクリプトをムービークリップmenu1のフレームに書き込んでます。 空ムービー(swf_charch)をつくりmenu1に配置して、インスタンス名もswf_charchにしてあります。 もしかして、ムービークリップ内に空ムービーを入れ子にして外部swfの読み込みは不可能なのでしょうか? それともスクリプトの記述がloadMovieではなく別のスクリプトなのでしょうか? 説明が下手で分かりづらいと思いますが、分かる方いらっしゃいましたら宜しくお願いいたします。