AS3のラベル移動について

このQ&Aのポイント
  • AS3でのラベル移動の制御につまっています。Aに移動する前にBに移動してからAに移動する方法や、Aのアニメーションを逆再生してからBに移動する方法を知りたいです。
  • AS3でのラベル移動の制御につまっています。ラベルAに移動する前にラベルBに移動してからラベルAに移動したいです。
  • 初心者のためAS3でのラベル移動の制御が難しいです。ラベルAに移動する前にラベルBに移動する方法を教えてください。
回答を見る
  • ベストアンサー

AS3のラベル移動について

初めて質問させていただきます。 最近Flashを使い始めた初心者です。 FlashはCS3でAS3.0を使っています。 .flaを添付できればいいのですが、無理みたいなので、文章で書きます。 タイトル通りに、AS3でのラベル移動の制御でつまっています。 例) homeBtn_mc.addEventListener(MouseEvent.CLICK,homeBtnClick); function homeBtnClick(event:MouseEvent):void{ gotoAndPlay("A"); } でAラベルに移動は出来ます。 制御したいのは、例えば、Aに移動する前にBに移動してからAに移動する。 或いは、curentlabelがAだとして、Aのアニメーションを逆再生してから、Bに移動する。 のような、動きです。 すいません。上手く伝えれなくて。 ようは下記のサイトのような動きをラベルで表現したいのです。 http://www.ideosfera.com.br/english/ よろしくお願いいたします。

  • Flash
  • 回答数3
  • ありがとう数2

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

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

#2です。 ついうっかり書き間違いです。失礼しました。 > 例えば _root ある変数 「hensuu」 に   ↓修正変更↓ 例えば root にある変数 「hensuu」 に です。 _root ではなく root です。 ActionScript 3.0 流に言うなら 『例えば MovieClip(root).hensuu に』 です。

その他の回答 (2)

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

#1です。 > 現在がAINというラベルにいるとして、 このとき 例えば _root ある変数 「hensuu」 に "A" とでも代入しておきましょうか。 > ボタンBをクリックで、BINというラベルに移動するとします。 このボタンBをクリックしたときに 例えば同じ _root ある変数 「hensuu」 に "B" とでも代入しましょうか。 > BINラベルに移動する前にAOUTのラベルに移動して、 つまり ボタンBをクリックしたときにAOUTのラベルから再生開始するということでですよね。 > しかもAOUTのアニメーションの再生が終わるのを待ってから、 > BINラベルにジャンプみたいな動きは、 AOUTのアニメーションの再生終了フレームで 『もし _root ある変数 「hensuu」 に "B" が入っていれば BINラベル へ gotoAndPlay()』 という動作をさせれば良いだけでしょう? > このサイトの応用で出来ますか? 上の説明は #1 で書いたサイトの説明と同じです。

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

何か適当な変数を作って その変数の値によって、その後(第一段階の目的達成後)の動向を変えれば良いだけではないでしょうか。 ActionScript 1.0 用のサイトですが考え方は同じでできますよ。 「Suzuka 基礎・基本 if文 & else if 文」 http://suzupara.iinaa.net/kiso051.html

shin0514
質問者

お礼

早速のご回答ありがとうございます。 教えていただきました、サイトを見たのですが、ちょっと?が残る感じです。 現在がAINというラベルにいるとして、ボタンBをクリックで、BINというラベルに移動するとします。 BINラベルに移動する前にAOUTのラベルに移動して、しかもAOUTのアニメーションの再生が終わるのを待ってから、BINラベルにジャンプみたいな動きは、このサイトの応用で出来ますか? AINはフェードイン、AOUTはフェードアウトのようなアニメーションがついてると思ってください。 ちなみに、ボタンを6つ(A~F)、ラベルは12個(A~Fのそれぞれ、IN・OUT用)配置します。なので、AーB間だけではなく、A-F間の相互移動になります。 さらに補足ですが、全ての動きはメインタイムライン上のみで制御するものとします。 サンプルファイルをアップロード出来る方法があれば教えてください。 よろしくお願いします。

