• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:actionscript 2.0 配列型変数をグローバル変数として扱いたい。)

ActionScript 2.0で配列型変数をグローバル変数として扱う方法

このQ&Aのポイント
  • ActionScript 2.0で配列型変数をグローバル変数として扱う方法について教えてください。
  • ムービークリップ内でグローバルな値を共有するため、_global.hoge = _name(ムービーのインスタンス名)という記述をしました。しかし、複数のムービークリップが存在する場合、上書きされてしまいます。
  • 配列を使って変数名の重複を回避しようと試みましたが、_global.hoge[_name] = _nameという記述ではグローバル変数として扱われず、値を取得することができません。どのようにすれば配列変数をグローバル変数として扱えるでしょうか?

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

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

普通にできるようですが。 例↓ ------------------------------------------------- var i:Number; // 空のムービークリップを9個ほど作ってみる for (i=0; i<=9; i++) { var my_mc:MovieClip = this.createEmptyMovieClip("_mc"+i, i); } // グローバルな配列を作成 _global.hoge = new Array(); // グローバルな配列の要素に空のムービークリップへの参照を格納 for (i=0; i<=9; i++) { _global.hoge[i] = this["_mc"+i]; } // 配列の各要素とそのインスタンス名を出力してみる for (i=0; i<=9; i++) { trace(_global.hoge[i]); trace(_global.hoge[i]._name); } ------------------------------------------------- 最後の for (i=0; i<=9; i++) { trace(_global.hoge[i]); trace(_global.hoge[i]._name); } のみを 他の階層タイムラインに移動させてもちゃんと取得できましたよ。

yuzuru0024
質問者

お礼

