• 締切済み

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

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

  • y-s-y
  • お礼率92% (48/52)
  • Flash
  • 回答数2
  • ありがとう数1

みんなの回答

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

パスはあってると思うので、mc1がないかフレームラベルBがないかだと思います。 ボタンAのスクリプトに trace(this._parent.mc1); と記述して、_level0.mc1と出力されるでしょうか? undefinedと出力された場合タイムライン上にmc1というムービークリップが存在しないことになります。 初心者の方が間違えやすいのですが、 インスタンス名とはステージに配置したときに付ける名前です。シンボル化したときにつけたシンボル名とは違います。 またボタンのスクリプトを this._parent.mc1.play(); と書き換えて動作した場合はフレームラベルBがなかったことになります。

noname#35109
noname#35109
回答No.1

on (release) { this._parent.mc1.gotoAndPlay("B"); } なら,動くと思いますよ。 さて,何処が違うでしょう??

y-s-y
質問者

お礼

ご回答ありがとうございます。 もしかしてgotoAndPlayの「P」の大文字ですかね? すみません、もともとPlay(大文字)で試しておりますが、うまくいきません。。 (質問に書いたスクリプトはplay(小文字)になってましたね。。気が付かず申し訳ありません、、、汗)

関連する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フレーム目・・繰り返す制御をしたいのですが。。 どなたか分かる方いましたら 教えてください!!

  • AS2.0 ボタン化したムービークリップを途中で変更

    AS2.0で困っています。 ●現在、ムービークリップ「color1」内のフレームに【_up】【_over】【_down】とラベルを作って、ボタンにしています。 ムービークリップ「color1」自体には、[on(release){}]と記述しています。 (ボタンとして機能しています。) そこまではよかったのですが、 ムービークリップ「color1」の【_down】ラベルのあとに【playing】というフレームラベルを作って、【playing】ラベルのアニメーションを再生したいと思ったら、できませんでした。 ○【_down】のスクリプトレイヤーに、gotoAndPlay("playing"); と記述しましたが、全く動きません。 初歩的な質問で大変申し訳ないのですが、 どのような構造にすれば、【_down】から【playing】レイヤーを再生できますか? よろしくお願いいたします。

  • ボタンから一つ上の階層のムービークリックを徐々にアルファ値を上げたり下げたりする。

    はじめまして、jpncan15といいます。 初めて質問させていただきます。 階層がややこしい状態ですが、ボタンから一つ上の階層のムービークリップのアルファ値を徐々に上げたり下げたりしたいのですが、なかなかうまく行かず昨晩から悩み中です。 もし、ご存じの方がいればご教授お願いいたします!! ○状況 シーン1  mc1(ムービークリップ)   mc2(ムービークリップ:インスタンス名:image)   mc3(ムービークリップ) buttan(ボタン:ボタン名:b1) ○buttan(ボタン:ボタン名:b1)のスクリプト ※触っていると、アルファ値が0→70%に変わって行く。 ボタンをはなすとアルファ値が70→0%変わって行く。 ※このスクリプトだと、徐々に変わって行くのではなくいきなり、アルファ値が「5」変わるだけなのです。。。 on (rollOver) { if (this._parent.image._alpha < 70){ this.common_b._alpha += 5; } } on (rollOut) { if (this._parent.image._alpha > 70){ this.common_b._alpha -= 5; } }

    • ベストアンサー
    • 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
  • ActionScript3.0フレーム移動について

    お世話になります。 Flash ActionScript3.0で、ボタンをクリックしたら、 階層違いのシーンに移動するという 単純なところでつまずいています。 一番上の階層には、 1フレーム目 フレームラベル "a" 2フレーム目 フレームラベル "b" として、それぞれ this.stop();を書いてあります。 "a""b"には、それぞれムービークリップが配置してあって、 今やりたいことは、"a"に配置してあるムービークリップの 2つ下(中?)の階層にあるボタンをクリックしたら、一番上の階層の"b"に移動して、 "b"に配置してあるムービークリップを表示するようにしたいのです。 "a"のムービークリップのボタンのあるフレームには、 this.stop(); button01.addEventListener(MouseEvent.CLICK,jumpB); function jumpB(event:MouseEvent):void { MovieClip(parent.parent).gotoAndStop("b"); } と書いてみましたが、 [TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。] と怒られます。 試しに MovieClip(stage).gotoAndStop("b"); とか、"b"に配置してあるムービークリップにインスタンス名"b_mc"を与えて MovieClip(parent.parent).b_mc.play(); などと苦し紛れにやってみましたが、すべて同じように怒られます。 どのようにすれば、下の階層から一番上の階層の別フレームに 移動することができますでしょうか? よろしくお願い致します。

  • AS3リンケージ設定したムービークリップの中で、フレーム移動がしたいです。

    初心者です。 AS3で、 リンケージ設定したムービークリップを addChildで呼び出し、 呼び出したムービークリップの中の、 指定したフレームに移動するにはどうしたら宜しいでしょうか。 ステージに配置した場合、インスタンス名を付けて インスタンス名.gotoAndPlay("フレームラベル"); で移動しますが、 リンケージ設定したムービークリップの場合はインスタンス名の代わりに リンケージ名で呼び出せないのですか。

    • ベストアンサー
    • Flash
  • ActionScriptで、押したボタンの判別方法を教えてください。

    ActionScriptで、押したボタンの判別方法を教えてください。 ActionScript3.0で作成しています。 6フレームの【oya_mc】というムービークリップの各フレームに フレーム1ラベル[m1]に【ko1_mc】 フレーム2ラベル[m2]に【ko2_mc】 フレーム3ラベル[m3]に【ko3_mc】 フレーム4ラベル[m4]に【ko4_mc】 フレーム5ラベル[m5]に【ko5_mc】 フレーム6ラベル[m6]に【ko6_mc】 というムービークリップを配置しています。 配置しているムービークリップには、それぞれ6個のボタンを呼び出して配置しています。 【btn1】【btn2】【btn3】【btn4】【btn5】【btn6】 【btn3】を押したときに【oya_mc】を3フレーム目に移動。 【btn6】を押したときに【oya_mc】を6フレーム目に移動。 というようにしたいのですが、なかなかうまくいきません。 FLASH初心者ですが、どうかご指導よろしくお願いします。 【ko1_mc】に書いたスクリプトを抜粋して書きます。 ------- for(var i:int = 1; i <= 6; i++){ this["btn" + i].addEventListener(MouseEvent.CLICK,Down); function Down(mo:Event):void{ MovieClip(parent).gotoAndPlay("m"+i); } } ------- よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップに配置したボタンを作動させるには?

    Flash初心者のものです。 現在、FLASHで簡単な地図を作成しているのですが スクリプトを記述し、オンマウスによるスライド動作を表現したムービークリップ(インスタンス名:mc_sride)の中にボタン(インスタンス名:btn_a)を配置して、そこをクリックすると 地図の座標が移動するというような動きを実現したいのですが、 なかなかうまくいきません。 メインのムービーにボタンだけを配置した場合はうまく作動するのですが、 それを前述したムービークリップの中に配置すると そのボタンがまったく作動しないのです。 マウスが乗っても反応がありません。 相対パスはきちんと記述しているのですが・・・ どうすればうまく作動するようになるのでしょうか? ちなみにmc_srideのスライド動作のスクリプトは onClipEvent (load) { var div:Number = 0.5; var move_to:Number =730 this._x = 730; } onClipEvent (enterFrame) { this._x += (move_to-this._x)*div; } on (rollOver) { this.move_to -=100 } on (rollOut) { this.move_to +=100 } になります。 ボタンをうまく機能させる方法をご存知の方がもしいらっしゃたら、お手数ですがご指南願います。

    • ベストアンサー
    • Flash
  • ムービークリップのインスタンス名を変数で扱う

    Flash初心者で、レベルの低い質問だとは思いますが申し訳ありません。単純なシンタックスに関する質問です。 Panel.Panel0Cont ~ Panel.Panel10Cont という11個のムービークリップがあります。 それぞれのムービークリップを一挙に指定のフレームへgotoAndPlayさせる際に、ムービークリップの名前を変数で代入してforループで回したいのですが、変数への代入の仕方が解りません。例えば、 for (i=0; i>10; i++) { var mc:MovieClip = "Panel.Panel"+i+"Cont"; mc.gotoAndPlay(JumpNum); } mcはムービークリップですから、単純な文字列を代入しても当然タイプエラーになってしまいます。ムービークリップのインスタンス名のプロパティに、文字列を変数を使って代入するやり方があるのだと思います。 そのやり方をご教示頂けませんか。 ※参考書を2冊ひっくりかえしてもにわかには見つかりませんでした。

    • ベストアンサー
    • Flash
  • ムービークリップから親のタイムラインを変更する

    ■シーン1 ラベル1---クリップ1(ボタン)--ラベル2---- FlashMXでひとつのシーンにラベルを2つ付け、その間にムービークリップを1つ入れているのですが、そのクリップから、フレームアクションとしてラベル2に飛ばすように、gotoAndPlay("シーン1", "ラベル2"); を 指定したのですが、ラベル1(クリップ1の再現)に飛んでしまいます。 どうすればクリップの中からシーン1のラベル2に飛ばすことができるのでしょうか?

    • ベストアンサー
    • Flash

専門家に質問してみよう