Flash CS3 ProgressBar ve UILoader Component


Bu bölümde ProgressBar ve UILoader Component kullanarak bir resim dosyasının harici yüklenmesine ait bir örnek anlatılacaktır.

DOSYAYI İNDİR

 

Uygulama:

1- Flash programını açıp components panelinden (panel açık değilse Ctrl+F7 tuşuna basarak açabilirsiniz) bir tane ProgressBar, bir tane Label ve bir tane IULoader bileşenini sahneye sürükleyip bırakın. Sahnede yerleştirilen yerin önemi yoktur.Çünkü kodlarla bu koordinatlar yeniden düzenlenecektir.

2- Progressbar bileşenine bar, label bileşenine metin ve IULoader bileşenine yukleme ismini properties panelinden atayın.1.kareye şu kodları atayıp filmi test edin.

var url:String = "resmimiz.jpg";

yukleme.autoLoad = false;
yukleme.source = url;
yukleme.move(2, 2);
yukleme.scaleContent = true;
yukleme.load();

bar.source = yukleme;
bar.move(73,100);
bar.addEventListener(ProgressEvent.PROGRESS, ilerleme);
bar.addEventListener(Event.COMPLETE, sonuc);

metin.text = "veriler yükleniyor";
metin.autoSize = TextFieldAutoSize.LEFT;
metin.move(118, 120);

function ilerleme(event:ProgressEvent):void {
metin.text = "%"+Math.round((event.bytesLoaded/event.bytesTotal)*100 )+ " yüklendi ";
}

function sonuc(event:Event):void {
bar.removeEventListener(ProgressEvent.PROGRESS, ilerleme);
bar.removeEventListener(Event.COMPLETE, sonuc);
removeChild(bar);
removeChild(metin);
}

Açıklama:

var url:String = "resmimiz.jpg"; Bir değişken oluşturulup değer olarak yüklenecek dosyanın yolu yazılır.

yukleme.autoLoad = false; false değeri yükleme komutunun çalışması için load komutuna ihtiyaç duyar. Şayet load komutu ile yükleme emri verilezse harici dosya yüklenemez. true değeri verilirse load komutunun verilmesine gerek duymadan otomatik yükleme yapar.

yukleme.source = url; yüklenecek kaynak dosyanın adresi yazılır.Biz bu adresi bir değişkene atadığımız için bu alana url değişkeni yazılır.isterseniz değişken kullanmadan buraya doğrudan adresi yazabilirsiniz.

yukleme.move(2, 2); yüklenecek jpg dosyasının sahnedeki x ve y koordinatları atanır.

yukleme.scaleContent = true; harici yüklenen resim dosyasının ebadları ne olursa olsun bileşenin boyutlarına ölçeklenir.Bu değeri false olarak alırsanız tüm ebadları koruyarak dosya yüklenir.

yukleme.load(); autoLoad değerini false olarak verdiğimiz için bu komutu kullanmak zorundayız. Komut olmadan yükleme yapılmaz. Şayet autoLoad değerini true yaparsanız bu komut dizinini kullanmanıza gerek yoktur.

bar.source = yukleme; Bu komut dizini progressbar ile IULoader bileşeni arasındaki ilişkiyi kurar. Bu bağlantı dizininden sonra progressbar bileşen kodlarının özellikleri atanacaktır.

bar.move(73,100); Progressbar bileşeninin sahnede görüleceği x ve y koordinatlarını oluşturur.

bar.addEventListener(ProgressEvent.PROGRESS, ilerleme); yükleme işlemi tamamlanana kadar ilerleme isimli fonksiyon çalıştırılmaktadır. Biraz sonra göreceğiniz gibi ilerleme fonksiyonunda metin isimli label bileşeninde yüklenen dosyanın yüzde değeri gösterilmektedir.

bar.addEventListener(Event.COMPLETE, sonuc); yükleme işlemi tamamlandığı an sonuc isimli bir fonksiyonu çağırır ve çalıştırır. Bu fonksiyonun içeriği az sonra açıklanacaktır.

metin.text = "veriler yükleniyor"; çok gerekli bir dizin değildir.Label bileşeni sahnede ilk gözüktüğünde içereceği metni atar. Veriler yüklendikçe bu alanda yüzde değerleri gözükecektir. Bu dizindeki metin label bileşeni sahnede gözüktüğünde ve bir nedenle veri yüklenmesi kesilmiş ise alanın boş kalmasını önler.Ama yükleme hemen başlarsa bu metni sahnede görme şansımız olmayabilir.

metin.autoSize = TextFieldAutoSize.LEFT; Metin bileşenin sol tarafına yaslanarak yüklenir.

metin.move(118, 120); label bileşeninin sahnedeki x ve y koordinatlarını atar.

function ilerleme(event:ProgressEvent):void {
metin.text = "%"+Math.round((event.bytesLoaded/event.bytesTotal)*100 )+ " yüklendi ";
}

Yüklenen byte oranını label bileşeninde göstermek için kullanılan fonksiyondur.

function sonuc(event:Event):void {
bar.removeEventListener(ProgressEvent.PROGRESS, ilerleme);
bar.removeEventListener(Event.COMPLETE, sonuc);
removeChild(bar);
removeChild(metin);
}
Bu komut verilerin yüklenmesi bittikten sonra çalışacak fonksiyonu oluşturur.Bu fonksiyon çalıştığında bar isimli progressBar bileşenine atanan tüm kodlama özellikleri kaldırılır ve removeChild komutları ile progressbar ve label bileşeni sahneden silinir.