下記のように決まった画像を読み込むスクリプトを現在使用しています。
フラッシュを開く毎に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);
}
}
No.1ベストアンサー
- 回答日時:
えらく長いスクリプトを書かれていらっしゃいますし
動作検証などはしてみていませんが
結局のところ
「最初の配列「photoArr」の 要素[0]~[6] に
用意した 20枚 の画像のうちの 7枚 をランダムに入れれば良い。」
というだけのことでしょう?
そうでしたら
最初の部分を次のようにすれば良いと思います。
//===========================================
// 元の全画像URLを保存する配列
var sourceArr:Array;
// 表示する写真のURLを保存する配列
var photoArr:Array;
//~数行略~
//--------------------------------
// 初期化の処理
//--------------------------------
// 元の全画像URLの配列を設定する
sourceArr = new Array();
sourceArr[0]="b00.jpg";
sourceArr[1]="b01.jpg";
sourceArr[2]="b02.jpg";
sourceArr[3]="b03.jpg";
sourceArr[4]="b04.jpg";
sourceArr[5]="b05.jpg";
sourceArr[6]="b06.jpg";
sourceArr[7]="b07.jpg";
sourceArr[8]="b08.jpg";
sourceArr[9]="b09.jpg";
sourceArr[10]="b10.jpg";
sourceArr[11]="b11.jpg";
sourceArr[12]="b12.jpg";
sourceArr[13]="b13.jpg";
sourceArr[14]="b14.jpg";
sourceArr[15]="b15.jpg";
sourceArr[16]="b16.jpg";
sourceArr[17]="b17.jpg";
sourceArr[18]="b18.jpg";
sourceArr[19]="b19.jpg";
// 表示する7枚の画像URLの配列を作成する
photoArr = new Array();
for (var i:int=0; i<7; i++) {
//配列 sourceArr からランダムな要素を1つ抜き取って
//配列 photoArr の 要素[i] に代入
photoArr[i]=sourceArr.splice(Math.floor(Math.random()*sourceArr.length),1);
}
//「ムービープレビュー」時検証用(本来は不要)
trace(photoArr);
//~以下略~
//===========================================
現在作成されているものは一時置いておいて,
新規ドキュメントを作成して
上のスクリプトをフレーム1に書き(コピペし),
「制御」→「ムービープレビュー」すると,即動作確認できると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript gasについて 1 2022/05/31 21:51
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
uwscでExcelに自動記入
-
potplayerについて質問です
-
フラッシュゲームアーカイブ2
-
VBAのコンボボックスの年月表示...
-
キャラクター設定について
-
レジリエンス 変換キーが作動し...
-
arduino プログラムについて
-
iPhoneです。 Adobeフラッシュ...
-
FLASH MX で作成した、flashやA...
-
アメブロで音声ファイルを貼る方法
-
何種類の値があるかを調べる方...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ZWCAD CUIXとLISPの関係について
-
XMLを読み込んで外部JPGにリン...
-
Flash ActionScript 2.0でアド...
-
AS2 attachMovie 外部画像対応に
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
YOASOBI
-
VBScriptでMsgBoxのYesNoボック...
-
プログラミング、アーキテクチ...
-
python ボタンを押すと複数の関...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
五芒星は、悪魔崇拝とどういう...
-
else if文の順序を変えることに...
-
変数に256文字以上のテキストを...
-
RPG(AS400)の本、サイトってあ...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
ダブルクリックと2回クリックの...
おすすめ情報