外部画像のランダムでの読み込み

このQ&Aのポイント
  • 外部からランダムに指定したjpgファイルを読み込む方法を教えてください
  • 現在は指定したjpgファイルを読み込んでいますが、異なる階層の画像もランダムに表示したいです
  • CS5、AS3、Mac環境でのスクリプト記述方法を教えてください
回答を見る
  • ベストアンサー

外部画像のランダムでの読み込み

外部から読み込むjpgファイルをランダムで指定したいと思っています。 現状メインのタイムラインに以下のスクリプトを記述して外部からのjpgファイルを読み込んでいます。 loader1.load(new URLRequest("img01/1.jpg")); 読み込みは問題無く出来ましたので次の段階として 上記で指定したjpgファイルを以下のように異なる階層の画像も含め アクセス時毎にランダムで表示したいと考えております。 ・img01/1.jpg ・img01/2.jpg ・img01/3.jpg ・img02/1.jpg ・img02/2.jpg ・img02/3.jpg ・img03/1.jpg ・img03/2.jpg ・img03/3.jpg このような状況でどのようにスクリプトを記述してよいのか分からず四苦八苦しております。 どなたかおわかりになる方がおられましたらお力を貸していただけないでしょうか。 当方はCS5、AS3、Mac環境となります。 宜しくお願い申し上げます。

  • Flash
  • 回答数1
  • ありがとう数1

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

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

フォルダ名の後の連番が微妙ですね。 以下では,仮に 「img10/3.jpg」 まであるものとします。 つまり フォルダ名の後の連番が 2桁に繰り上がる "可能性がある" ものとします(別に繰り上がらなくても良いですが)。 以下ではメインのタイムラインに書く2通りのスクリプト例を書きます。 ◎ファイルパスを計算で用意する方法例 //------------------------ //Loaderを作成&配置 var loader1:Loader = new Loader(); addChild(loader1); //ランダムな1~10のフォルダ番号を取得 var folder_num:int = Math.floor(Math.random() * 10) + 1; //番号を2桁の文字列に変換 var folder_str:String = ("0"+folder_num).substr(-2,2); //ランダムな1~3のファイル番号を取得 var file_num:int = Math.floor(Math.random() * 3) + 1; //ファイルをロード loader1.load(new URLRequest("img" + folder_str + "/" + file_num + ".jpg")); //------------------------ ◎ファイルパスをデータで用意する方法例 //------------------------ //ファイル登録用の配列を作成 var file_arr:Array = new Array(); //ロードするファイルを全て登録 file_arr.push("img01/1.jpg"); file_arr.push("img01/2.jpg"); file_arr.push("img01/3.jpg"); //  ~略~ file_arr.push("img10/1.jpg"); file_arr.push("img10/2.jpg"); file_arr.push("img10/3.jpg"); //Loaderを作成&配置 var loader1:Loader = new Loader(); addChild(loader1); //配列の要素数分のランダムな整数を取得 var rnd_num:int = Math.floor(Math.random() * file_arr.length); //ファイルをロード loader1.load(new URLRequest(file_arr[rnd_num])); //------------------------ ※乱数について Math.random() で 0以上1未満のランダムな数(小数)が得られます。 Math.random()*10 で その範囲が10倍に拡大されて0以上10未満の数(小数)が得られます。 Math.floor(Math.random()*10) で 0以上10未満(9以下)の整数が得られます。 Math.floor(Math.random()*10)+1 で 1以上11未満(10以下)の整数が得られます。 ※2桁の文字列に変換について 文字列+数 は 文字列 になります。 ("0"+folder_num) で 例えば folder_num が 5 であれば "05" という文字列が得られます。 例えば folder_num が 10 であれば "010" という文字列が得られます。 ("0"+folder_num).substr(-2,2) で 文字列 ("0"+folder_num) の最後(右)から2文字目より2文字が得られます。 例えば "05" という文字列であれば "05" が得られます。 例えば "010" という文字列であれば "10" が得られます。 つまり Excel で言えば RIGHT関数 を使ったようなもので あるセルに =RIGHT("0" & 5, 2) や =RIGHT("0" & 10, 2) と書いたのと同じようなことです。

ookkwwaavvee
質問者

お礼

有り難うございました!何も問題無く完璧に動作を確認する事が出来ました。 例を2通り教えていただきました上に、乱数についてのご教授までいただき誠に有り難うございます。 心よりお礼申し上げます。 本当に助かりました。 有り難うございます。

