• 締切済み

gotoAndPlayでのインスタンス指定がうまくいかない

みなさんこんばんわ。質問があって来ました。 レベルはまだAS3を始めて1ヶ月の者です。 あるシーンで4つのボタンインスタンスを配置しており それぞれクリックすると別のシーンへ飛ぶように設定したいのです。 「Action」というアクション用レイヤーを作り その1キーフレーム目に ------------------------------------------------------------- function about_car(btn) { this.gotoAndPlay("about_car"); } menu_bt1.addEventListener (MouseEvent.CLICK,about_car); ------------------------------------------------------------- と記述しましたが「1120: 未定義のプロパティ menu_bt1 へのアクセスです。」 というエラーが出てしまいます。 menu_bt1というインスタンスは間違いなく存在してインスタンス名も入れているんですが・・。 Actionレイヤーへの入力が間違っているんでしょうか。 はたまたスクリプト自体が間違ってるんでしょうか。 単純に4つのボタンから各シーンへ飛ばしたいです。 4つのシーンはラベルレイヤーを作成し切り分け済みです。 乱文ですみませんが、もしお力貸していただければ幸いです。 よろしくお願いいたします。

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

みんなの回答

  • k_ort
  • ベストアンサー率33% (66/199)
回答No.1

全く同じと思われる風に(コピペ)作ってみましたが、きちんと動きました。 ボタンインスタンスのつづりや、本当にボタンに名前が付いているか確認をしたほうがいいかもしれません。なぜなら私もよくおかしーなーと思っていたら、結局インスタンス名を入れ忘れていることが多いからです。

