• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同じ画像を並べたいのですが・・・)

画像を規則的に並べる方法について

このQ&Aのポイント
  • as3初心者が画像を規則的に並べる方法について質問しています。
  • 現在はbeginFill~を使って実装していますが、画像を使いたいため応用が利かない状況です。
  • ヒントやアドバイスを求めています。

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

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

画像を使いたいと書かれましても その画像がどこにあるどんな画像かがわからないため 具体的な方法やスクリプトは回答できませんね。 例えば ・その beginFill~ で描いた四角や三角なども画像と言えば画像です(ベクタ画像)。 ・ステージ上に描いた絵も画像です(シェイプ,ベクタ画像)。 ・スクリプトでビットマップ画像を描くことも可能です。 ・ライブラリの中に読み込んだJPEGなどの写真も画像です(ビットマップ画像)。 ・外部JPEGファイル(ビットマップ画像ファイル)をロードする場合もあるでしょう。 ・外部SWFでも静止画であれば一般的にそれは画像になります。 何処にある何を表示させるのかによって その方法も考え方自体も変える必要があることがわかると思います。 もし, ライブラリにあらかじめ読み込んであるビットマップ画像を ステージ上に呼び出すのでしたら この辺が参考になると思います↓。 「F-site [AS3] ビットマップをダイナミックに配置する」 http://f-site.org/articles/2006/08/10205003.html もし, 外部ビットマップファイル(JPEG/静止GIF/PNG)を 作成中のSWFにロードするのでしたら この辺が参考になると思います↓。 「ADD CHILD = AS3 - Loaderクラスで外部ファイルから画像を複数読み込む[3-5]」 http://www.addchild.net/as3-beginner/ls3/337.html その他,もし,もし,… と書いていたらきりがありませんのでこの辺で終わります。 ========== あと ご質問で書かれているスクリプトの > var ball:MovieClip=new MovieClip(); の部分や, 私が上で書いた2つ目のページの > //Loaderオブジェクト生成 > var myLoader:Loader = new Loader(); の部分のように, for文の中で,同じ参照変数名を持つインスタンスを複数作ると, 後々の管理ができなくなるので, 「配列アクセス演算子」などを使って,違う参照変数名を付けた方が良いように思います。 (単に「並べて終わり」でしたらそのままでも良いと思います。)

maeda_005
質問者

お礼

丁寧な解答ありがとうございました。 また抽象的なため解答が膨らみすいませんでした。 ちなみに画像とは ライブラリにあらかじめ読み込んであるビットマップ画像 のことでした。 いただいた参考サイトをもとに解決できました。 かなりの時間を費やしてしまいましたが、、 アドバイス、どうもありがとうございました。

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