関連するQ&A

  • ランダム画像&マウスオーバーで画像切り替え

    こんばんは。 下記内容を外部JSファイルにしたいのですがやり方がいまいちわかりません。 <script language="javascript"> <!-- //ランダムにgazouを表示 img = new Array(); img[0] = "gazou1.jpg"; img[1] = "gazou2.jpg"; img[2] = "gazou3.jpg"; img[3] = "gazou4.jpg"; img[4] = "gazou5.jpg"; img[5] = "gazou6.jpg"; n = Math.floor(Math.random()*3); m = n+3; document.write("<img src='"+img[n]+"' border='0' onmouseover=src='"+img[m]+"' onmouseout=src='"+img[n]+"'>"); //--> </script> どなたかご教授頂けると助かります。 よろしくおねがいいたします。

  • 外部から読み込んだ画像にリンクをつけたい

    ActionScript3.0についての質問です。 ボタンをクリックした時に外部から画像を読み込んで、 読み込んだ画像にそれぞれに外部リンクをつけたいのですが、 リンクのつけ方が分かりません。 ボタンをクリックして外部から画像を読み込むところまではできたのですが、 その画像にリンクをつけるところで困っています。 超初心者ですので、できるだけ現状のプログラムを生かして変更したいのですが… どなたか分かる方がいらっしゃいましたら、教えていただきたいです。 よろしくお願いいたします。 【Main.as】 package { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.display.SimpleButton; public class Main extends Sprite { private var contentMC:MovieClip; private var contentLoader:Loader; //コンストラクタ public function Main(){ //外部ファイルを配置するムービークリップの生成 contentMC = new MovieClip(); contentMC.x=0; contentMC.y=0; addChild(contentMC); //Loaderオブジェクトを生成 contentLoader = new Loader(); contentMC.addChild(contentLoader); //ボタン処理 my1_btn.addEventListener(MouseEvent.CLICK,my1Handler); my2_btn.addEventListener(MouseEvent.CLICK,my2Handler); my3_btn.addEventListener(MouseEvent.CLICK,my3Handler); } //各ボタンをクリックしたときに外部ファイルを読み込む private function my1Handler(evt:MouseEvent):void{ var url="img/flashimg01.jpg"; loadContent(url); } private function my2Handler(evt:MouseEvent):void{ var url="img/flashimg02.jpg"; loadContent(url); } private function my3Handler(evt:MouseEvent):void{ var url="img/flashimg03.jpg"; loadContent(url); } //外部ファイル読込 private function loadContent(url){ var req:URLRequest = new URLRequest(url); contentLoader.load(req); } } }

    • ベストアンサー
    • Flash
  • 画像をランダムに

    JavaScript初心者です。回答していただければさいわいです。 初心者といってもタグサイトからコピペしていじくるだけの者ですが。 画像をランダムに表示したいと思いJavaScriptを使用したのですが うまく表示させることができません。 画像自体表示していないことになってしまいます。 画像を表示させたい部分に <SCRIPT language="JavaScript"> <!-- // img = new Array(); img[0] = "t/1.jpg"; img[1] = "t/2.jpg"; img[2] = "t/3.jpg"; img[3] = "t/4.jpg"; img[4] = "t/5.jpg"; n = Math.floor(Math.random()*img.length); document.write("<img src='"+img[n]+"' border='0'>"); //--> </SCRIPT> とタグをうっているのですが、なにか足りないところがあるのでしょうか?

  • AS3で画像の縮小ができません。

    AS3で画像の縮小ができません。 お世話になります。Flash初心者です。アクションスクリプト(Ver.3)を使って、外部のXMLデータを読み込み、そこに記載されている画像のURLから画像を表示しようとしています。 XMLの読み込み、画像の配置までは出来たのですが、この画像の幅を小さくしようとしても、なぜか上手くいきません。 具体的には下記のコードのように「.width」や「.height」をつけると、コンパイルエラーもなく、ただ画像が表示されなくなります。(widthやheightをなくすと、画像は表示されます) var img1:Loader = new Loader(); var imgURL1:URLRequest = new URLRequest(myXML.style[0].image); //イメージのロード開始 img1.load(imgURL1); //座標を指定 img1.x = 100; img1.y = 100; //画像の幅、高さの指定 img1.width = 240; img1.width = 360; //配置 addChild(img1); 書き方や、考え方としておかしな部分がありますでしょうか? どなたかご存じの方がいらっしゃいましたら、参考になるURLや、ヒントだけでもかまいません。お知恵をお貸しください。よろしくお願いします。

    • ベストアンサー
    • Flash
  • ランダム+外部読み込みとウインドウサイズ指定を組み合わせる

    ランダムで表示されるバナーの画像とリンク先を外部テキストファイルから読み込むと言うものを、過去ログなどを参考に作りました。 ランダムは数字をシャッフルして割り当て、その割り当てられた数字の文字列を参照すると言った原始的?なものです。 lis = [1, 2, 3, 4, 5]; rlis = []; for (k = lis.length; k > 0; k--) { RAN = Math.floor(Math.random() * (k)); KAE = lis[RAN]; rlis.push(KAE); lis.splice(RAN, 1); } trace("rlis= " + rlis); for (k = 0; k < rlis.length; k++) { trace("rlis[" + k + "]= " + rlis[k]); } 外部テキスト &data0=img/image01.gif,http://www~~~& &data1=img/image02.gif,http://~~~& _root.onRelease = function() { _root.getURL(myLV["data"+rlis[0]].split(",")[1],"_blank"); }; 以下バナーの画像分 と言った方法でこれに関しては一応上手く動いているのですが、今度はこれに、「開いた先のウインドウサイズを指定する」と言うスクリプトを記述したいのです。 各所参照させて貰った所、 on (release) {  getURL ("javascript:~~~()"); と言う記述が一般的なようなのですが、上記の記述にこれを当てはめようとしても上手くいきません。)または,が必要ですと言うエラーが出ます。 これは、根本的に無理な事をしようとしているのか、ちょっとした記述間違いなのか、教えて貰えたらありがたいです。 補足として、環境はCS3です。

    • ベストアンサー
    • Flash
  • AS3.0による外部swfの制御

    AS3.0による外部swfの制御 質問させていただきます。 やりたいと事は、メインとなるswfのボタンを押して、 読み込んだ外部swf(stopしている)を再生(play)したいと考えております。 メインのswfはAS3.0、読み込む外部swfはAS2.0になります。 環境はFlash CS3です。 以下がスクリプトになります。 //swf読み込み配置 var loader_obj : Loader = new Loader(); var url : URLRequest = new URLRequest("test.swf"); MovieClip(root).loader_obj.load(url); loader_obj.y = 3 loader_obj.x = 392 stage.addChild(loader_obj); //swfボタン制御 btn.addEventListener(MouseEvent.ROLL_OVER,btn_play); function btn_play(event:MouseEvent):void {MovieClip(root).photo.gotoAndPlay(2);//メインswfのムービーリップも動かす <--ここに外部swfを参照するスクリプトが入ると思うのですが・・・-->gotoAndPlay(2);//外部swfの2フレーム目から再生 } 肝心の所のスクリプトはわかりません・・・ 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • javascriptで画像をランダム表示させたい

    javascriptで画像をランダム表示させたいと思い、下記ソースを記述しました。 下記ソースでは、画像をランダムに1枚ずつ表示するようになっています。 今回、1枚ずつではなく、50枚ある画像を10枚ずつランダムに表示させたいと思っています。下記ソースから修整するにはどのような考え方になるのか教えていただけませんか? 単純に、 "img/1.jpg", の部分を "img/1.jpg,img/2.jpg,img/3.jpg,img/4.jpg,img/5.jpg", としてみたのですが違うみたいですし、、。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>20110720test</title> </head> <body> <script language="JavaScript"><!-- myImageCnt = 5; myImage = new Array( "img/1.jpg", "img/2.jpg", "img/3.jpg", "img/4.jpg", "img/5.jpg" ) myRnd = Math.floor(Math.random()*myImageCnt); document.write("<img src='",myImage[myRnd],"' border='0' >"); // --></script> </body> </html>

  • swfを読み込む毎にランダムに画像を読み込むには、

    下記のように決まった画像を読み込むスクリプトを現在使用しています。 フラッシュを開く毎に20枚程度の画像の中からランダムに7枚選んで表示させたいのですが、ここから修整するにはどのように考えたら良いのでしょうか? 現在はまったく固定の画像を読み込んでいるだけなのでいいのですが、、。 // 写真のURLを保存する配列 var photoArr:Array // 写真を自動的に変更するタイマー var imageTimer:Timer; // 大きな画像を読み込むローダー var bigImageLoader:Loader; // 現在表示されている画像の番号 var imageNum:Number = 0; //-------------------------------- // 初期化の処理 //-------------------------------- // 配列を設定する photoArr = new Array(); photoArr[0] = "b00.jpg"; photoArr[1] = "b01.jpg"; photoArr[2] = "b02.jpg"; photoArr[3] = "b03.jpg"; photoArr[4] = "b04.jpg"; photoArr[5] = "b05.jpg"; photoArr[6] = "b06.jpg"; // タイマーを起動 startTimer(); // サムネイルを表示 setThumbnail(); // 大きな画像を読み込む loadImage(); //-------------------------------- // 関数 //-------------------------------- // サムネイルを並べる function setThumbnail() { for (var i=0; i<photoArr.length; i++) { // MovieClipを並べる var mc:Thumbnail = new Thumbnail(); mc.y = i * 74; mc.mouseChildren = false; mc.addEventListener(MouseEvent.CLICK, onThumbnailClick); mc.buttonMode = true; mc.num = i; thumbnailTarget.addChild(mc); // サムネイル画像をロードする var loader:Loader = new Loader(); var url = "gallery_img/"+photoArr[i]; var urlRequest = new URLRequest(url); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onThumbnailLoad); loader.load(urlRequest); loader.x = 4; loader.y = 17; mc.addChild(loader); } } // タイマーをスタートする function startTimer() { imageTimer = new Timer(8000, 0); imageTimer.start(); imageTimer.addEventListener(TimerEvent.TIMER, onTimerCalled); } // 大きな画像を読み込む function loadImage() { // サムネイルの背景色を変える for (var i=0; i<photoArr.length; i++) { var mc = thumbnailTarget.getChildAt(i+1); if (i == imageNum) { mc.gotoAndStop(2); mc.scaleX = 1.1; mc.scaleY = 1.1; } else { mc.gotoAndStop(1); mc.scaleX = 1; mc.scaleY = 1; } } // 表示されている画像を消す if (bigImageLoader != null) { mainTarget.removeChild(bigImageLoader); } // 新しい画像を読み込む var url = "gallery_img/"+photoArr[imageNum]; var req = new URLRequest(url); bigImageLoader = new Loader(); bigImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoad); bigImageLoader.load(req); mainTarget.addChild(bigImageLoader); } //-------------------------------- // イベント //-------------------------------- // サムネイルが押されたら実行される function onThumbnailClick(eventObj) { imageNum = eventObj.target.num; loadImage(); imageTimer.stop(); imageTimer.start(); } // サムネイルがロードされたら実行される function onThumbnailLoad(eventObj) { var mc = eventObj.target.loader; mc.width = 80; mc.height = 55; } // タイマーが呼ばれるたびに実行される function onTimerCalled(eventObj) { imageNum++; if (imageNum >= photoArr.length) { imageNum = 0; } // 大きな画像を読み込む loadImage(); } // 大きな画像が読み込まれたら実行される function onImageLoad(eventObj) { // bigImageLoader.alpha = 0; stage.addEventListener(Event.ENTER_FRAME, onFadeIn); } // function onFadeIn(eventObj) { // フェードインをつける bigImageLoader.alpha += 0.05; if (bigImageLoader.alpha >= 1) { removeEventListener(Event.ENTER_FRAME, onFadeIn); } }

    • ベストアンサー
    • Flash
  • 画像のランダム表示について

    ある方のスクリプトを参考にさせて頂いたのですが、 色々なサイトで調べてみると、どうも他にも色々な方法があるようで、迷っています。 私が書いたスクリプトは、以下の物なのですが、直した方が良い所や、または、お勧めの方法を教えてください。 <SCRIPT language=JavaScript> <!-- function randomimage() { rimage = Math.floor(Math.random() * 10); // if (rimage == 0) { img = "img/top/0.jpg" }; // if (rimage == 1) { img = "img/top/1.jpg" }; // if (rimage == 2) { img = "img/top/2.jpg" }; // if (rimage == 3) { img = "img/top/3.jpg" }; // if (rimage == 4) { img = "img/top/4.jpg" }; // if (rimage == 5) { img = "img/top/5.jpg" }; // if (rimage == 6) { img = "img/top/6.jpg" }; // if (rimage == 7) { img = "img/top/7.jpg" }; // if (rimage == 8) { img = "img/top/8.jpg" }; // if (rimage == 9) { img = "img/top/9.jpg" }; // tag1 = "<IMG SRC='" + img + "' border=0>"; }; // end--> </SCRIPT> <SCRIPT language=JavaScript> <!-- randomimage(); document.write(tag1); // end--> </SCRIPT> これを<BODY></BODY>の間に入れて表示させる物です。

  • javascriptで画像のランダム表示設定

    いつもお世話になっております。 過去に類似した質問が挙げられてましたが、 解決に至らなかったので、 質問させて頂きます。 javascriptを使用して、 3枚の画像をランダム表示されるように設定したいと思っております。 できれば、更新毎に常に異なる画像が表示されるようにしたいです。 ちなみに全体に適用ではなく、特定のボックスのみです。 こんな感じで現在は指定しております。 <div class="section1"> <img src="photo/xxx.jpg" alt="xxx" /> </div> ここのimgをランダム表示にしたいのですが、 どうも上手くいきません。 <script language="javascript"> <!-- // ランダムに画像を表示する img = new Array(); // 画像のアドレス img[0] = "photo/xxx.jpg"; img[1] = "photo/yyy.jpg"; img[2] = "photo/zzz.jpg"; n = Math.floor(Math.random()*img.length); document.write("<IMG src='"+img[n]+"' border='0'>"); document.write("</A>"); //--> </script> をbody内に挿入したのですが、 ダメでした。 ご指導の程宜しくお願い致します。 ちなみに当方、プログラムを自力で記述する能力が無いので、 できれば、ソースを明示して頂けると大変助かります。

専門家に質問してみよう