回答ありがとうございます。 _nameがどうやらインスタンス名に数字を入れていても 文字列の型としてしか取り出せないらしく _global.hoge["_name"]と連想配列扱いにするみたいでした。 それが原因で共用できなかったみたいですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • インスタンス名の指定に変数を使いたい

    ある一つのボタンオブジェクトで、マウスイベントによって別のムービーをコントロールしたいのですが、 同じボタンでも時々の状況によってコントロールする対象となるムービーが違うのです。 そこで、状況1では変数Aにムービー1のインスタンス名を、状況2では同じ変数Aにムービー2のインスタンス名を代入し、ボタンオブジェクトのスクリプトの中で変数Aの値をコントロール対象となるムービーのインスタンス名として使って、結果的に状況次第で操作対象を変える、ということは出来ないのでしょうか? traceアクションで見ていると変数の値は正しく変化しているのですが、ムービーのコントロールはまったくできず、困っております。 ボタンには、変数Aがnameだとすると、 on (rollOver) {   trace(name);   _root.name.gotoAndStop(2); という記述をしております。 解決策をご存知の方、どうかご回答よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ムービークリップ内の変数について

    ムービークリップ内で扱った変数をルートで取り扱う時は _root.ムービークリップインスタンス名.変数名 このような形で取り扱うのでしょうか?。 また、ルートの1フレーム目のフレームアクションで変数を定義していた場合は、単に変数名だけで取り扱えるのでしょうか?。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 配列でデータを渡したい

    CGIで、配列を使ってある変数を渡したいのですが、渡す側、渡される側でどのような記述をすればよいのでしょうか。 PHPでは <form action="hoge.php"> <input type="text" name="hoge[]"> <input type="text" name="hoge[]"> </form> $_POST['hoge'][0],$_POST['hoge'][1] としておりましたが、perlではどのように記述すればよいでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Perl
  • インスタンス名に変数を代入 (Flash)

    複数個あるインスタンスをその都度変数を参照して希望する一つのムービークリップの可視、不可視を制御したいと思っています。 var Pagecount:Number = 0; 1フレーム目に↑を記述して変数を定義し、その変数の状態によってある希望するムービークリップの可視、不可視を制御したく、該当箇所に以下のようにASを記述しました。 (変数には条件によって1~50が代入されています。) btn_[Pagecount].visible = true; 上記の文ではエラーとなってしまいムービークリップを制御出来ませんでしたので どなたか正しい記述の仕方を教えていただけないでしょうか。 Flash、アクションスクリプト共に初心者の為、見当違いな記述をしているかと思いますが 解決策が分からず困っておりますので助けていただけましたら幸いです。 何卒、宜しくお願い致します。 ※AS3、Flash CS5、Mac環境となります。

    • ベストアンサー
    • Flash
  • <Flash>ムービークリップにアクションスクリプトを記述できない。

    <ムービークリップ>インスタンスにアクションスクリプトを 記述するために、スクリプトペインを開くと、 「現在の選択範囲にアクションを割り当てることはできません」 と表示されます。 きちんとムービークリップ化していますし、 インスタンスも選択しています。 でもフラッシュを勉強して間もないので、 おそらく根本的ななにかに気づいてないのだと思います。 書籍に書いてある通りに作業を進めているのですが、 うまくいきません・・・。 書籍に付属しているサンプルデーターでは、 きちんとムービークリップにスクリプトが記述されています。 バカな質問になっているかもしれませんが、 宜しくお願いいたします。

  • 【ActionScript】ムービークリップ間の変数の受け渡しのやり方は?

    ムービークリップ間の変数の受け渡しがいまいちわかりません。 例えば、 ・_root.mc1 及び、 ・_root.mc1.mc2 というインスタンスがあった場合、 _root.mc1.mc2 のフレームに a = 100; と書き、 _root.mc1 のフレームに trace(_root.mc1.mc2.a); と書いても「undifined」と出るだけです。 (上層の値を下層で受けることはできるんですが、この例のように下層→上層の受け渡しはできないのです。) どうすればインスタンス間の変数の受け渡しができるのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 配列演算子を使って変数を使いたい

    いつも、ありがとうございます。MAC OSX Flash8です。 ランダムで作った変数でムービークリップのタイムラインを使って複数のmcを複数の位置にランダムに配置しようとしています。 この時に、変数を使って階層の中のmcのインスタンス名にgo toを渡したいのですがうまくいきません。配列演算子の使い方がまだよくわかっていないためだと思います。スクリプトは以下のようです。 _root.shuffle.gotoAndStop(sfl[tim]) if (tim == 1) { _root.shuffle.shuffle+sfl[1].shiro+ichi[1].gotoAndStop(1) _root.shuffle.shuffle+sfl[1].shiro+ichi[2].gotoAndStop(nise[1]) _root.shuffle.shuffle+sfl[1].shiro+ichi[3].gotoAndStop(nise[2]) } 3種類のランダムで作った変数は、sfl[1] ichi[1] nise[1] です。 nise[1]はこのままで使えるようでした。たとえばshuffle1の1にsfl[1]をshiro1の1にichi[1]をあててランダムでできている数字を入れたいのですがどうしたらいいのでしょうか? よろしく、お願いします。

    • ベストアンサー
    • Flash
  • 配列の呼び出し方について

    制作環境:CS3 配列を作成し、変数を使って呼び出そうとするとうまくいきません。 ■親フレーム var mojimc1 = [0,1,2,"文章"]; var moji_txt = ""; ■下のムービークリップ(インスタンス名:mc1)     on (release) {       var nam = _name;       this._parent.moji_txt =this._parent["moji" + nam + "[3]" ];       trace(this._parent.moji_txt);     } とすると、traceの結果が、「undefined」になります。 変数を使わず   this._parent.moji_txt =this._parent.mojimc1[3]; とすると問題無く「文章」となります。 書き方が間違ってるのでしょうか?どなたか、よろしくおねがいします。

    • ベストアンサー
    • Flash
  • flash ウインドウの大きさを変更しても常に定位置

    falsh8でアクションスクリプトのバージョンは1でわからないことがあるので教えてください。 ステージ上に、 ムービークリップの インスタンス名 mc1 と ムービークリップの インスタンス名 mc2 と ムービークリップの インスタンス名 mc3 を配置しております。 ブラウザのウインドウの大きさを変更しても常に、 mc1 はウインドウの最上部に表示 mc2 はウインドウの中央部に表示 mc3 はウインドウの最下部に表示させたいのですが、どういうスクリプトを書けばよいでしょうか? 教えてください、よろしくお願いします。

  • JavaScriptで特定の変数に値が代入されるのを禁止する。

    JavaScriptで、既存の変数に値を代入し、その後の上書き(その変数への値の代入)を禁止するにはどのようにすればよいでしょうか。 <script type="text/javascript"><!-- var hoge = "hogeは初期化されてます"; hoge = "hogeは変更されました";//ここ以降での変更(代入)を禁止したい。 hoge = "hoge変更2回目"; alert(hoge); //--></script> というスクリプトを書いたときに、alert(hoge)で「hogeは変更されました」と表示させたいのです。 他の方法は駄目です。この方法だけでお願いします。 よろしくお願いします。

赤面症の治し方とは?
このQ&Aのポイント
  • 赤面症とは、特定の人や特定のワードを見たときに顔が赤くなってしまう症状です。
  • 赤面症は社交不安障害の一つであり、人とのコミュニケーションに困難を感じることがあります。
  • 赤面症を治すためには、心理療法や薬物療法などがありますが、実際に効果があるのかは人によって異なります。
回答を見る

専門家に質問してみよう