解決済みの質問
外部写真データが既にサイトキャッシュされている場合に、プログレスバーを表示させない
1ページに100枚ぐらいある写真を1フレームごとに1枚ずつ表示しています。
枚数がおおいので外部からファイルを読み込んでページのおもさを分散しています。
写真の読み込みが始まったらプログレスバーを表示しているのですが、
一度読み込まれるとキャシュされて次からは一瞬だけプログレスバーが表示されます。
キャシュがある時はプログレスバーを表示しないようにするにはどのようにすればいいのでしょうか?
win7 AS2.0 CS4です。
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listenerObject:Object = new Object();
listenerObject.onLoadProgress = function(mc, lb, tb) {
num.text=Math.floor(lb/tb*100);
}
よろしくお願いします。
投稿日時 - 2010-03-20 09:56:52
ムービーの構造や色々な状況がわからないので
全ての場合でうまく行くかどうかはわかりませんが,
表示を遅延するのでしたら,getTimer() で経過時間を計れば良いのではないでしょうか。
1つの例↓
-------------------------------------
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listenerObject:Object = new Object();
listenerObject.onLoadProgress = function(mc, lb, tb) {
//↓ロード命令より 0.1 秒経過後であれば
if (getTimer()-time0>100) {
num.text = Math.floor(lb/tb*100);
}
};
listenerObject.onLoadComplete = function(obj, mc) {
num.text ="";
};
mcLoader.addListener(listenerObject);
//↓ロード命令をしたときの時間を変数 time0 に保存
var time0:Number = getTimer();
//↓ロード命令
mcLoader.loadClip(url, _mc);
-------------------------------------
投稿日時 - 2010-03-20 19:18:26
4人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~1件目)
プログレスバーを表示するのをちょっと遅らせるなんてのはいかがでしょう?
0.1秒遅延させる等で、その0.1秒の間に読み込みが完了していれば、表示させないという感じで。
遅延が入る分、反応速度の悪い重たいアプリと誤解される可能性がありますが。
※画面の下部に、一瞬表示されても気にならない目立たないプログレスバーを表示して、反応速度の悪いアプリとの誤解を防いで、さらに読み込みに時間が掛かる時は目立つようにプログレスを遅延で表示させるという形がよいかも知れません。
投稿日時 - 2010-03-20 11:12:52
補足
回答ありがとうございます。
遅延を行うにはどのようなスプリクトを書けばいいのでしょうか?
よろしくれば詳しい回答をよろしくおねがいします。
投稿日時 - 2010-03-20 11:51:37