• ベストアンサー

AS3 MC内ボタンクリックでシーン1上MC2動く

AS3にて、 シーン1上に、MCとMC2を配置し、MC内にはボタン(mc_button)を配置します。 (入れ子のボタンを作りたい) mc_buttonを、クリックすると、MC2が動く(横に1移動)ようにしたいのですが。 AS3では、_rootが使えないので、どうしたらよいのか分かりません。 AS3では、出来ないのでしょうか? よろしくお願いします。

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

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

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

具体的にどのようなことをしようとされているのかよくわかりませんが とりあえずボタン(SimpleButton クラスのインスタンス)の入れ子はできません。 MC(ムービークリップ)の中にMCを入れたり,MCの中にボタン(SimpleButton クラスのインスタンス)を入れることはできます。 > AS3では、_rootが使えないので、どうしたらよいのか分かりません。 _root は使えませんが root でしたら使えます。 ただ root と書いても 表示オブジェクト と捉えられるだけの場合が多いですから 「MCである root のことだよ。」と明示する必要があります。 もし ActionScript 2.0 以下で 「_root.MC2.○○;」 のような命令が通じる状況でしたら ActionScript 3.0 では 「MovieClip(root).MC2.○○;」 とすると通じる場合が多いです(ただし外部SWFをロードする場合を除く) Gogle検索例「MovieClip(root) as」 http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=MovieClip%28root%29+as (as は ActionScript の意味ではなく as(アズ) です。)

koocom
質問者

お礼

BlurFiltan様 早速のご回答ありがとうございます。 試してみます。

