Profili Göster

Movie Clip Loader Sınıfını Kullanarak Önyükleyici Yapımı

Engin Gündoğdu Tarih: 28/07/2008 Yorum: 0 adet

Okunma : 756 Tutanlar: Bu yazıyı 0 kişi tuttu.

Bundan önceki derslerimde, yaptığımız çalışmaların tamamı için önyükleyiciler (preloader) yaptık. Çalışma içinde harici dosyalarımızı uygulamamıza dahil etmek istersek karşımıza yine bir bekleme süresi çıkacaktır. İnternet kullanıcıların kabusları olan bu bekleme sürelerini küçük animasyon ya da bilgilendirmelerle değerlendirebileceğimizi diğer yazılarımdan biliyorsunuz.

Bu yazımda yüklediğimiz harici dosyalara(swf,jpeg) ön yükleyici nasıl yapılır onu anlatacağım. Diğer yazılarımda olduğu gibi en basit şekilde uygulama üzerinden anlatmaya çalışacağım ve yaptığımız uygulamayı ekleyeceğim.

Flash programında bir uygulama gerçekleştirirken hepimizin özen gösterdiği konu dosya boyutudur. Dosya boyutumuzun yüksek olmaması içinde çalışmamızda kullandığımız resimlerimizi ve harici swf dosyalarımızı dışardan uygulamamıza dahil ederiz. Bu işlemleri çoğunlukla alışık olduğumuz loadMovie() ve loadMovieNum() fonksiyonları ile yapıyorduk.

Biz bu fonksiyonları kullanmak yerine Flash MX 2004 versiyonu ile gelen MovieClipLoader sınıfını kullanacağız.loadMovie metodu harici dosyalarımızı yüklemek için sadece bir komuttur.LoadMovie yükleme sırasında bize bir bilgi sunmaz ve dosyalarımızın yüklenip yüklenmediğini denetlemez.MovieCliploader sınıfı ise tam akisine yüklemelerimizin başından sonuna kadar bilgi alabileceğimiz bir çok olay denetleyicisini sunar.Kısa bilgilendirmeden sonra örnek bir çalışma üzerinden adım adım sınıfımızı anlatmaya başlayalım.

//Load_nesne adında MovieClipLoader sınıfına ait bir nesne örneği oluşturuyoruz.

 Load_nesne = new MovieClipLoader ();

/*

Yükleme başlar başlamaz onLoadStart olay denetleyicisi tetiklenecektir. Olay denetleyicimiz, tek parametreye sahiptir.Harici dosyamızın yükleneceği movie clip sembolün instance name’ini yazıyoruz. Son olarak da trace komutu ile output paneline yükleme başladı yazdırıyoruz.

*/
Load_nesne.onLoadStart = function (yukle_mc) {  
trace("Yükleme Başladı ")
    };

/*

Harici dosyamız yüklenene kadar onLoadProgress olay denetleyicisi çağrılacaktır. Bu olay denetleyicimiz 3 parametreye sahiptir. İlk parametremiz harici dosyamızı yükleyeceğimiz movie clip sembolün referans adı. İkinci parametremiz ise dosyamızın o ana kadar yüklenen boyutunu döndürür. Üçüncü parametremizde harici dosyamızın toplam boyutunu taşır.

*/

