Kim Korkar Preloader'dan?
Engin Gündoğdu Tarih: 24/07/2008 Yorum: 2 adet
Okunma : 1293 Tutanlar: Bu yazıyı 3 kişi tuttu.
Preloader(önyükleyici) Flash programını kullanmaya yeni başlayanların en çok zorlandıkları konulardan biridir. Programı kullananların karşılaştıkları ilk karmaşık kodlama diyebiliriz. Korkulacak kadar karmaşık olamadığını dersin sonunda sizlerde göreceksiniz.
Ülkemiz şartlarında internet hızının düşük olması nedeniyle çalışmalarımızın kullanıcı ekranına geç görüntülenmesi, ön yükleyicilerin önemini artırmaktadır. Peki önyükleyici ne işe yarar?
Çalışmamız yüklenirken kullanıcıya çalışma hakkında bilgiler sunabilir,ufak animasyonlarla site devamlılığını sağlayabiliriz.
Bu bilgileri verdikten sonra basit bir önyükleyici yapalım.
Flash programınızı açın ve file > new'i (ctrl+N) tıklayın. Shift +F2 tuşlarına basıp yeni bir scene oluşturun.
Sahneye birtane dynamic text oluşturun properties bölümünden (ctrl+F3) instance name alanına yuzde_txt yazın. Text içerik rengini siyah seçin. Timeline da ilk frame secip window>action(F9) action panelini açıp aşağıdaki kodları yazalım.
onEnterFrame=function(){
var toplamBoyut:Number=_root.getBytesTotal();
var yuklenenBoyut:Number=_root.getBytesLoaded();
if(yuklenenBoyut==toplamBoyut){
delete onEnterFrame
play();
}else{
var yuzde:Number=Math.floor((yuklenenBoyut/toplamBoyut)*100);
yuzde_txt.text=yuzde
}
}
stop();
İlk önce bahsi geçen kodların açıklamalarını yapalım.
onEnterFrame :Bir movie clip olay denetleyicisidir.Timeline çizgisinin her frame geçişinde çağrılır.
function() :Başlı başına bir konudur.Kısaca, sürekli kulanabileceğimiz kod bloglarını barındıran grublar olarak tanımlayabiliriz.
getBytesTotal() :MovieClip sınıfının bir metodudur.Toplam dosya boyutunu byte olarak gösterir.
getBytesLoaded() :MovieClip sınıfının bir metodudur.O ana kadar yüklenen dosya boyutunu byte olarak gösterir.
if :if değimi koşul belirtir. Koşulun gerçekleşmesi durumda bloğuna ait kodlar çalışacaktır.
else :if değimi ile belirtiğimiz koşulun gerçekleşmemesi durumunda else değiminin altındaki satırlar çalışacaktır
Math.floor : Sayıların ondalık kısımlarını yok sayar.
Şimdi kodların çalışma prensiplerini inceleyelim.
onEnterFrame [/b]olay denetleyicisi sayesinde fonksiyon altındaki satırların sürekli güncellenmesi sağlanıyor. Ana sahnemizdeki(_root)toplam dosya boyutunu toplamBoyut değişkenine atıyoruz. Yüklenen dosya boyutunu da yuklenenBoyut değişkenine atıyoruz. if değimi ile koşul belirtiyoruz.
Eğer bu iki değişken birbirine eşitse alt satırın çalışmasını sağlıyoruz. Alt satırımızda ise onEnterFrame olay denetleyicisini delete operatörü ile kaldırıyoruz ki system kaynaklarını zorlamasın. Play() komutu ile uygulamalarımızın bulunduğu scene 2 ye geçiyoruz.İf değimi ile sağladığımız koşul gerçekleşmezse, else değiminin altındaki satırlar çalışacaktır.
var yuzde:Number=Math.floor((yuklenenBoyut/toplamBoyut)*100);
yuzde_txt.text=yuzde
yukardaki kod satırını matematiği iyi olanlar hemen kavrayacaklardır.Yinede ben değinmek istiyorum.Burada bir oranlama söz konusudur toplamBoyutta, yuklenenBoyut kadar yükleniyorsa,100'de ne kadar yüklenir.
Bu matematik işleminden dönen sonuçların ondalık kısımlarını Math sınıfının floor metodu ile kaldırıyoruz,bu sayede if şartı gerçekleşene kadar elimizde 1'den 100'e kadar tekrar eden sayıları elde ediyoruz.
onEnterFrame olay denetleyicisi sayesinde kod satırları her çalıştırıldığında, bu sayıları yuzde_txt'mize textfield sınıfının text özelliğini kullanarak yazdırıyoruz. En son olarakda stop() komutu ile flash movienin çalışır çalışmaz oynamamasını sağlıyoruz. Eğer yükleme gerçekleşirse play() komutu ile timeline çizgimiz sahne 2 ye geçecektir.
Ctrl +Enter tuş kodlaması ile çalışmamızı test edelim. Sahnede 100'e kadar sayan sayıları göremeyeceksiniz. Ön yükleyicimizi test etmek için internet ortamına atmalısınız ya da Ctrl + Enter tuşlarına bastıktan sonra çıkan animasyon penceresinden wiew>Sımulate Downloand tıklarsanız önyükleyiciyi test edebilirsiniz.
Korkulacak hiçbir şey olmadığını hep beraber gördük. En alt seviyede anlatmaya çalıştım. Sonraki dersimizde animasyonlu ön yükleyiciler nasıl yapılır?
Karşılaşılan sorunlar nelerdir?Bu soruların cevaplarını hep birlikte çözeceğiz.
Beğendiğinize sevindim çok teşekkür ederim. Sanırım rootlar karışıyor.Dışardan yüklettiğiniz swf'nin ilk frame'ine this._lockroot=true yazarsanız düzelebilir. Yeni yapmış olduğum sitede 3 farklı swf var biri loader kısmı, biri menuler, biri arkaplan. http://www.atayayincilik.com.tr/ bahsetiğiniz böyle birşeyse yukardaki kodu kullandım. İyi Çalışmalar...
Makale
İlişkili makale bulunamadı.
Haber
İlişkili haber bulunamadı.
Ders
Etkinlikler
Toplantı
Özgür Yazılım ve Linux Günleri '10
Özgür Yazılım ve Linux Günleri '10
İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori:
Toplantı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 64 (50 kayıtlı, 14 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Blog Bölümü Blogevi.com'a Taşınıyor
Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...
7.500'üncü üyemiz Cem Koç!
Neler Yapılabilir?
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)











Anlatım şekliniz oldukça güzel. Bir öğretmen gibi anlatmışsınız. Sabırla...
Makalenizin içeriğiyle alakalı olarak bir sorum olacaktır. Yaklaşık 1 haftadır bu konu hakkında çalışıyorum ancak ne kendim yapabildim ne de iyi bir kaynak bulabildim.
Bir swf dosyasının içerisinde animasyon, buton, vs. ilgili kodlar bulunmakta. Bu swf dosyasını preloader .fla sına import ettim. Preloader çalışıyor ancak preloader bittikten sonra import ettiğim bu swf deki ne bir animasyon, ne de bir buton kullanılabilir durumda. Import edilen swf nin ilk görüntüsü resim gibi ekranda duruyor. Bunu nasıl çözebilirim?(Çözümün kodunu AS2 olarak yazar mısınız?)
Teşekkür ederim şimdiden..