関連するQ&A

  • 【flash】AS3のソースをすっきりさせたい(MCボタン)

    AS3を勉強しているのですが、何かもう少しソースをすっきりさせられないかと思っています。 MCの中に複数ボタン用のMCがあり、ロールオーバー・ロールアウト・クッリクの3パターン設定しています。よく本などで紹介されているように button1.addEventListener(MouseEvent.MOUSE_OVER,aover); button1.addEventListener(MouseEvent.MOUSE_OUT,aout); button1.addEventListener(MouseEvent.CLICK,aclick); function aover(evt){ button1.scaleX += 2;  ・  ・  ・ (続く) というような形で動かしています。MCのロールオーバー・ロールアウト時の動きは全て同じ値の拡大・縮小になるのですが、functionの中でbutton1.scaleX としているために、MCの数分functionを用意しないといけない状態です。 クリック時にはhttpから始まるリンク先にとばしている(ボタンごとにちがうアドレス)のですが、こちらも上と同様MC分のfunctionを用意しています。 これが20個も30個もあると動くは動くのですが、ものすごく長いソースになってしまいます。AS2の時はfunctionをどこかに用意しておいて、変数にインスタンス名を入れて(x = "button1"; のように)動かしていたのですが、今回それをやろうと思うと、インスタンス名を入れるfunctionを作らないといけなくてどちらにしても同じものを複数個つくらないといけないのかなぁ・・という気がしております。 動きに変更があった場合も全て変更しないといけなかったりでスマートでないなと感じています。 また、最初の button1.addEventListener(MouseEvent.MOUSE_OVER,aover); button1.addEventListener(MouseEvent.MOUSE_OUT,aout); button1.addEventListener(MouseEvent.CLICK,aclick); の部分は一つにまとめれたりしないでしょうか・・・(ここは無理でしょうか^^;) みなさん、このような場合どのように対処していますか?アドバイスよろしくお願いします。

    • ベストアンサー
    • Flash
  • 入れ子になっているMCのクリック判定について

    Flash ver9 AS2.0 使用です。 親MCの中に子MCがいる構造です。 親MCはロールオーバーで移動、ロールアウトで元の位置へ戻るボタンアクション(onRollOver、onRollOut)を付けています。 その中にいる子MCにもロールオーバーで拡大するというアクションを付けていますが、 こちらにはonClipEventで接触判定(hitTestメソッド)で拡大するかどうかを判断しています。 分からないのは、この子MCをクリックした時に他のシーンへ移動させたいのですが、苦し紛れで onClipEvent (enterFrame) { if (this.hitTest(_root._xmouse, _root._ymouse, true)) { //拡大処理 } onClipEvent(mouseDown){ //シーン移動処理 } としても、シーン移動が出来ませんでした。(当たり前ですよね…) hitTestメソッドのクリック判定バージョンがあれば良いのですが、 検索不足か本当に無いのか見つけられませんでした。 分かり難い説明かとは思いますが、シーン移動のさせ方、またはクリック判定の仕方を教えていただきたいです。

    • ベストアンサー
    • Flash
  • ボタン化されたMCの移動

    ホームページの中の小バナーをクリックすると表示される新規ページの全画面Flashを作っています。 http://www.facial-index.com/ 上記のページをクリックすると別窓で表示される新規ページの全画面Flashでは、「consept」等のナビゲーションをクリックすると画面構成が変わりますが、ナビゲーションは右の方に移動します。 このナビゲーションはMCをボタン化したものですよね。 このボタン化されたMCを押すと画面が変わる方法はフレームにラベルをつけて、そのラベルに飛ぶ設定を考えています。 わからないのは画面が変わる際に、すべてのボタン化されたMCが右の方に移動するASをどのように設定すればいいかということです。 どなたかご教授いただけませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • MCのクリックした部分をゆっくり中央に移動させたい。

    back_mcをサイズ(600,400)のシーン上に配置し、 シーンに下記フレームスクリプトを記入し、 MCのクリックした部分を中央に移動させましたが、 これを緩やかに移動させるにはどのようにすればよいでしょうか? back_mc.onRelease = function () { _root.back_mc._x = _root.back_mc._x +(300 - _root._xmouse); _root.back_mc._y = _root.back_mc._y +(200 - _root._ymouse); }

    • ベストアンサー
    • Flash
  • AS3.0で子MCから他の子MCのフレームへ移動

    Flash professional CS5を使用してAS3.0で記述しています。 メインのタイムラインにフレームラベルが二つ(main1とmain2)あります。 main1にはステージにムービークリップのmc1が,main2にはmc2が配置してあります。 さらに, こういう書き方でいいのかわかりませんが; mc1内にはフレームラベルsub1,sub2があります。 同様に, mc2内にはフレームラベルpart1,part2があります。 sub1ではボタン(btn1)があり,押すとフレームラベルsub2に進むようになっています。(確認済み) sub2にもボタン(btn2)が用意してあり押したらムービークリップmc2内のpart2に移動させたいと考えています。 フレームラベルsub2で btn2.addEventListener(MouseEvent.CLICK, Click2); function Click2(evt:MouseEvent):void{ MovieClip(parent).gotoAndStop("main2"); } と記述すればメインタイムラインのフレームラベルmain2に移動することは確認しました。 しかしフレームラベルpart2へ移動するにどのように記述したらよいかわかりません。 MovieClip(parent).mc2.gotoAndStop("main2"); としてもやはりmc2が未定義なので無理なのでしょうか? もしそうでしたらmain1の段階で定義しようかと思うのですが,その場合はどのように記述すればよいのでしょうか? つまり,メインタイムライン上における後ろのフレームラベルの子のフレームラベルに移動したいです。 説明がうまくできないので図も載せます。 http://www1.axfc.net/uploader/Img/so/99986 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flashでの座標指定におけるボタン有効化

    よろしくお願いします。 現在、FLASHでゲームを作成中です。 バージョンはFLASH CS4です。 ASは2.0です。 ボタンが配置されており、更にムービークリップ(以下mc)があります。 ボタンは初めクリックできないようにしておきます(マウスに反応しない)。 mcを十字キーで移動させ、ある座標内(10<=x<=50、10<=y<=50)に入ったとき、 初めてボタンをクリックできるようにするためにはどのようにASを記述すればよいでしょうか? ifでmcが座標内に入っていたら、ボタンをenabled=trueにする感じでしょうか? ご回答よろしくお願いします。

    • ベストアンサー
    • Flash
  • flashのMCの中にMCを入れてその中のボタンでシーンを移動したいのですができません

    flashの シーン1で大元になる5つのMCで構成された大元のMCにはonClipEvent (enterFrame)のスクリプトを記述しています。 その5つのMCの中、それぞれに、ボタンがあります。そのボタンはシーン1からシーン2に飛ばすアクションをつけているのですが、まったく反応しません。 なぜか、同一シーンのフレーム移動は反応するのですが。ボタンの記述は下記です。 on (release) { _parent._parent.gotoAndPlay("work", 1);

    • ベストアンサー
    • Flash
  • MCに設定したonPressを他のMCのASから実行する方法

    WIN XP Pro,FLASH8 Pro,FlashPlayer8の環境で開発しております。 質問です。 MCに設定したonPressを他のMCのASから実行する事は可能でしょうか? ステージ内に無数に配置したMC(インスタンス、インスタンス名共にそれぞれのMC毎に異なる)にonPressにて、ASを記載しておいたのですが、 Functionにしておらず、onPressしないと実行させられないため そのonPressによるASをすべてキーダウンのトリガーに変更させる場合、それぞれすべてのASを書き換える事は困難なので、別のMCからキーダウンをトリガーとして、onPressを実行させたいのです。 解説が解り難くて申し訳御座いませんが、噛み砕いて言いますと onPressと記載したMCを実際にクリックさせる事無く ASによってクリックする事(クリックした事)に出来ないかという事なのです。 ちなみに、MC.onPressの返す値をTraceしてみたのですが、Undefindでした。 MC.onPress=trueやMC.onPress=clickなどとしてもダメでした。 もしご存知の方がいらっしゃいましたら、是非ご教授頂ければ 幸いです。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Flash
  • クリックボタン(onclick)の配置について

    画面に表示させるクリックボタンの配置についてお聞きします。 <button onClick="ボタン押下時の動作()">Click</button> 上記の様に、クリックボタンをWeb画面に表示させる場合なんですが、 画面に表示させる方法を"left"や"center"の様に大まかに設定するのではなく、 詳細に座標を指定して表示する方法はありますでしょうか?

  • シーン移動後に移動前のmcが残って表示される

    (gooメールを見る前にまたURLを記述してしまいました。これより前の質問は削除ください) シーン1、シーン2の構成になっています。 シーン1(home) 白枠:外部swfを読み込むmc(インスタンス名:"stage") アイコン:シーン2への移動ボタン on (release) { gotoAndPlay("info",1); } シーン2(info) 黒枠:外部swfを読み込むmc(中は透明。インスタンス名:"stage2") 四角緑(4つ):2列2行に配置。左上以外は外部swfにリンクしたmc ボタン:外部swfにリンクしたボタン information:外部swfを閉じるmc home:シーン1への移動ボタン on (release) { gotoAndPlay("home",1); } シーン2からシーン1へ移動すると、四角緑だけが残って表示されてしまいます。 更に、シーン2へ移動すると、四角緑が重複して表示されてしまいます。シーン2にあるボタンは表示されません。四角緑のmcの設定がおかしいのでしょうか? シーン1へ移動しても四角緑が表示されない方法を教えて下さい。 よろしくお願いいたします。

    • ベストアンサー
    • Flash