• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:こんにちは。 )

ActionScript2.0でステージ上のインスタンスの名前を取得する方法

H240S18B73の回答

回答No.1

別にイベントターゲットを取得するようなやり方しなくても どうせインスタンスを巡回しなくちゃいけないのだから var nameList=["a","b","c"] for each(var nm in nameList){ this[nm].onRelease=function(){gotoAndPlay(nm,1) } みたいなカンジでもいいかと

hk-sulo
質問者

補足

回答いただき、ありがとうございます。 いただいたスクリプトの中で、for eachという部分がよく分かりません。 スクリプトの意味的にはperlのforeachのようなものでしょうか? flashのヘルプを見ても載っていないようです。

関連するQ&A

  • ActionScriptでの繰り返し記述をすっきりまとめたい

    FLASHのActionScriptを勉強中です。 繰り返し同じ様なものを記述する場合、for文か何かを使うと思うのですが、以下の場合はどうすればいいのでしょうか? *プログラムの内容は複数のインスタンスを表示してクリックで順次消えるというものです。インスタンスに記述ではなく、フレームに記述しています。(イベントハンドラメソッド) this.b1.onRelease = function(){ _root.b1._visible = false; }; this.b2.onRelease = function(){ _root.b2._visible = false; }; this.b3.onRelease = function(){ _root.b3._visible = false; };      以下繰り返し… お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • スライドプレゼンテーション機能を使ったときのボタンでのフレーム操作

    マックでFlash MX Professional 2004を使用しています.新たに追加されたスライドプレゼンテーションのインターフェースでプレゼンを作成しているのですが,stop();やgotoAndPlay()が反映されません. ステージ全体を覆う形で透明のボタンを作り,そこをクリックすると(すなわち画面のどこかをクリックすれば)あるフレームにとばしたいのです. ステージのタイムライン1フレーム目にアクションとして clickboard3.onRelease = function() { _parent.gotoAndPlay("scene4") } *clickboard3は透明ボタン,scene4は飛ばせたいフレーム(この場合,次のシーンの1フレーム目)です. このやりかたで,2003年版のMXまではうまくいっていました. 今回professionalのスライドプレゼンテーションではうまくはたらいてくれません.このスライド機能を使ったテンプレートも付属されていて,その中にNEXTボタンとBACKボタンが搭載されています.スクリプトを見てみるとかなり複雑な感じで,理解できませんでした. よろしくお願いします. PS 昔のFLASH解説をみてみるとボタン操作の記述では onRelease { 指示 } だけでよかったのに,最近のバージョンでは instancename.onRelease = function() { 指示 } となっています.この違いって何なんのでしょうか?下でなぜfuntion()が必要なのかがわからないです.

    • ベストアンサー
    • Flash
  • スクリプトをまとめて書くには

    Actionscript 2.0で作成しています。 例えばムービークリップaaa1~aaa10までと、bbb1~bbb10があったとして、 aaa1をクリックするとaaa1とbbb1が動く、というようなスクリプトを書きたい場合、 for( i = 1 ; i <= 10 ; i++ ){ eval("aaa"+i).onRelease = function(){ this.gotoAndPlay(2); _root.eval("bbb"+i).gotoAndPlay(2); } } としてもbbbの方が動きません。 iの値がeval("bbb"+i)の時点で11になってしまってます。 なので現状forを使わずに書いているのですが、 このような方法を簡単な記述で実現するにはどうすればいいのでしょう? それと、同じ動作を別のムービークリップにさせたい場合、 まとめて書くことはできますでしょうか? (例えばこれをまとめて書くとか) aaa.onRelease = function(){ _root.stop(); } bbb.onRelease = function(){ _root.stop(); }

    • ベストアンサー
    • Flash
  • 音楽が輪唱してるように聞こえてしまう

    いつもお世話になってます。 環境はWindews XP、FLASH Basic8 を使用してます。 シーンは3つあり、各シーンに音楽を設定しています。 音楽はフレームに設定しています。 シーン1→01.wavを設定 シーン2→02.wavを設定 シーン3→03.wavを設定 (こんな感じで音楽を設定しています。) 全てのシーンには、他のシーンの1フレーム目から再生されるように以下のようなAction Scriptをムービークリップに設定しました。 _root.bt1.onRelease = function() { gotoAndPlay("1", 1); }; _root.bt2.onRelease = function() { gotoAndPlay("2", 1); }; _root.bt3.onRelease = function() { gotoAndPlay("3", 1); }; ですが、これだとクリックした時に、シーンは切り替わっても、音楽が切り替わらず、輪唱しているようになってしまうんです。 シーンが切り替わると同時に、音楽も切り替わるようにするにはどうしたらいいのでしょう??? まだFlashを始めたばかりで、Action Scriptのこともまだよく分かっていません。。。 どこをどうしたらいいのか、初心者な私に、どうか皆様ご教授下さい。 また、足りない情報がありましたら、ご指摘下さい。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 複数のクリックボタンにより再生と停止場所を指定する方法

    複数のボタンを用意し、クリックするボタンにより異なるフレーム数で停止たいと思っております。 停止したいフレームごとにstop();を入れると、そこで毎回止まってしまうのでボタン毎に停止場所を指定しようと、以下のように試してみましたが、出来ませんでした。 停止場所をラベルでも指定してみましたが、出来ませんでした。 stop(); _root.next1.onRelease = function() { gotoAndPlay(5); this.stop(10); } _root.next2.onRelease = function() { gotoAndPlay(5); this.stop(20); } どなたかお考えのあるかたご教授いただけますと幸いです。 当方 Flash8 ActionScript2.0 を使用しています。

  • ActionScriptで対象外の音まで止まる・・・。

    フレームに以下のような記述をしたのですが動作が変です。初期段階で「oto1」が鳴っており、インスタンス「b1」をクリックで止まります。これは想定どおりの動作なのですが、「b2」をクリックしても止まるのです。これは理解できません。 何が誤りなのか教えていただけませんでしょうか? よろしくお願いいたします。 (インスタンス名は正しくつけています) oto1 = new Sound(); oto2 = new Sound(); _root.oto1.attachSound("s1"); _root.oto2.attachSound("s2"); _root.oto1.start(0, 99); this.b1.onRelease = function(){ _root.oto1.stop(); }; this.b2.onRelease = function(){ _root.oto2.stop(); };

    • ベストアンサー
    • Flash
  • すべてのMCを1フレーム目へ

    ステージ上にMCのインスタンスが100個あるとします。 ボタンのクリックで全部のMCを1フレーム目へ移動させたいと思っています。 _root.EVENT_btn.onRelease = function() { _root.A_mc.gotoAndStop(1); _root.B_mc.gotoAndStop(1); _root.C_mc.gotoAndStop(1); _root.D_mc.gotoAndStop(1); : : } とひとつずつ書くしかないのでしょうか? ほかに効率のよい書き方はありますか? (注)すべてのインスタンスの親は同一オブジェクトではありません。

    • ベストアンサー
    • Flash
  • actionscript2.0から3.0へ、

    actionscript2.0から3.0へ、 actionscript2.0から3.0へ、 大変申し訳ございませんが、 どなたか書き換えていただけないでしょうか? 情報が足りない場合ご指摘くださいましたら 追記いたします。 flash8にて制作されたFlaをCS4にて修正しています。 3.0がわかるものが出来なくなってしまったので、 こちらに書かせていただきました。 400フレームのものなのですが、1フレームに下記のスクリプトがあります。 btnSkip.onRelease = function() { this._visible = false; gotoAndStop("end"); btnRepeat._visible = true; } 400フレーム目には下記のスクリプトがあります。 stop(); btnRepeat._visible = true; btnSkip._visible = false; btnRepeat.onRelease = function() { gotoAndPlay("start"); this._visible = false; btnSkip._visible = true; } みたところステージには、スキップとリピートのムービークリップがあります。 スキップをクリックすると、400フレーム目に飛んでストップ、リピートを押すと1フレーム目に戻って再生、という動作です。 修正前(2.0)は正常に動作していました。 これを3.0に書き換えていただきたいのです。 大変恐縮なのですが、大至急直さないといけないのです。。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASH8でActionscriptが動きません

    FLASH8のActionscriptを使って簡単なイベント処理を実行したいのですが、うまくいかず困っています。 conts1_btnというインスタンス名を付けたボタンをクリックしたら、Contents1というラベルを付けたフレームに飛ぶという処理です。 以下、そのコードです。 function go_conts1(btn1event) { this.gotoAndPlay("Contents1"); } conts1_btn.addEventListener(MouseEvent.CLICK,go_conts1); FLASH CS3の参考書を見て、記述したのですが8とCS3では記述方法に違いなどあるのでしょうか?宜しくお願いします。

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

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