- ベストアンサー
AS3でattachMovie()とは?質問内容を要約すると
- AS3でattachMovie()とはどのような機能なのかわからない質問です。attachMovie()はAS2.0で使用されていた機能であり、MC(ムービークリップ)をコードで生成して表示するためのものです。
- 質問者はブロック崩しのプログラム練習をしており、ブロックをステージに配置する際にライブラリでリンケージして書き出し、attachMovie()を使ってMCを生成したのかもしれません。
- その後の問題は、ボールがブロックに当たったときにブロックを消すためのコードを記述する際に、生成したすべてのブロックに適応させる方法がわからないというものです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- AS3.0でのattachMovieが分かりません
AS2.0では リンケージで"mc"という名前で登録。 for (var i:Number=0; i<10; i++) { var _mc:MovieClip = attachMovie("mc_"+i, "mc_"+i, getNextHighestDepth()); _mc._x = 100*i; } というような感じで10個のmcを配置できますよね。 これをAS3.0でやりたいのですが、 リンケージで"mc"という名前で登録。 他のサイトを参考に、 for (var i:int=0; i<10; i++) { addChild(new (getDefinitionByName("mc"+i))); } とするが、"変数 mc0 は定義されていません"とコンパイルエラー。。 ひとつ配置するには addChild(new mc) でいけますが forを使って上記AS2.0版と同様の事をやるにはどう定義すればよいのでしょうか。。
- ベストアンサー
- Flash
- AS3.0でのattachMovie
私はFlash 初心者で、ActionScript3.0とflashの勉強中で、表題のところで詰まってしまいお尋ねしたいことがあります。 for (i = 0; i < s_num; i++) { _root.attachMovie("sks" + i,"sks" + i,i); sks[i] = eval("sks" + i); sks[i]._x = 320 - 125 * (s_num - i); sks[i]._y = 50; } AS3.0ではeval、attachMovieという関数は存在しておりません。 AS3.0の場合、どのように記述したらよいのかわからないので、どなたか教えていただくことはできますでしょうか。
- 締切済み
- Flash
- AS2 attachMovie 外部画像対応に
AS2 attachMovie 外部画像対応にしたい <やりたいこと> AS2 attachMovieを利用して、複数画像を読み込むサンプルがあるのですが、 これを外部画像読込対応に変更したいです。 <知りたいこと> AS2 attachMovieで、外部画像を読み込む簡単なサンプルコードを 作成していただけないでしょうか? あるいは、下記内容を、どう修正すればよいでしょうか? <現状> ・画像は「image_1」「image_2」「image_3」って感じで、ムービークリップにして、ライブラリへ入れてます。 ・ステージ上に画像は、配置せず、変わりに、ムービークリップのリンケージ識別子を、それぞれ「image_1」「image_2」「image_3」としています、また、「ASに書き出し」「最初のフレームに書き出し」にチェックを入れてます <現状のコード一部> next_bottun.onPress = function() { if (image_maisu>next_i) {//イメージ枚数より選択イメージが少なかったら next_i += 1;//選択イメージを加算 var mc_name = "image_"+next_i;//識別子の名前を変更して change_mc(mc_name, syoki_sokudo);//切り替わり関数に送る } }; function change_mc(mc_name, syoki_sokudo) { i++;//IDを加算して var new_name = "image_"+i;//インスタンス名を設定 var syoki = {_alpha:0, i:i, sokudo:syoki_sokudo};//初期値を設定 _root.main.attachMovie(mc_name, new_name, i, syoki);//mainの中に生成する
- 締切済み
- Flash
- ASファイルからのstage
flashcs3 actionscript3.0で作成しています。 asファイル "Test.as" package { import flash.display.DisplayObjectContainer; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.*; public class Test extends Sprite { public function Test() { init(); } private function init() { for (var i:uint = 0; i<10; i++) { var sp:Sprite = new Sprite(); sp.graphics.beginFill(0x00CCFF); sp.graphics.drawRect(i*20,50,20,20); sp.graphics.endFill(); stage.addChild(sp); } } } } flash var hoge2 = new Test(); と書いてflash上のstage上にSpriteをaddChildしたいのですがstageをnullと解釈してしまいます。 この場合flash上のstageを参照するにはどうすれば良いのでしょうか?
- ベストアンサー
- Flash
- AS3.0 ループを利用したムービークリップ生成
お世話になります。 ソフトはFlashCS3を使用しています。Actionscript3.0で書き出そうと思っています。Actionscript3.0初心者ですがよろしくお願いします。 ライブラリーに Mc01,Mc02,Mc03,Mc04とクラスを指定したムービークリップを準備した状態でステージにムービークリップを生成しようと考えています。その際、for文を使って短く書きたいと思っています。 for (var i=0; i>4; i++){ var "Mc0"+i:"Mc0"+i = new "Mc0"+i(); "Mc0"+i.x = 10*i; "Mc0"+i.y = 10*i; this.addChild("Mc0"+1); } 上記のように書くと「1086:シンタックスエラー:identifierがMcの前に必要です。」とエラーが出てうまく作動しません。 参考までに現在は以下のようにすべて書き出しています。 //ムービクリップ01 var Mc01:Mc01 = new Mc01(); Mc01.x = 0; Mc01.y = 0; this.addChild(Mc01); //ムービクリップ02 var Mc02:Mc02 = new Mc02(); Mc02.x = 10; Mc02.y = 10; this.addChild(Mc02); …… 以下省略 特にfor文にこだわっててはいません。ループで生成できればOKです。 どなたかわかる方よろしくお願いします。
- ベストアンサー
- Flash
- (AS3)「var mc:MovieClip = new MC?();」 の?の部分を変数にできないか
タイトルの通りです。 今ライブラリには100個のムービークリップがあって、それぞれMC1~MC100までのリンケージ名(クラス名)でActionScriptに書き出しているものとします。 これらを動的に「var mc:MovieClip = new MC?();」というふうにしたいのですが、うまくいきません。 一応下のように自分なりに考えてみたのですがやっぱりダメでした。 var i:int = 3; var str:String = "MC"+i; var mc:MovieClip = new str(); stage.addChild(mc);
- ベストアンサー
- Flash
- as3でのmc再生について
as3でご質問です。 現在as3で、ほとんどをmain.asというasファイルに書いて配置など行っております。 モーションなどがあるmcに関しては、ムビークリップを作って、ライブラリに読み込んであるのをリンケージして呼び出しています。 そこで質問です。 var bn01:MovieClip = new fr_bn01(); var bn02:MovieClip = new fr_bn02(); var bn03:MovieClip = new fr_bn03(); addChild(bn01); addChild(bn02); addChild(bn03); //fr_bn01、fr_bn02はflash上で作成した何フレームかあるmcです。 例えば、bn01の最後のフレームまでいったら、bn02が出現して再生、bn02が最後のフレームまでいったらbn03が出現、再生。 とする場合、どのような書き方をすればよろしいでしょうか。 お手数をおかけしますが、ご教授いただけたらと思います。 よろしくお願いします。 環境:CS3、as3.0
- ベストアンサー
- Flash
- 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
- atttachmovie で配置エリアの限定
actionscript 初心者です。 for文の中で var x:Number = Math.floor(Math.random()*1000)-500; var y:Number = Math.floor(Math.random()*650)-325; _root.space.attachMovie("btn_mc1", "btn_mc"+i,0-i, init); _root.["btn_mc"+i]._x = x; _root.["btn_mc"+i]._y = y; というスクリプトで、btn_mcというmcをランダムに配置しています。 (このスクリプト、間違っているかもです。すみません) 配置位置は今1000px×650pxのステージ中でランダムになっているのですが これを、このステージいっぱいの楕円形があると仮定して その中にだけ、配置するということをスクリプトでできるでしょうか?? つまり、mcがぼんやりと楕円形に集まっている。。というような状態に したいのです。 楕円のマスクをかける、という方法ですと、mcが欠けてしまい、 見栄えがよろしくないです。。 よろしければ、お教えいただけると、幸いです。 お願いいたします m(__)m
- ベストアンサー
- 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
お礼
詳しく答えていただきありがとうございます! >eval は ActionScript 2.0 時代にはすでに普通は使われていませんでしたよ。。。 そうだったんですね・・・調べているときに良く出てきたので、普通に使われていたのかと思いました。 インスタンス名にこだわって、それで動かそうとしていたのがいけなかったのですね。 今回だと、複製しながら上手い具合に一つの変数にまとめることが重要だったのですね。 すごく勉強になりました! まだ始めたばかりでわからないことだらけなので、また質問するかもしれませんがそのときはよろしくお願いします。 ありがとうございました。