- ベストアンサー
外部画像のランダムでの読み込み
- 外部からランダムに指定したjpgファイルを読み込む方法を教えてください
- 現在は指定したjpgファイルを読み込んでいますが、異なる階層の画像もランダムに表示したいです
- CS5、AS3、Mac環境でのスクリプト記述方法を教えてください
- みんなの回答 (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) と書いたのと同じようなことです。
お礼
有り難うございました!何も問題無く完璧に動作を確認する事が出来ました。 例を2通り教えていただきました上に、乱数についてのご教授までいただき誠に有り難うございます。 心よりお礼申し上げます。 本当に助かりました。 有り難うございます。