Prosedürel Programlamadan Nesne Tabanlı Programlamaya Geçiş

Nesne Tabanlı Programlamaya geçmeden önce öğrenmeniz gereken birkaç konsept ve özellik var. Konuya başlamadan önce Flash CS3 ile yeniden yapılandırılan bir özelliğe değinmek istiyorum. Bu özellik Buton ve MovieClip nesnelerinin üzerine kod yazamamak. Bu bir çok programcıya göre olumlu bir gelişme olmuşken bir çok programcıya göre de olumsuz bir gelişme olarak değerlendirildi. Ben olumlu bakanlardanım. Olumlu yaklaşmamın sebebi bir programcı olarak kodların flash içerisinde onlarca parçaya bölünmesini yanlış bulmamdı. Bütün kodları aynı yerde toplamak gibi bir zorunluluk söz konusu değil ama her bir butona ayrı ayrı tıklayıp kod yazmakta açıkçası pekiyi bir çalışma stili/düzeni değildir.

Bu makalede Document Class, Kütüphane Objeleri ve Classpath konularına değineceğim.

Document Class

Flash CS3 ile gelen diğer bir özellik ise “Doküman Sınıfı”. Bu özellik ile Flash dokümanının içerisine timeline aracılığı olmadan yani Flash dokümanı içerisine kod yazmadan sınıf yapısı entegre edilebiliyor. Tabi ki istenildiği taktirde hala Timeline kullanılabilir ama gerekli olup olmadığını sizin karar vermeniz gerekecek. Doküman Sınıfını nasıl kullanacağımıza gelirsek, aslında basit bir mantığı var ilk olarak sınıf yapınızı hazırlıyorsunuz. Daha sonra ise bu sınıf yapısının ismini Properties panelinde yer alan Document Class adlı bölüme yazmanız yeterli oluyor. Örnek bir sınıf yapısı hazırlayıp test edelim;


DocumentTest.as

  1. package {
  2. import flash.display.Sprite;
  3. public class DocumentTest extends Sprite {
  4. public function DocumentTest() {
  5. trace("Doküman Sınıfı sorunsuz çalışıyor…")
  6. }
  7. }
  8. }

Yukarıdaki kodu DocumentTest adı ile bir klasöre kayıt edin daha sonra yeni bir Flash dokümanı oluşturup aynı klasöre kayıt edin. Şimdi ise Properties panelindeki DocumentClass adlı bölüme “DocumentTest” yazıyoruz.

Document Class

Ve test ediyoruz, test ettiğimizde output panelinde sınıf yapısı içerisinde yazdığımız “Doküman Sınıfı sorunsuz çalışıyor…” cümlesi çıkıyor. Flash dokümanı içine hiç kod yazmadan işlemimizi tamamlıyoruz. Burada dikkat etmeniz gereken bir iki ufak nokta var, eğer bir Actionscript dosyasını doküman sınıfı olarak tanımlamak istiyorsanız o sınıf yapısının MovieClip ya da Sprite sınıfının özelliklerini taşımak zorundadır. Yukarıdaki örnekte biz bunu sprite olarak ayarladık ve Sprite sınıfını import ettik. Eğer birden çok sınıf yapınız var ise mesela aynı klasör içerisinde 4 adet farklı ama beraber çalışan sınıf yapınız var, bunların tamamı Sprite veya MovieClip özelliklerini almak zorunda değildirler, sadece doküman sınıfı olacak sınıf yapısının bu özellikleri taşıması gerekiyor.

Bu sistemi manüel olarak ta kullanabilirsiniz, bunun için ise doküman sınıfına verdiğiniz sınıf isminin sonuna (.as) eklemeniz gerekiyor, daha sonra ise sınıf yapısını yeni bir obje tanımlar gibi çağırmanız yeterli olacaktır;

  1. var d:DocumentTest = new DocumentTest();

Kütüphane Objeleri
Actionscript 3.0 ile yeni tanıştığımız bir özellikte kütüphanedeki objelere birer sınıf gibi davranabilmemizdi. Kütüphanede yer alan bir objeye linkage ID bölümünden bir isim verildiğinde bu objeye bir sınıf objesi gibi davranılabiliyordu. Bunu nasıl yapacağımıza gelirsek, ilk olarak sahnede bir şekil çizip bunu bir movie clip objesine dönüştürün, daha sonra aşağıdaki adımları teker teker takip edin;

Kütüphanedeki objenin üzerine sağ tıklayarak Linkage seçeneğini seçin

Library

Karşınıza çıkan pencerede ilk olarak “Export For Actionscript” seçeneğini seçmeniz gerekiyor, daha sonra ise üst taraftaki Class bölümüne objeye vermek istediğiniz ismi giriyorsunuz;

Linkage

Karşınıza bir uyarı mesajı çıkacaktır, bu uyarı mesajı verilen tanımlamaya göre herhangi bir sınıf yapısı bulunamadığını yeni bir sınıf yapısının otomatik olarak oluşturulacağını dair bilgi veriyor. OK butonuna basıp devam ediyoruz. Şimdi kod kısmına geçip aşağıdaki şekilde bir sınıf yapımız varmış gibi objeyi oluşturup görüntü listesine ekleyebiliriz;

  1. var lib:library_test = new library_test();
  2. addChild(lib);

Classpath

Classpath kullanıcının tarafından belirlenen içerisinde Actionscript dosyalarının bulunduğu bir dosya yoludur. Sürekli olarak kullandığınız sınıf yapılarını bir klasörde toplayarak bu klasörü Flash CS3/Flash CS4 IDE içerisinde tanıttıktan sonra herhangi bir işlem yapmanıza gerek kalmadan bu sınıf yapılarını import ederek kullanabilirsiniz. Bu işlemi yapmak için aşağıdaki adımları teker teker uygulayın;

Edit > Prefences  ya da Ctrl + U tuşlarına basarak önünüze gelen pencerede sol bölümdeki Actionscript seçeneğini seçin.
Daha sonra sol-alt kısımdaki “Language” bölümünden “Actionscript 3.0 Settings” butonuna tıklayın karşınıza aşağıdaki gibi bir pencere gelecektir.

Classpath

Orada bulunan $(AppConfig) ifadesi ile bulunan dosya ismine kesinlikle karışmamanız gerekiyor, eğer silerseniz maalesef Actionscript sınıf yapılarına ulaşamayacaksınız, o yüzden dikkatli olun. Burada yapmanız gerekn ilk olarak artı işaretine tıklayarak yeni bir alan açmak daha sonra ise bu alanı seçip yukarıdaki butonlardan hedef butonuna basarak sınıf yapısının bulunduğu klasörü seçip OK tuşuna basmak. Böylece sürekli olarak kullandığınız sınıfları kopyalamak zorunda kalmadan işlemlerinizi yerine getirebilirsiniz.

Not: Bu makalede kullanılan materyaller Actionscript 3.0 kitabında alınmıştır. Kitabın yayın haklarından dolayı bu makaledeki materyallerin izinsiz kullanılması yasaktır.

Kapanış

Bu serinin devamı olan bir sonraki makalede sınıf yapılarına ilişkin temel bilgilere değineceğim. Metot ve özellik, fonksiyon ve olayların neler olduğuna detaylı bir şekilde değineceğim.

Kolay Gelsin
Engin!

Leave a Reply