関連するQ&A

  • ボタンとASが1フレーム目にないとエラーになるのは仕様ですか?

    CS4、AS3.0で作成しております。 クリックすると指定したシーンへ移動するスクリプトを作成しました。 ボタンが複数あるので、各ボタンにインスタンス名を入れてます。 //各ボタンが押されるのを監視 this.menu_btn.addEventListener(MouseEvent.CLICK,menu); this.shop_btn.addEventListener(MouseEvent.CLICK,shop); this.access_btn.addEventListener(MouseEvent.CLICK,access); //クリックされたとき、指定フレームまで移動 function menu(e:MouseEvent):void { this.gotoAndPlay(69); } function shop(e:MouseEvent):void { this.gotoAndPlay(75); } function access(e:MouseEvent):void { this.gotoAndPlay(78); } で、ボタンとASを1フレーム目に入れれば作動するのですが、両方とも2フレーム以降に持ってくるとエラーが出て作動しません。 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」と出ます。 ボタンの数を1つにしても同様でした。 プログレスバーを作るのに、2フレーム目に持ってきたいのですが、これはCS4の仕様かバグなのでしょうか? 回避する方法はありますでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • actionscript3.0で親階層にあるインスタンスの中のものを操

    actionscript3.0で親階層にあるインスタンスの中のものを操作したいのですが、うまくいきません。 具体的には、ボタンをクリックすると、ひとつ上の階層にある「aa_mc」の100フレームへgotoAndPlayするとしたいのですが、 スクリプトは以下の通りです。 //////////////////////////////////////////////////////// btn_mc.addEventListener(MouseEvent.CLICK, onClick); function onClick (eventObject:MouseEvent) :void { MovieClip(parent).aa_mc.gotoAndPlay(100); } //////////////////////////////////////////////////////// どなたかご教授お願いいたします。

  • as3でボタンにリンクをはる方法!

    質問ばかりで申し訳ないですが、お世話になります。 flashCS4&Actionscript3を使っているものです。 「ボタンにリンクをはる方法を探しています。 (どうしても 1093のシンタックスエラーになってしまい、困っています。)」 現在作成しているものは、以下のような構造です。 ************************************************************* ステージ ↓ムービークリップ【インスタンス名(menu_mc)】 ________________________________________ ・ボタン【インスタンス名(btn1_btn)】 ・ボタン【インスタンス名(btn2_btn)】 ・ボタン【インスタンス名(btn3_btn)】 ________________________________________ *************************************************** menu_mcの中で、以下のように記述しました。 btn1_btn.addEventListener(MouseEvent.CLICK,gotowebpage1); function gotowebpage1(event : MouseEvent) :void { navigateToURL(new URLRequest("​http://www.yahoo.co.jp"));​ } btn2_btn.addEventListener(MouseEvent.CLICK,gotowebpage2); function gotowebpage2(event : MouseEvent) :void { navigateToURL(new URLRequest("​http://www.yahoo.co.jp"));​ } btn3_btn.addEventListener(MouseEvent.CLICK,gotowebpage3); function gotowebpage3(event : MouseEvent) :void { navigateToURL(new URLRequest("http://www.yahoo.co.jp")); } すると、1093のシンタックスエラーになってしまいます。 うまく動作させる為には、他にどんな作業を行ったらいいのでしょうか、 よろしくお願いします!!!

    • ベストアンサー
    • Flash
  • Flash MCのモーショントウィーン

    Flash CS5 ActionScript 3.0にて制作しています。 ムービークリップに動きをつけて色を変更するスクリプトを書いています。 ・ボタン1を押すとムービークリップの色が変わる ・ボタン2を押すと10フレーム目に飛んでモーショントウィーン それぞれ機能は正常に動くのですが、ボタン1を押した後にボタン2を押すとモーショントウィーンが動きません。 ボタン2を押した後にボタン1を押す場合は動きます。 ムービークリップのインスタンス名はtest として下記のようなスクリプトを書いています。 どなたか、お力をお貸し下さい。 よろしくお願い致します。 btn.addEventListener(MouseEvent.CLICK, black); black(event:MouseEvent):void { var color = new flash.geom.ColorTransform(0, 0, 0, 1); test.transform.colorTransform = color; } btn2.addEventListener(MouseEvent.CLICK, btn2); function btn2(event:MouseEvent):void{ gotoAndPlay("10"); }

    • ベストアンサー
    • Flash
  • FLASH/一定時間停止後、再生されるscript

    flash CS4/ActionScript3.0にてサイトローテーションバナーを制作しております。 ムービークリップ「btn1_mc」をクリックするとフラッグ「scene1」を再生し、 「btn1_mc」にポインタが乗った時は一定時間停止し、再生されるという動きを作りたいのですが、初心者のため、うまくActionScriptが書けません。 setTimeout関数を使えば良いということはわかったのですが… 下記コードに書き加え、実装する方法を教えていただければ助かります。 よろしくお願いします。 btn1_mc.addEventListener(MouseEvent.CLICK,btn1Click); btn1_mc.addEventListener(MouseEvent.ROLL_OVER,btn1Over); btn1_mc.addEventListener(MouseEvent.ROLL_OUT,btn1Out); btn1_mc.buttonMode=true; function btn1Click(evt:MouseEvent):void{ gotoAndPlay("scene1"); } function btn1Over(evt:MouseEvent):void{ gotoAndStop("scene1"); btn1_mc.gotoAndStop(2); } function btn1Out(evt:MouseEvent):void{ gotoAndPlay("60"); btn1_mc.gotoAndStop(1); }

  • 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("サンプル"); }

    • ベストアンサー
    • Flash
  • AS3 記述方法

    ボタンが複数存在し、それぞれのボタンの処理をまとめたい時に どうするか考えています。 たとえばステージに3つのボタンインスタンス 「btn1」「btn2」「btn3」があるとします。 クリックすると、それぞれに応じた値を得るために ------------------------------------------------------------- btn1.addEventListener(MouseEvent.CLICK,syori1); function syori1(eventObject:MouseEvent):void{ trace("あんぱん"); } btn2.addEventListener(MouseEvent.CLICK,syori2); function syori2(eventObject:MouseEvent):void{ trace("しょくぱん"); } btn3.addEventListener(MouseEvent.CLICK,syori3); function syori3(eventObject:MouseEvent):void{ trace("カレーぱん"); } ------------------------------------------------------------- としているのですが、 たとえばもしこれが100個のボタンがあれば 100回同じような事を記述しないといけないので あまりよろしくないな・・・と思い、 ------------------------------------------------------------- for(var i=1; i<=3 i++){ this["btn"+i].addEventListener(MouseEvent.CLICK,syori); } function syori(eventObject:MouseEvent):void{ trace("ジャム"); } ------------------------------------------------------------- としたのですが、これではどのボタンをクリックしても"ジャム"がトレースされます。(当然ですが・・・) このような時、まとめて記述するにはどうすればよいでしょうか?

  • ボタンインスタンスにスクリプトを記述するやり方

    flash CS3 シーン1をループさせないで止めたいので「stop();」が上から2番目のレイヤーの1459行目のキーフレーム(最後のフレーム)に入っていて、一番上のレイヤー(1459行目の最後のフレーム)にボタンのインスタンスを配置して「もう一度みる」をクリックすると最初からFlashが見れるようにしたいと考えています。 この場合のアクションスクリプトの記述の仕方を教えてください。 使うスクリプトは on (press) { getURL("http://www.******/"); } でいいんですよね? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • gotoAndPlayで反応がありません。

     ムービークリップ内のボタン(ボタンは複数存在しています)[プルダウンメニューを作成しました]に対して、 on (release) { gotoAndPlay("フレーム番号"); } と記述し、フレーム移動をさせようとしたのですが、 反応がありません。 Flashを使い始めてまだ間もなく、アクションスクリプトも初心者です。 フレームアクションは、キーフレームに設定しないといけないと参考書に書いてあったのですが、そうするとムービークリップ内のボタンには、gotoAndPlayの使用はまちがっているのでしょうか? フレームアクションではないのですが、同じ部分に on (release) { getURL("**.html"); } と記述すると問題がなく動きます。 過去の質問も読んでみたのですが、どの質問が自分の疑問に当てはまるかよくわかりません。 どなたかご教授願います。 以上の文章で理解しにくければ、追記致します。

    • ベストアンサー
    • Flash
  • ボタンについて(CS4,AS3)

    HPのメニュー用に、クリックするとフレーム移動するボタンを作っています。 フレーム1以外のフレームには、フレーム1に設置してあるボタンで指定したフレームとは異なるフレームに 移動させたいので、新たにフレーム1のボタンとは別のボタンを設置しています。 プレビューでフレーム1のボタンをクリックすると正常に動くのですが、 フレームが移動した後に再度ボタンをクリックすると動かず、全てのボタンが反応しません。 ■フレーム1に設置してあるボタン test_a1.addEventListener(MouseEvent.CLICK , testA1); test_b1.addEventListener(MouseEvent.CLICK , testB1); test_c1.addEventListener(MouseEvent.CLICK , testC1); function testA1(event : MouseEvent) :void{ gotoAndPlay(1); } function testB1(event : MouseEvent) :void{ gotoAndPlay(51); } function testC1(event : MouseEvent) :void{ gotoAndPlay(101); } ※フレーム1、51、101にはstop();で停止するようにしています。 ■フレーム51に設置してあるボタン test_a2.addEventListener(MouseEvent.CLICK , testA2); test_b2.addEventListener(MouseEvent.CLICK , testB2); test_c2.addEventListener(MouseEvent.CLICK , testC2); function testA2(event : MouseEvent) :void{ gotoAndPlay(11); } function testB2(event : MouseEvent) :void{ gotoAndPlay(61); } function testC2(event : MouseEvent) :void{ gotoAndPlay(111); } コンパイルエラーは出ていません。 ネットで調べても何故、フレーム1以外のボタンが動かないのか分かりません。 どなた様か教えていただけると助かります。 使用しているソフトはAdobe Flash CS4で、スクリプトはActionScript3.0です。 よろしくお願いします。

専門家に質問してみよう