関連するQ&A

  • AS3のコードをシンプルに

    AS3のコードについてご教授お願いします。 下記のようなコードがあるとします。 btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.addEventListener(MouseEvent.CLICK,cClick); function aClick(e:MouseEvent):void { this.gotoAndPlay("A"); // trace("Aclick"); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.addEventListener(MouseEvent.CLICK,cClick); btnA_mc.removeEventListener(MouseEvent.CLICK,aClick); } function bClick(e:MouseEvent):void { this.gotoAndPlay("B"); // trace("Bclick"); btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnC_mc.addEventListener(MouseEvent.CLICK,cClick); btnB_mc.removeEventListener(MouseEvent.CLICK,bClick); } function cClick(e:MouseEvent):void { this.gotoAndPlay("C"); // trace("Cclick"); btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.removeEventListener(MouseEvent.CLICK,cClick); } btnA_mc.buttonMode = true; btnB_mc.buttonMode = true; btnC_mc.buttonMode = true; この中の、 btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.removeEventListener(MouseEvent.CLICK,cClick); のような、重複する部分を、配列か何かでまとめたいのですが、いまいち方法が分かりません。 ボタンAをクリックで、ボタンAは効かなくなる。ボタンBorCをクリックでボタンAが復活みたいな感じです。 宜しくお願いします。 flashCS3 ASはver3.0でお願いします。

    • ベストアンサー
    • Flash
  • AS3のボタンアクションについて

    FlashCS3 ActionScript3.0 ボタンアクションでつまづいています。 http://www.cucinadicasamia.fr/ 上記サイトのように、ボタンをクリックすれば、ダウンの状態を保持、 他のボタンをクリックでダウンの状態を解除。 のようにしたいのですが、上手くいきません。 下記のようにコードを書いたのですが。。。 A_mc.addEventListener(MouseEvent.CLICK,Click); A_mc.addEventListener(MouseEvent.ROLL_OVER,Over); A_mc.addEventListener(MouseEvent.ROLL_OUT,Out); B_mc.addEventListener(MouseEvent.CLICK,Click); B_mc.addEventListener(MouseEvent.ROLL_OVER,Over); B_mc.addEventListener(MouseEvent.ROLL_OUT,Out); function Over(event:MouseEvent):void{ event.target.gotoAndPlay("B"); } function Out(event:MouseEvent):void{ event.target.gotoAndPlay("A"); } function Click(event:MouseEvent):void{ trace("click"); event.target.gotoAndPlay("C"); } A_mc.buttonMode = true; B_mc.buttonMode = true; /////////////////////////////////////////////////////////////////////// function Clickとfunction Overが同時に発生しているので上手くいかないのでしょうか。。。 ご教授お願いいたします。

  • ボタンについて(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です。 よろしくお願いします。

  • as3.0でのフレーム移動制御のスクリプト

    当方、FLASH cs4、as3.0で製作をしております、まだ初心者です。 以下のタイムラインを動作させようとしているのですが、どうにも行き詰まってしまいこちらに参りました。 どなたかご教授頂けないかと願っております。 どうぞ宜しくお願い致します。 flaステージ上に(A_btn)、(B_btn)、(C_btn)、(D_btn)、(C_btn)という5個のボタンインスタンスを配置しています。 オープニングと同時にA_mcの前半を再生してA_stopラベルのフレームで停止します。 (9フレーム目のasには stop(); 記述済み) その状態で(C_btn)や(D_btn)をクリックした時に、A_stopラベルのフレームからA_closeラベルのフレームに移動して A_mcの後半を再生して、A_mcが終了する(17フレーム目)と同時にB_mcを飛び越えてC_startやD_startラベルのフレームに移動しムービーを再生するには、どのフレームにどんなラベルを追加したり、スクリプトを記述すれば良いか具体的にお教え願えませんでしょうか。 同様にB_mcからC、Dを飛び越えてE_mcに移動したり、E_mcからAやBにも移動させたいです。 また、上記はタイムラインアニメですが各々のmcをswfとしてロードする場合も合わせてご教授頂けると幸いです。

  • ボタンをクリックして画面遷移させる方法について

    flash初心者です。 cs4でAS3.0を使っています。 ボタンをクリックするとgotoAndPlayでラベルの指定してあるフレームに飛ぶように設定したいのですが、クリックしても全く反応してくれません。 ボタンは「next」と「top」の2つを画像(ボタンシンボル)で作成しています。 アニメーション後にこの2つのボタンが出て、それぞれをクリックすると別のアニメーションに飛ぶという流れを考えています。 記述したAS3.0は下記です。 --------------------------- stop(); var topBtn01:SimpleButton = new SimpleButton(); var nextBtn01:SimpleButton = new SimpleButton(); topBtn01.addEventListener(MouseEvent.CLICK,top01Click); nextBtn01.addEventListener(MouseEvent.CLICK,next01Click); function top01Click(event:MouseEvent):void{ gotoAndPlay("top01"); } function next01Click(event:MouseEvent):void{ gotoAndPlay("next01"); } ----------------------------------- それぞれのボタンにインスタンス名を「topBtn01」「nextBtn01」とつけています。 ちなみに、エラーは何も出ていません。 ただ、変数を定義しているはじめの2~3行目を抜くと下記のエラーが出ていました。 --------------------------- TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at top_main_fla::MainTimeline/frame251() --------------------------- どうしたら良いか、どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • 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
  • AS3.0 gotoAndStopを使いたい

    最近ASを始めた初心者です。 Flash AS3.0で画面遷移(フレーム移動)をカスタムクラスを用いて行いたいのですがうまくいきません。どうすればよいのかどなたか解る方教えてもらえないでしょうか。 よろしくお願いします。 flaファイル _______________________________________________________________________________ import Frame; stop(); //Aは移動するフレーム名 //aaaはボタンの名前 var Obj1:Frame = new Frame(aaa,"A"); _______________________________________________________________________________ asファイル _______________________________________________________________________________ package{ import flash.display.*; import flash.events.*; public class Frame{ var my_btn:SimpleButton; var my_Frame:String; public function Frame(btn:SimpleButton, Fr:String){ my_btn = btn; my_Frame = Fr; my_btn.addEventListener(MouseEvent.CLICK,go); } public function go(event:MouseEvent):void{ gotoAndStop(my_Frame); } } } ____________________________________________________________________________________

    • ベストアンサー
    • Flash
  • アニメーションが途中で止まってしまいます。

    初心者なので、Flashの本で勉強しています。 この本に書いてあった通りにマウスが乗ると四角が横に伸びて、マウスが離れるともとに戻るというボタンを作りました。そして「制御」の「ムービープレビュー」をすると、最初の1回か2回はマウスにあわせてアニメーションしてくれるのですが、そのままマウスを動かしてると、アニメーションが固まったり、四角が伸びずにパッと大きさが変わるようになったり、最初からアニメーションしてくれなかったりします。 作ったものはこれです。 http://www.ac.auone-net.jp/~mrs/ どうしてでしょうか? FlashCS4を使っています。 以下は画像にある「AS2」の1フレーム目のActionScriptです。 よろしくお願い致します。 import flash.events.EventDispatcher; import flash.display.MovieClip; //対象に対する操作=イベント(マウスが上に乗る)と処理を設定します。// this.addEventListener(MouseEvent.MOUSE_OVER,long01); function long01(event:MouseEvent):void { //イベントに対するアクション(設定フレームに移動して再生)を設定します// this.gotoAndPlay("S1"); } //対象に対する操作=イベント(マウスが別の場所に移する)と処理を設定します。// this.addEventListener(MouseEvent.MOUSE_OUT,long02); function long02(event:MouseEvent):void { //イベントに対するアクション(設定フレームに移動して再生)を設定します// this.gotoAndPlay("S2"); }

    • ベストアンサー
    • Flash
  • flashcs4 as3.0のエラーについて

    TypeError: Error #1010: 条件は未定義であり、プロパティがありません。 at 2mouse_03_fla09_as3_fla::MainTimeline/mymouse() 以下のスクリプトを実行すると上記のエラーが発生してしまいます。 ネットで調べてもわかりませんでした。AS3.0を学習していることろです。 よろしくお願いいたします。 ---------------------------------------------------------- やっていることは、マウスをMC(mc)に変換して、mc1との当たり判定をしたいだけです。 実行すると、実行画面でマウスを動かすと同時に上記のエラー出てしまいます。 ----------------------------------------------------------- stop(); mc.visible=false; myb.stage.addEventListener(MouseEvent.CLICK, mystart); function mystart(event){ myb.visible=false; Mouse.hide(); mc.visible=true; mymouse(event); } mc.stage.addEventListener(MouseEvent.MOUSE_MOVE,mymouse); function mymouse(event):void{ mc.x = stage.mouseX; mc.y = stage.mouseY; mc.event.updateAfterEvent(); } mc.stage.addEventListener(Event.ENTER_FRAME,mymc); function mymc(event){ if(mc1.hitTestObject(mc)){ mc.stage.removeEventListener(Event.ENTER_FRAME,mymouse); mc.visible=false; } }

    • ベストアンサー
    • Flash
  • ボタンと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