- ベストアンサー
MCの複製方法
MCを三つ用意し各MCに、MC000、MC001、MC002と名前をつけ、縦に三つ並べ、下記のようにしました。 ● ● ● これをASを書いて、 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● for (i=1; i<=6; i++) { _root.MC000.duplicateMovieClip(["MC000"+i], i, {_x:_root.MC000._x+(i*50)}); _root.MC001.duplicateMovieClip(["MC001"+i], 10+i, {_x:_root.MC001._x+(i*50)}); _root.MC002.duplicateMovieClip(["MC002"+i], 20+i, {_x:_root.MC002._x+(i*50)}); } としたのですが、 一つのMCから ● をASを書いて、 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● とすることはできますでしょうか? 複雑になりすぎない程度に方法がありましたら、ご教授いただけたらと思います。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (1)
- DPE
- ベストアンサー率85% (666/776)
関連するQ&A
- forとduplicateMovieClip
for文とduplicateMovieClipを覚える事を目的に、アンケート用紙のようなムービーを作ろうとしています。 一つのMCを用意し、「MC」とインスタンス名をつけました。その中に四角の絵(□)とダイナミックテキストが一つずつ入れてあります。ダイナミックテキストには変数名HT_answerとつけてあります。 フレームから下記の様にASを書きました。 var HanswerBox:Array = ["Answer1","Answer2","Answer3","Answer4"]; _root.MC.HT_answer = HanswerBox[0]; for(i=1;i<=3;i++){ _root.MC.duplicateMovieClip (["MC"+i],i,{_x:_root.MC._x ,_y:_root.MC._y+(50*i)}); _root["MC"+i].HT_answer = HanswerBox[i]; _root["MC"+i].onRelease = function(){ Hflag = i; trace(Hflag); } } これでプレビューするとステージには下記のかたちで表示されます。 □ Answer1 □ Answer2 □ Answer3 □ Answer4 クリックするとチェックマークが入るというものを作ろうとしているのですが、Hflag = i で項目毎に番号宣言させて、その番号にしたがってチェックマークを表示させようと考えたのですが、なぜかすべて Hflag は 4 と出力されてしまいます。これはなぜなのでしょうか?まだfor文とduplicateMovieClipは覚えたばかりなので、理解に間違いがあるだとは思うのですが、どうにも上手くいかずに困っています。 for文、duplicateMovieClipなど、この辺りのご指摘と共にご回答をいただきたく思います。 よろしくお願いします。
- ベストアンサー
- Flash
- MCの複製について
はじめまして。 Flash Lite 1.1でカレンダーを作ってるんですが、画像を使いたくなくMCの中にダイナミックテキストを入れてそれをduplicateMovieClipで複製しています。 休日平日区別無いものなら複製・配置は出来ているのですが、休日と平日を分けるのがうまくいきません。祝日も区別したいのでなんとかこの山を越えたい。。。以下複製するループのフローチャート的なものです。 あらかじめ日付,月の最初の曜日は取得済み 白文字のMCと赤文字のMCを用意 その月の日数を条件にループ開始 平日の場合 白文字MCを複製、配置、日付設定 休日の場合 赤文字MCを複製、配置、日付設定 ループ終了 大まかにこんな流れなんですが、traceで変数出してみてみると1日~6日までの平日日付が、休日のduplicateMovieClip後に壊れてしまい、表示される日付が、休日すべてと平日7日以降のみになってしまいます。 duplicateMovieClipの複製元は表示画面外に置き、第3引数はそれぞれのMCの個数にしてます。使い方間違ってるんでしょうか…どなたかご教授願います。
- 締切済み
- Flash
- 複製したMCを指定した座標へ配置したいのですが
こんにちは。 初歩的な質問で申し訳ないのですがよろしくお願いします。 attachMoiveでライブラリ内のMCを数十個複製しそれらをステージ内に 配置する際、4x4、6x6といったように均等に数十個配置する事は 出来るのですが均等に配置するのではなく自分の指定した座標に 1つ1つ配置したいのです。 色々調べましたら、自分の配置したい各場所の各座標(x,y)を 配列を使い変数にするのだと思い、自分なりに作ってみましたところ 1つは指定した座標に配置出来たのですが2つ目以降が上手く 配置出来ません。 var i; var num=50; //複製するmcの数 var pos = {x:50, y:100}; //1つ目の指定座標。 //ここで残り49個のmcの座標も指定。 for (i=0; i<num; i++) { _root.attachMovie("mc", "mc"+i, i); var mc_obj = eval("_root.mc"+i); mc_obj._x = pos._x; mc_obj._y = pos._y; } 一応頭の中ではこういうスクリプトを考えてますが多分間違いが あり何かが足りないのだと思います。 var posのところで2つ目以降の座標の指定の仕方と forの中でmc_obj._xとmc_obj._yにどのように50個分指定した 座標へ配置設定をしてやるのかお分かりくださる方がいらっしゃれば ご教授くださいますようよろしくお願いします。
- ベストアンサー
- Flash
- duplicateMovieClipしたMCをSharedObjectで保存、読み込みたい
【やりたいこと】 duplicateMovieClipで何個も複製したムービークリップをSharedObjectで保存し(て読み込み)たい。 【わからないこと】 ユーザーが何個複製するかわからないものをi変数でカウントして それをSharedObjectで保存しようとしているが、 ユーザーが何個複製するかわからないMCに対する 一括命令文?がうまく書けない。 【現状】 まず、MC_printというMCの中にisuというMCがあります。 そのisuの上に空ボタンを置いて、以下のような スクリプトを書きました。 on (press) { _root.MC_print.isu.duplicateMovieClip("isu"+i, i++); //isuというMCをクリックするたびに複製していく _root.MC_print["isu"+i]._x = 500; //重なるので移動させてる } そして、保存ボタンに on (press) { _root.Save_Point(); } と書いていて、 SharedObjectインスタンスの生成は mySharedObject = SharedObject.getLocal("xypoint","/"); としています。 そして肝心のfunction命令文を function Save_Point() { mySharedObject.data["isu"+i._x] = _root.MC_print["isu"+i]._x; mySharedObject.data["isu"+i._y]= _root.MC_print["isu"+i]._y; } としています。 が、動きません。 理由は自分でもなんとなくわかるのですが、 複製されたMCが何個複製されたかわからない。 iの変数がちゃんと共有されてないんじゃないかと思っています。 が、_global変数にしても「isu1」「isu2」という風に インスタンス名を_nameで調べてテキストボックスで確認しても 複製はされてるが、このfunction命令文だとそのインスタンス名毎に (全てに)命令されてないってことですよね・・・。 for文とかを使うんでしょうか。でも何個複製されるか わからないし・・・。よくわかりません・・・。 環境はWindowsXP、FlashMXです。 MX以前の時代から突然またフラッシュを触り始めたので 新しいスクリプトなどはまったくわかりません。 なにかヒントでもいただければ幸いです。どうぞよろしくお願いいたします。
- 締切済み
- Flash
- duplicateMovieClipで生成したmcの深度
こんにちは。 Mac OS X/バージョン10.6.2 ActionSpript2,0 ステージ上にmcがあって、その後ろを duplicateMovieClipで空の背景を生成して移動させて 絶えず雲が動いているフラッシュを作りたいのですが・・・ 移動は上手くいったのですが、深度が上手く行かず 背景がmcの全面に来てしまいます。 よろしければご指導の程、お願いします。 背景=haikei ********************** var speed = 10; _root.haikei.duplicateMovieClip("haikei2",-1); ここで深度を設定しているんですよね?↑ _root.haikei2._x -= _root.haikei._width; this.onEnterFrame = function() { _root.haikei._x += speed; _root.haikei2._x += speed; if (_root.haikei._x>_root.haikei._width) { _root.haikei._x = _root.haikei2._x-_root.haikei._width; } if (_root.haikei2._x>_root.haikei2._width) { _root.haikei2._x = _root.haikei._x-_root.haikei2._width; } }; ***************** まだまだ未熟者で、duplicateMovieClip,depth等で検索などし、 試したのですが上手く行かず・・・理解できず・・・でした。 よろしくお願いします!
- ベストアンサー
- Flash
- createEmptyMovieClipdeで作成したmcをASで動かす
createEmptyMovieClipで空のムービークリップを作成し、 そのMCに画像を読み込ませた後、右に徐々に移動させたい場合、 どのようなスクリプトを書いたらよいのでしょうか。 for(i=0; i < 10; i++){ createEmptyMovieClip(["load_mc"+i],i); _root["load_mc"+i]._x = i*120; _root["load_mc"+i]._y = 20; _root["load_mc"+i].loadMovie(img); } _root["load_mc"+i]._x += 10; とすると、単純にx座標が10の所にMCが配置されるだけで、 モーショントゥイーンのように動いてくれません。。。。
- ベストアンサー
- Flash
- mcにリンクを順番に張りたい
for(i=0; i<5; i++){ creatEmptyMovieClip(["mc"+i],i); _root["mc"+i]._x = i*10 _root["mc"+i].onRelease=function{ getURL(["test"+i],"_blank"); } } として、 mc1にはtest1 mc2にはtest2 mc3にはtest3 mc4にはtest4 mc5にはtest5 のリンクを設定したいのですが、 なぜかすべてのmcにtest5へのリンクがついてしまいます。 上記のように順番にリンクをつけるには どのようにしたらいいのでしょうか。 _root["mc"+i].onRelease=function{ trace(i); } でiの値を確かめてみると iが5というのがわかります。 このiをカウントするようにすれば解決しそうなんですが、、、。
- ベストアンサー
- Flash
- for & duplicateMovieClip & function
for & duplicateMovieClip & function // == info用テキスト作成 ==================== /**/ var H_TextFieldInfo = _root.createTextField("I_textField",1001 ,10 ,10 ,690 ,20); _root.H_TextFieldInfo.text = ""; // 文字列を表示 テキスト表示テスト // == データ読み込み ============================== for(Hi=2; Hi<=10; Hi++){ H_name01 = "I_MC"+ Hi; H_gFX = I_MC01._width * Hi; H_gFY = 10; // ************ _root.I_MC01.duplicateMovieClip (H_name01, (201+Hi), {_x:H_gFX ,_y:H_gFY }); H_num = Hi; _root[H_name01].onRelease = function(){ _root.H_TextFieldInfo.text = H_num; } // ************ } ステージ上に I_MC01 というインスタンス名でムービークリップを配置して、上記のようなアクションスクリプトを書きました。for分の_root.I_MC01.duplicateMovieClip でI_MC01を複製し、その複製したムービークリップをクリックすると、テキストに番号が入力されるようにしたつもりなのですが、出来ませんでした。 いくつか思いつくことをやってみたのですが、出来ませんでした。 このようなときムービークリップをクリックすると、個別の番号をテキスト欄に表示させるにはどうしたらよいのでしょうか? ご教授よろしくお願いします。
- ベストアンサー
- Flash
- ボタンをロールオーバーした時にMCを複製したい
はじめまして、よろしくお願いします。 表題の通りですが、 ボタンをロールオーバーした時にMCを複製したいのですが、やり方がわかりません。 body(←ボタン名)を押した時に snow(←複製されるMC名)を噴射するような形にしたいです。 フレーム1に書かれたスクリプト------------------- for (count = 1;count<30;count ++) { snow.duplicateMovieClip("snow" + count , count ); } ----------------------------------------------- 複製されるMC(snow)---------------------------------- onClipEvent(load){ xposition = _root.body._x+75; yposition = _root.body._y+75; scale = Math.random()*30+10; speedx = 12-(scale+Math.random()*30+1)/5; speedy = 12-scale/5; this._x = xposition; this._y = yposition; this._xscale = scale; this._yscale = scale; } onClipEvent (enterFrame){ if(this._y>400){ this._y=yposition; this._x=_root.body._x+75; this._alpha = 100; } this._x+=speedx; this._y+=speedy; this._alpha = this._alpha-5; } ----------------------------------------------- 早急に解決しなくてはならなく、困っています。 よろしくお願いします。
- ベストアンサー
- Flash
- mcをランダムに並べたい
winXP、flash8です。 6個のmc(h0~h5)をステージにランダムに並べるようスクリプトを考えています。 ランダムの数R[0]~R[5]までが出ています。 下記のようにx座標とy座標を決め配置したいと思ったのですが うまくいきません。 どこが、違うのか教えてください。よろしく、お願いします。 tx0 = 60; tx1 = 136; tx2 = 212; tx3 = 288; tx4 = 364; tx5 = 440; for (i = 0; i < 6; i++) { num = "_root.h" + R[i]; num._y = 76; num._x = "tx" + [i]; }
- ベストアンサー
- Flash
お礼
だいぶ苦戦しまして、お礼が遅くなりました。 詳細なご説明で大変参考になりとても勉強になってます。 まだ完了ではないですが、大分理解できてきました。 書き込みありがとうございました。