関連するQ&A

  • FLASHCS3のActionScript3.0で外部画像の読み取り後

    FLASHCS3のActionScript3.0で外部画像の読み取り後に、ムービー内に画像を入れると表示されません。 複数画像をfor文で読みながら、読み終えたらEvent.COMPLETEで関知して、loadComp関数内で addChildして画像を表示させたいですが、その後マウスドラッグで動かせるようにするため mc1という空のムービーを作ってその中に、画像を内包したいのですがそうすると画像が表示されないです。 ※mc1.addChild(event.target.loader);というように 普通にmc1を除いて、 addChild(event.target.loader); とすると表示されます。 ムービーに内包すると画像が表示されないのはなぜか知りたいです。 よろしくお願いします。 photoLoad(); //画像読み込み関数 function photoLoad() { urlList[0] = "photo1.jpg"; urlList[1] = "photo2.jpg"; urlList[2] = "photo3.jpg"; urlList[3] = "photo4.jpg"; urlList[4] = "photo5.jpg"; for (var i = 0; i < urlList.length; i++) { var x:int; loaderList[i] = new Loader(); loaderList[i].load(new URLRequest(urlList[i])); loaderList[i].x = x; x = x+100; //画像のサイズによって変更 loaderList[i].contentLoaderInfo.addEventListener(Event.COMPLETE,loadComp); } } //画像読み込み関数ここまで**************************************** function loadComp(event:Event):void{ var mc1:MovieClip = new MovieClip(); //■■■問題の箇所・addChildの前にmc1をつけると表示されない■■■ addChild(event.target.loader); //移動可能に mc1.addEventListener(MouseEvent.MOUSE_DOWN, startObj0); mc1.addEventListener(MouseEvent.MOUSE_UP, stopObj0); function startObj0(event:MouseEvent):void { mc1.startDrag(); } function stopObj0(event:MouseEvent):void { mc1.topDrag(); } }

    • ベストアンサー
    • Flash
  • 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)「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
  • Javascript初心者です。

    Javascript初心者です。 どうしてもわからなくて困っています。 下の図のように1から、最大10個の☆をalertで表示させるものをつくったのですが ☆ ☆☆ ☆☆☆ ☆☆☆☆ ~ ☆☆☆☆☆☆☆☆☆☆ for(var i = 1; i <= 10; i++){ //alert("☆"); var star = ""; for(var j = 1; j <= i; j++){ star += "☆"; }     alert(star); } これを用いた2つの応用問題に苦戦しています。 (1)偶数の場合は★のみで表示 ☆ ★★ ☆☆☆ ★★★★ ~ ★★★★★★★★★★ (2)偶数の番号の☆マークが★に ☆ ☆★ ☆★☆ ☆★☆★ ~ ☆★☆★☆★☆★☆★ といったものです。説明がわかりづらいかもしれませんが、 偶数、奇数をif文で条件分岐することは理解しているのですが、 web上で調べてもわからず、ループの階層構造がイメージできないまま苦戦しています。 どなたか宜しくお願い致します。

  • AS2.0からAS3.0にうまく変換できません。

    AS2.0からAS3.0にうまく変換できません。 はじめまして、ActionScriptを勉強し始めたばかりの初心者です。 http://blog.bonkura.jp/2008/07/flash-4.html のページのスクリプトをas3.0に直そうと思って勉強しながらやってみたんですが、 どうもうまくいきません。 書いてみたコードは以下です。 だれか添削してもらえると助かります。宜しくお願いします! stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.LEFT; var bg:MovieClip = new MovieClip(); this.setChildIndex(bg, 1); var bgPic:MovieClip = new MovieClip(); this.setChildIndex(bgPic, 0); bgPattern(); function bgPattern():void{ var myMcl:Loader = new Loader(); var oListener:Object = new Object(); var UrL:URLRequest = new URLRequest(); UrL.url = "http://blog.bonkura.jp/2008/07/08/swf/bg.jpg"; myMcl.addChild(oListener); myMcl.load(UrL, bgPic); oListener.addEventListener( Event.COMPLETE, StageSize); for(var i:Number=0; i<stage.width/100; i++){ for(var j:Number=0; j<stage.height/100; j++){ var bgP:String = "bg"+i+j; bg.addChild(new (getDefinitionByName(bgP))); this.setChildIndex(bgP, i+j*100); bg[bgP].x = i * 100; bg[bgP].y = j * 100; } } } var alphaFlag:Boolean = new Boolean(); alphaFlag = true; bg.addEventListener(Event.ENTER_FRAME, onENTERFrame); bg.addEventListener(Event.RESIZE, bg.resizeHandler); stage.addChild(bg); stage.addChild(bgPic); function StageSize():void{ bgPic.x = (stage.width/2) - (bgPic.width/2); bgPic.y = (stage.height/2) - (bgPic.height/2); } // イベントリスナー function onENTERFrame(event:Event) { if(alphaFlag){ this.alpha -= 5; if(this.alpha <= 0){ alphaFlag = !alphaFlag; } } else{ this.alpha += 5; if(this.alpha >= 100){ alphaFlag = !alphaFlag; } } } function resizeHandler(event:Event = null):void{ bgPattern(); };

    • ベストアンサー
    • 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
  • 円をランダムで描画していき、最初の円から徐々に透明になる

    現在AS3.0にてランダムで永遠と円を描きながらも、描画した円から順番に透明になっていくスクリプトを書いているのですが、以下のスクリプトですと全体が透明になっていき、最終的に何も残らなくなってしまいます。 常に透明度1の円を描画しつつも、先に描画した円から徐々に透明になっていくスクリプトにするにはどうすればよいのでしょうか?ご教授お願いできればと思います。 addEventListener(Event.ENTER_FRAME, rain); import flash.display.Sprite; import flash.display.MovieClip; var mySprite:Sprite = new Sprite(); var myClip:Sprite = new Sprite(); addChild(myClip); function rain(event:Event):void { with(mySprite.graphics) { var circle:int = Math.floor(Math.random()*100); var stageX:int = Math.floor(Math.random()*stage.stageWidth); var stageY:int = Math.floor(Math.random()*stage.stageHeight); beginFill(0x000000); drawCircle(stageX, stageY , circle); endFill; myClip.addChild(mySprite); var diff:Number = 0.01; myClip.alpha -= diff; } }

    • ベストアンサー
    • Flash
  • 【AS3.0】画像をクリックして外部複数ファイルの読み出しと削除を行う方法

    AS3.0初心者です。 恐れ入りますが、教えていただきたいことがあります。 【開発環境:WinXP FlashCS4】 『 ・a_btnボタンをクリックすると、外部1フォルダの中の複数イメージファイル(jpg)が同時に表示される。 ・b_btnボタンをクリックすると、外部2フォルダの中の複数イメージファイルが同時に表示される 但し、他のフォルダの画像が出ている時は、前表示されていた画像は削除される 』 というものを制作しております。 a_btnをクリックすると、外部フォルダが同時に表示されるところまでは作れたのですが、b_btnをクリックした時に、a_btnをクリックした時に出てきた画像を削除して、新たに画像を表示させるというところでつまづいております。 現在のスクリプト↓ ------------------------------------------------------------ var loader:Loader=new Loader(); a_btn.addEventListener(MouseEvent.CLICK,xClick); //配列の設定 var song01:Array = ["1/e01.jpg","1/e02.jpg","1/e03.jpg","1/e04.jpg"]; var loaderList:Array = new Array(); //iの初期値 var i:int = 0; //spaceの設定 var space:Number =50; function xClick(evt:MouseEvent):void{ for(var i:int=0; i < song01.length;i++){ loaderList[i] = new Loader(); var urlReq:URLRequest= new URLRequest(song01[i]); addChild(loaderList[i]); loaderList[i].load(new URLRequest(song01[i])); loaderList[i].y = space * i+ 250; trace(song01[i]); } } ---------------------------------------------------------- 最終的にはXMLからファイルを読み出して、読み出したファイルをクリックすると音データが再生されるものを作成しようと思っております。 書籍などを見ても、うまく応用できず…恐れ入りますがヒントだけでもいただけると大変助かります。よろしくお願いできませんでしょうか?

    • ベストアンサー
    • Flash
  • AS3でattachMovie()どうするの?

    FlashCS4でAS3.0です。 http://hakuhin.jp/as/block.html 上のサイトを見ながらブロック崩しのプログラム練習をしています。 壊すブロックについてなのですが、 ブロックのMCをライブラリでリンケージして書き出して、 下のようにしてステージに並べました。 for (var i:int = 0 ; i<32; i++){ var mc:block_class = new block_class(); mc.name = "block"+i; mc.x = i % 4 * 40 +40; mc.y = Math.floor(i/4) * 15 + 25; stage.addChild(mc); } ここからがわからないところです。 ボールがブロックに当たったら消える、という文を書こうとして for (var i = 0; i<32 ; i++){   if (ball_mc.hitTestObject(mc)){ mc.visible=false;   } このような形にしているのですが、 複製したすべてのブロックに適応させるにはどうしたらよいかわかりません。 どうもAS2.0のときはattachMovie()やeval()を使ってできたことみたいなのですが・・・ どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • C言語/プログラミング

    int Sutar(int i, int j) { for (i = 1; i <= 5; i++) { for (j = 0; j < i; j++) { cout << "★¥n"; } cout << "¥n"; } return i, j; } int main() { int i; cout << "★を何個出力しますか?¥n"; cin >> i; cout << "★を" << Sutar(i, j) << "個出力に成功しました。¥n"; return 0; } これで、実行したらエラー発生しました。エラーを治す方法を教えてください。

このQ&Aのポイント
  • 職場で慕われる社員が鼻歌をフンフンするので、派遣社員の方が集中できず。
  • 聴覚過敏のため、簡易的な耳栓を使用するも完全にシャットアウトできない。
  • 上司も彼女がお気に入りでクレームしにくく、直接言えないため困っている。
回答を見る