- 締切済み
createTextFieldを使う際にインスタンス名を動的に変える方法について
お世話になります。 my_mc.createTextField("Menu_TXT",2,200,150,30,12) 通常、上記のようなスクリプトを書くとmy_mcにMenu_TXTというテキストフィールドを配置するのですが、これをMenu_TXT0~Menu_TXT10まで作成したい場合、for文を使って構築したいと思っています。 for文の構成は分かるのですが、インスタンス名を動的に変えたい場合の記述法が分かりません。例えば"Menu_TXT"+iとするとエラーですよね!?これをうまく書く方法はないでしょうか?
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- attachMovieでのインスタンス名
以下のようなスクリプトを書いているのですが、 traceの値がすべてmenu_mcとなってしまいます。 インスタンス名をmenu1_mc,menu2_mc,menu3_mc,・・・としたいのですが、どうすればいいのでしょうか? i = 10; for(y = 0; y < i; y++) { trace(y); m = y+1; obj = _root.attachMovie("menu", "menu"+m, y); obj._x = 30; obj._y = 70*y; trace(this._name); } 環境はFlashCS3、ActionScript2.0です。 よろしくお願いします。
- ベストアンサー
- Flash
- ステージにある複数のインスタンスを制御したいです
ステージに配置してある複数のインスタンスをアクションスクリプトで制御したいです。 インスタンスには「mc0」~「mc9」の連番で名前をつけています。 例えば、それぞれのインスタンスのタイムラインを再生させる指示を与えるとすると、 mc0.gotoAndPlay("main"); mc1.gotoAndPlay("main"); mc2.gotoAndPlay("main"); mc3.gotoAndPlay("main"); ・ ・ ・ mc9.gotoAndPlay("main"); となると思いますが、もっとスマートに書くとするとどんな書き方があるでしょうか? 数がもっと増える可能性があるので、もっと合理的な方法を知りたいです。 アクションスクリプトで生成したインスタンスを動かすには、 for(var i:int=0;i<10;i++){ var mc:MovieClip=new McMC(); addChild(mc); mc.name="mc"+i; mc.x=200+i*50; mc.y=200; mc.gotoAndPlay("main"); } のような感じで動かすのはやったことがあるので 既にステージに直接配置されているインスタンスもfor文で同じように制御できると思い 以下のように試してみましたが… for(var i:int=0;i<10;i++){ var mc:MovieClip; mc.name="mc"+i; mc.x=200+i*50; mc.y=200; mc.gotoAndPlay("main"); } 未定義となってしまいます。 やはり地道に書くしかないのでしょうか? ご教授を宜しくお願い致します。 ※FlashCS4、AS3で作業しています。
- ベストアンサー
- Flash
- thisをインスタンス名に変えたらムービーが動かない
Flash8です。タイムライン上に、 ボタン(インスタンス名 b1_btn) と ムービークリップ(インスタンス名 test_mc) を配置しました。 次に、このボタンインスタンスに以下のイベントハンドラを記述しました。 ----------------- on (press) { this.stop(); } ----------------- 実行すると、ボタンを押せばムービーが停止します。 で次に、上記の記述を以下のように変えます。 ----------------- on (press) { test_mc.stop(); } ----------------- 実行すると、ボタンを押してもムービーが停止しません。 なにがイケないのでしょうか?
- 締切済み
- Flash
- ムービークリップとインスタンス
「ライブラリ内にあるのがムービークリップで、それをステージに配置したものがインスタンスである。」このように理解しているのですが、これは間違いでしょうか? 1、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"MC"に01、02,03とインスタンス名を付けた。」 2、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"インスタンス"に01、02,03とインスタンス名を付けた。」 上記の場合どちらが正しいのでしょうか? ムービークリップとインスタンスについてご教授ください。 よろしくお願いします。
- ベストアンサー
- Flash
- attachMovieで生成したインスタンスを消す方法
1.現在A.B.C・・・・という名前の多数のボタンがあります 2.それぞれをクリックすると、A1.B1.C1・・・・とそれぞれのインスタンスがZ_mcというムービークリップ内に生成されます。その時にボタンに記述したスクリプト on (press) { Z_mc.attachMovie( "識別子", "A1", 1); } 3.このままですとA.B.C・・・・とボタンをクリックしていくとインスタンスがA1.B1.C1・・・・と同じ場所に生成されるため、重なってしまいます。 どのようにボタンにスクリプトを記載すれば、前に生成されたインスタンスを削除して、新しいインスタンスを生成できるのでしょうか?よろしくお願いします。
- ベストアンサー
- Flash
- attachMovieで生成したインスタンスへの文字代入
FlashMX(AS1.0)を使用しています。 ダイナミックテキストを子にしたムービークリップのインスタンスをattachMovieで配置したのですが、ダイナミックテキストに文字列を代入しても文字のみが表示されません。 試しに、duplicateMovieClipでコピーした場合はダイナミックテキスト内の文字は表示されています。 スクリプトは以下のように組んでいます。 (略) 1:cnt++; 2:samp_mc = "tag"+cnt; 3:_root.attachMovie("sym_ln",samp_mc,cnt);//sym_ln...ダイナミックテキストを含んだシンボルのリンケージ 4:samp_mc.dymtxt = "123";//dymtxt...ダイナミックテキストの変数名 インスタンスを配置してもdymtxtに表示されません。が、 3:base_mc.duplicateMovieClip(samp_mc,cnt);//base_mc...ステージに配置したmcのインスタンス名 とすると表示されます。 attachMovieを使用してインスタンスを配置するようにしたいのですが、文字が表示されないのはどこに原因があるのでしょうか?
- ベストアンサー
- Flash
- ActionScript3.0(アクションスクリプト3.0)でMovieClipインスタンスを配列で生成する方法
よろしくお願いいたします。 アクションスクリプト3.0において、あるMovieClipクラスから複数のMovieClipインスタンスを作り、それぞれを独立して制御させたい時に、 インスタンスを生成する際、配列でしようとしたのですがエラーとなりうまくいきません。 var my_mc[i]:MovieClip = new MC(); 上記の宣言を繰り返し処理により複数インスタンス生成をしようと思っていました。 MovieClipインスタンスを配列で生成する場合は別の方法があるのでしょうか?それともそもそもできないのでしょうか? また、MovieClipインスタンスをそれぞれ独立して制御させたい場合、別の方法などありますでしょうか? 以上、間違った表現等あるかもしれませんが、よろしくお願いいたします。
- ベストアンサー
- Flash
- 動的生成のムービークリップにインスタンス名でアクセスできないようです
動的生成のムービークリップにインスタンス名でアクセスできないようです FLASHCS3(ActionScript3.0)でアルバムを作っています。 最大で5枚の外部画像を読み込んで (何枚有るかは読み込んでみないと分からない) それを配置させるスクリプトを書いています。 ただ、枚数によってそれぞれ配置させるする場所が異なるります 例えば1枚の時の1枚目の座標と、2枚の時の1枚目の座標は異なります。 これは、FLASHは、画像やファイルが何枚そのフォルダに有るかは セキュリティの関係上分からない(PHPなどを連携すればできるようだが) ので苦し紛れの策です。 numが読み込んだ画像の何枚目かを表しますが それを後で動かしたり出来るようにmcという ムービークリップにいれています。 mc.name = "mc"+num; インスタンス名は mc.name = "mc"+num; としておいて1枚目の時は getChildByName("mc0").x = 295; で所定の座標に配置できます。 ところが2枚目の時は 「null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」 と表示されてしまい、1枚目の座標は変わらず、2枚目は表示されますが座標が0(左上)に 表示されてしまいます。 試しに//■■■■2枚目の時以下のif文を消すとエラーは出ないのですが なぜ1枚目はエラーがでなくて、2枚目はエラーが出るか分からないのです。 どなたか教えていただけると助かります。 よろしくお願いします。 (以下スクリプトの一部) //■■■■イベントリスナーでnumを渡す loader_obj.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComp(num)); //■■■■イベントリスナー関数 function loadComp(num:int):Function{ return function(event:Event):void{ var loader:Loader = Loader(event.target.loader); var mc = new MovieClip; addChild(mc); addChild(event.target.loader); mc.addChild(event.target.loader); mc.name = "mc"+num; //■■■■1枚目の時 if ( num == 0 ){ getChildByName("mc0").x = 295; getChildByName("mc0").y = 30; } //■■■■2枚目の時 if ( num == 1 ){ getChildByName("mc0").x = 165;//■■■■1枚目の配置を変える getChildByName("mc1").x = 425; getChildByName("mc1").y = 30; } //■終わり } }
- ベストアンサー
- Flash
- AS3.0 配置したインスタンスにswfの読み込み
初歩的なご質問です。 AS3.0にて、ステージ上に配置したムービークリップ(インスタンス名:mc)に外部swf(test.swf)を読み込みたいのですが、、どうもうまくいきません。 わかりやすく申しますと、AS2.0形式では mc.loadMovie("test.swf"); となっているスクリプトをAS3.0で行いたいです。 拙い文章で恐縮ですが、よろしくお願いいたします。
- ベストアンサー
- Flash
- 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
- VM-C7200の電源を入れても液晶が一瞬チラつくだけで反応がない現象について、原因を知りたいです。
- 電子楽器メーカーローランド製品、ボス製品のVM-C7200の電源が入らない問題について質問です。
- VM-C7200を起動した際に液晶がチラついているが、その後反応がない状況について教えてください。
お礼
ありがとうございます^^ 文字列を参照に変換して関数を呼び出す方法、とても良いですね! これから役に立てていこうと思います。 本当に助かりました。