• ベストアンサー

3.0の絶対パス

AS3.0です。 ルートのタイムライン上に「menu」と言うインスタンス名のMCがあり、その入れ子に「sample」というインスタンス名のボタンがあり、これをクリックすると飛ぶASを作成したいのですが、絶対パスを入力してもエラーが出ます。 rootはサポートされないようになりましたと・・・ 相対パスでも同じく出ます。 ネットで調べてもrootの記述しか検索できず、3.0のやり方がわかりません。 ちなみに下記を絶対パスにしたいのですが、そもそも 「this.sample_btn.」を相対パスにするのか、「this.gotoAndPlay」を相対パスにするのか、それとも両方するのかすらもわかりません。 よろしくお願い致します。 this.sample_btn.addEventListener(MouseEvent.CLICK,menusample); unction sample(e:MouseEvent):void { this.gotoAndPlay("サンプル"); }

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

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

> rootはサポートされないようになりましたと・・・ root はサポートされていますよ。 サポートされなくなったのは root ではなく _root です。 ただ,「menu」というインスタンス名があまりよろしくありません。 ActionScript 2.0 以下での MovieClip.menu プロパティ と勘違いするようで, > Warning: 1058: 移行の問題 : プロパティ menu はサポートされないようになりました。 というエラーが出ます。 エラーメッセージが出るだけで動作には問題がないので無視していても良いとは思うのですが, 気持ちが悪いので「menu」というインスタンス名は使わない方が良いように思います。 root に 「menu_mc」 というインスタンス名のムービークリップがあって, その中に「sample_btn」 というインスタンス名のボタン(シンプルボタン)があったとします。 そして その 「sample_btn」 をクリックしたときに root を "サンプル" というラベル名のフレームに進めて再生するとします。  root ←"サンプル"というフレームラベルがある   └menu_mc      └sample_btn その場合のスクリプト例↓ MovieClip(root).menu_mc.sample_btn.addEventListener(MouseEvent.CLICK,sample); function sample(e:MouseEvent):void { MovieClip(root).gotoAndPlay("サンプル"); } 「rootプロパティでメインタイムラインの関数にアクセスできない」 http://fumiononaka.com/TechNotes/Flash/FN0707001.html

anegonn
質問者

お礼

詳しくありがとうございました。 無事作成できました。

その他の回答 (1)

回答No.1

stageが表示オブジェクト群の一番親 いってみれば過去のrootみたいなもんです 絶対パスとして書きたいなら stageからのパスってことになります stage.menu.sample_btn ってカンジですね ところで関数の"f"抜けと リスナー登録の関数名と 関数名が一致してないのは ただのコピーミスですか?

anegonn
質問者

お礼

ありがとうございます。 ご指摘の部分はコピーミスです。