چون فرصت هست و شاید سوال خیلی ها باشه اجالتا بفرمایید:
progressbar رو میشه به صورت های مختلفی استفاده کرد. مثلا حالت event و polled و manual.
حالت event از رویداد های progress و complete استفاده میکنه و پیشرفت process رو نمایش میده.
حالت polled با استفاده از متد های getBytesLoaded و getBytesTotal این کار رو میکنه.
و تو حالت manual خودتون باید با استفاده از متد setProgress و ست کردن خصوصیات minimum و maximum و indeterminate کار کنید.
این کامپوننت پارامتر هایی هم داره که بعضی از پرکاربرد هاش اینا هستن...
direction که برای جهت پیشرفت پروگرس باره. پیش فرض اون هم right ه. یعنی به سمت راست جلو میره. میتونید اون رو left قرار بدید.
labelPlacement که برای مشخص کردن جای متن حاوی درصد لود شده ست. پیش فرضش bottom ه و شما میتونید مقادیر top, left, right و center رو هم بهش بدید.
mode که همون چیزیه که اول توضیح دادم. میتونید مقادیر manual و polled و event رو بهش اختصاص بدید.
source که همون چیزیه که progressbar قراره وضعیت لود شدنش رو نمایش بده.
visible هم که مشخصه برای نمایش و عدم نمایش progressbar ه.
برای استفاده هم این sample ها رو ببینید(نمونه های خود فلشه):
این برای event mode ه:
PHP:
/**
Requires:
- Loader component on Stage (instance name: my_ldr)
- ProgressBar component on Stage (instance name: my_pb)
*/
System.security.allowDomain("http://www.helpexamples.com");
var my_ldr:mx.controls.Loader;
var my_pb:mx.controls.ProgressBar;
my_pb.source = my_ldr;
my_ldr.autoLoad = false;
my_ldr.contentPath = "http://www.helpexamples.com/flash/images/image1.jpg";
// when autoLoad is false loading does not start until load() is invoked
my_ldr.load();
این یکی برای polled mode بید:
PHP:
/**
Requires:
- ProgressBar component on Stage (instance name: my_pb)
*/
System.security.allowDomain("http://www.helpexamples.com");
var my_pb:mx.controls.ProgressBar;
my_pb.mode = "polled";
my_pb.source = "my_sound";
var pbListener:Object = new Object();
pbListener.complete = function(evt_obj:Object) {
trace("Sound loaded");
}
my_pb.addEventListener("complete", pbListener);
var my_sound:Sound = new Sound();
my_sound.loadSound("http://www.helpexamples.com/flash/sound/disco.mp3", true);
این یکی واسه manual هستش:
PHP:
for (var i:Number = 1; i <= total; i++){
// insert code to load file
my_pb.setProgress(i, total);
}
اینم یکی دیگه واسه manual ه:
PHP:
var feed_xml:XML = new XML();
feed_xml.onLoad = function(success:Boolean):Void {
clearInterval(timer);
my_label.text = "XML Loaded";
my_pb.setProgress(feed_xml.getBytesLoaded(), feed_xml.getBytesTotal());
};
function updatePB(local_xml:XML):Void {
my_pb.setProgress(local_xml.getBytesLoaded(), local_xml.getBytesTotal());
}
var timer:Number = setInterval(updatePB, 100, feed_xml);
feed_xml.load("http://www.helpexamples.com/flash/xml/menu.xml");
اینم یکی دیگه باز برای manual ه:
PHP:
var img_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number) {
my_pb.setProgress(numBytesLoaded, numBytesTotal);
};
mclListener.onLoadComplete = function(target_mc:MovieClip) {
//my_pb._visible = false;
};
img_mcl.addListener(mclListener);
this.createEmptyMovieClip("image_mc", 20);
img_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);
اگر سوالی بود بفرمایید.