Load_nesne.onLoadProgress = function (yukle_mc, yuklenen, toplam) {

/*

Alta ki kodlar size diğer yazılarımdan tanıdık gelecektir. Yine de kısa bir şekilde bahsedelim. yuzde değişkenine yuklenen byte’ı toplam byte bölüp 100 ile çarpıp çıkan sonucu Math sınıfının floor metodu ile tamsayıya çevirip atıyoruz. yuzde değişkenini yuzdetxt isimli textimize yazdırıyoruz, barmc referans isimli movie clip sembolümüzün xscale özeliğini yuzde değişkenimize bağlıyoruz. Son olarak da trace komutu ile output paneline dosyalarımız yükleniyor yazdırıyoruz.

*/
var yuzde= Math.floor ((yuklenen / toplam) * 100);
    yuzde_txt.text = "Yüklenen : " + yuzde+ " %";
bar_mc._xscale=yuzde;
trace("Dosyalarımız yükleniyor ")

};
/*

MovieClipLoader sıfımızın medotlarını taşıyan load_nesne örneğimizin onLoadComplete Olay denetleyicisi ise yükleme tamamlandıktan sonra tetiklenir. onLoadComplete olay denetleyicisinin 2 parametresi vardır. Birinci parametreye dosyamızın yükleneceği movie clip sembolün referans ismini yazıyoruz. İkinci parametresine ise flash 8 versiyonu ile gelen durum kodunu taşır. Bu durum kodları sayesinde dosyanızın bulunmaması (404) veya erişim izinlerinden kaynaklanan (403) sorunlar nedeniyle uygulamamızda çıkan aksaklıkları düzenleyebiliriz. Parametrelerimizi açıkladıktan sonra bu satırda yuzdetxt isimli metin kutumuza yükleme tamamlandı yazdırıyoruz. barmc ve yuzde_txt’mizi visible özelliklerini false atayıp görünmez yapıyoruz.

*/
    Load_nesne.onLoadComplete = function (yukle_mc,Durumkodu) { 
    bar_mc._visible=false;
    yuzde_txt._visible=false,
    trace("yükleme tamamlandı ")
};
/*

Yükleme tamamlandığında yüklediğimiz dosyamızın ilk frame’i oynadığı anda onLoadInit olay denetleyicisi tetiklenir. Bir tane parametresi vardır oda yükleme yapacağımız movie clibimizin referans ismidir. Script akışınıza göre yapmak isteğiniz uygulamaları bu olay denetleyicisinin altına yazabilirsiniz. Biz bilgi edinmek için yine trace komutu ile "ilk frame oynatıldı" yazısını yazdıralım.

*/
Load_nesne.onLoadInit = function (yukle_mc) {   
    trace("ilk frame oynatıldı ")
};
/*

Son olarakta onLoadError olay dentleyicimiz, harici dosyamızın belirtilen adreste bulunmaması veya yükleme sırasında yaşanan ani kesintilerde tetiklenir. Olay denetleyicimiz 3 parametreye sahiptir. Tahmin edeceğiniz gibi birinci parametresi movie clibimizin ismini, ikinci parametresi ise hata türü ile ilgili bir sitring ifade taşır. Bu ifadeler ;

"URLNotFound" :Çalışmamıza dahil etmek istediğimiz dosyamızın bulunmaması durumunda hata parameteremiz bu string ifadeyi döndürecektir ve onLoadStart olay denetleyicisi hiçbir zaman çağrılmayacaktır .
"LoadNeverCompleted":Yükleme esnasında sunucunun kapanması veya internet bağlantımızın kesilmesi durumunda hata parametremiz bu string ifadeyi döndürecektir.
onLoadStart olay denetleyicisi tetiklenecek fakat yükleme tamamlanamayacağı için onLoadComplete çağrılmayacaktır.Üçüncü parametresi de yine bahsettiğimiz durum kodunu taşır.

Kod bloğumuzda dönecek olursak 2. parametremizin döndüreceği değere göre 2 tane şart koşuyoruz ve bu şartlardan herhangi biri gerçekleşirse sahnedeki textimize ve output panelimize hata türlerini yazdırıyoruz.

*/
Load_nesne.onLoadError = function (yukle_mc,hata,durumkodu) {
    // Eğer dosya bulunamazsa
    if (hata == "URLNotFound") {
        yuzde_txt.text = "Dosya bulunamadı!";
    trace("dosya bulunamadı")
    // Yükleme esnasında bir hata oluşursa
    } else if (hata == "LoadNeverCompleted") {
        yuzde_txt.text = "İletişim hatası!";
    trace("iletisim hatası ")
    }
};/*

Bu kısım sınıfımızla ilgili olmayıp, harici dosyamızın yükleneceği movie clip sembolü dinamik olarak oluşturuyoruz. Aşağıdaki kodumuzdan da anlaşılacağı gibi oluşturduğumuz movie clibimizin referans ismini yukle_mc atıyoruz. Oluşturduğumuz sembolü sahnemizde en son derinlik seviyesine yüklüyoruz.

*/
_root.createEmptyMovieClip ("yukle_mc", _root.getNextHighestDepth ());

/*

Evet son olarak artık MovieClipLoader sınıfının özelliklerini taşıyan nesnemize loadClip metodu ile harici dosyamızı yüklettiriyoruz. İlk parametreye yüklemek istediğimiz dosyamızın ismini ve uzantısını, ikinci parametremize oluşturduğumuz movie clip sembolümüzün adını yazıyoruz.

*/
Load_nesne.loadClip ("deneme.swf", "yukle_mc");

MoviClipLoader sınıfını örnek üzerinden adım adım anlatmaya çalıştım. Açıklamaları /* operatörü ile başlayıp */ operatörüyle bitirdiğim için action script yorumlayıcısı tarafından dikkate alınmayacaktır. Açıklama satırlarını da flash programınıza dahil edebilirsiniz. Son olarak özetlemek gerekirse:

Yaptığımız uygulamaların herhangi bir yerinde dışardan çağıracağımız dosyalara MovieClipLoader sınıfını kullanarak önyükleyici (preloader) ekledik. Sınıfımıza ait bir nesne örneğini oluşturduk. Sınıfımızın olay denetleyicilerini oluşturduğumuz nesneye bağlı olarak sırasıyla kullandık. Uygulamanızı iki kere Ctrl+Enter tuş kombinasyonuna basarak test edebilirsiniz. Output panelindeki yazıların sırasına dikkat ederseniz, olay denetleyicilerimizin sırasını ve ne işe yaradıklarını daha iyi kavrayabilirsiniz.

Bu sınıfı yeni öğrendiyseniz, loadMovie komutu yerine birçok özelliğe sahip olan bu sınıfı kullanmanızı tavsiye ederim.

Diğer yazılarımda görüşmek üzere…

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

İçeriğe kayıtlı yorum bulunmuyor. İlk yorumu siz buradan ekleyebilirsiniz.


yeni üyelik | şifremi unuttum

aç-kapa Toplantı Kahraman ve need4code.com Projesi Connect Toplantısı

Kahraman ve need4code.com Projesi Connect Toplantısı

Selam arkadaslar, Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 3Aralık...
Kategori: Toplantı

aç-kapa Yarışma Fikir10000 Dijital Pazarlama Fikir Yarışması

Fikir10000 Dijital Pazarlama Fikir Yarışması

ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori: Yarışma

aç-kapa Yarışma 7Dx Demoscene Party

7Dx Demoscene Party

2002 yılından beri amatör bilgisayar kültürü ile ilgilenen insanları bir araya getirmeyi hedefleyen 7DX parti serisinin bu seneki ayağı olan 7D8 Demo ...
Kategori: Yarışma

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 365 (2 kayıtlı, 363 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul