Actionscript ve Nesne Yönelimli Programlama (OOP) - I. Bölüm
Aytekin Meral Tarih: 3/04/2008 Yorum: 0 adet
Okunma : 788 Tutanlar: Bu yazıyı 5 kişi tuttu.
Flash 7 ile gelen A.S 2.0 ‘da önceki versiyonlara göre birçok değişiklik oldu. Hemen ardından da daha gelişmiş bir yapıya sahip olan A.S. 3.0 geldi. Şimdi ActionScript 3.0 bir çoğunuzun gözünü korkutuyor olabilir. Uzun zamandır bunun üzerine bir şeyler yazmıyoruz. Açıkçası kod içeriği çok kapsamlı oldu bu sefer; kodların tamamını akılda tutmak, ya da en azından bir proramlamacı için bunları parmaklara alıştırmak biraz uzun sürecek gibi.
A.S 2.0’ı ve ona eklenen OOP mantığını iyi anlayan herkes rahatlıkla AS 3.0 içinde kodlama yapabilir inancındayım. O yüzden daha önce AS 2.0 ile ilgili kod yığınları yayımlarken, artık daha çok makale veya derslere yer vermek istiyorum.
Bugünlerde hala Flash5 tarzı kod yazanlar var, AS 1.0 yazanlar zaten daha fazla ama AS 2.0 yazanlar pek çok değil. Bazen bakıyorum da, hepsini karman çorman edip ortaya ne olduğu belli olmayan kodlar çıkarıyorlar. Ki bu yeni öğrenenler için gerçekten bir ikileme yol açıyor.
Hala tellTarget’ı, setProperty’yi kullananlar var. Prototype hala gündemde. En garibi de, on(release), on(press) … on(data), on(clipEvent) … gibi flash5 stili kodların hala kullanılmaya devam edilmesi.
Ben bu noktada siz flash severlerin bu versiyonlar arasındaki farkları daha net anlamanız için AS 1.0 ve AS 2.0 ‘ı baz alarak birkaç ana değişikliği anlatmaya çalışacağım. Umuyorum ki AS 2.0’ı iyi anlar ve AS 3.0’a sorunsuz geçiş yapabilesiniz.
1) Büyük küçük harf duyarlılığı: Eskiden kod yazarken, onEnterFrame yerine onenterframe yazsanız dahi flash bunu anlıyor ve derliyordu. Ancak Flash 7’den itibaren Case Sensivity yani büyük küçük harf duyarlılığı geldiği için artık buna dikkat etmeniz gerekiyor. Bir örnek verelim:
var deger:String = "We love Flash";
trace(Deger);
Bu kodu test ederseniz, output panelinde undefined çıktısı alırsınız. Ama bunu,
var deger:String = "We love Flash";
trace(deger);
şekline sokarsanız o zaman size We love Flash değerini verecektir.
2) undefined ve NaN: Flash 7 öncesinde tanımsız stringler için alacağınız output boş string’ken (""), ve Number değerler için 0 çıktısı alırken, flash 7’den itibaren, tanımsız stringler için undefined, tanımsız numaralar için ise NaN alırsınız.
örnek:
var deger:Number = x+5;
trace(deger);
burda x değişkeni tanımlanmadığı için, çıktı Not a Number (NaN) olacaktır. aynı şekilde;
var deger:String;
trace(deger);
çıktısı undefined(tanımsız) olacaktır. Çünkü deger String değişkenine bir string değeri atanmamıştır.
bu ifadeleri kodlama yaparken,
if(deger == undefined) {
//yapılması gerekenler
}
ya da
if(deger == NaN) {
//yapılması gerekenler
}
şeklinde kullanabilirsiniz.
3) Stringler için Boolean değer tipinde olan değişiklik: Boolean veri tipi hakkında bilgisi olmayanlar için hemen bir özet geçelim. Çoğu kişinin bildiği true(doğru 1) ve false(yanlış 0) veri tipleridir. Yani birşey ya doğrudur, ya da yanlıştır. Felsefe ile arası iyi olanlar bunun Aristoteles mantığı olduğunu hatırlayacaktırlar. Bu yapı programlama dillerinin ana mantığını oluşturur. Bu yapının alternatifi ise Bulanık Mantık’tır, ama konumuzla ilgili olmadığı için onu es geçiyoruz. Konumuza dönersek; Flash 7 ve sonrası stringler için,
degisken = "Flash";
if(degisken) {
trace("TRUE");
}else{
trace("FALSE");
}
//TRUE çıktısı görülecektir.
aynı şekilde;
degisken = "";
if(degisken) {
trace("TRUE");
}else{
trace("FALSE");
}
//FALSE çıktısı görüntülenecektir.
Yani uzunluğu* sıfırdan büyük olan stringler için sayı da olsa rakam da olsa hep TRUE boolean değeri alacaksınız. Oysa Flash 7 öncesinde sadece "1" string değeri için TRUE diğer bütün değerler içinse FALSE çıktısı alabilirdiniz.
*Bir stringin uzunluğu bulmak için,
var degisken:String = "Flash";
trace(degisken.length);
kullanabilirsiniz.
Yazımı burda noktalıyorum. Diğer makalelerimde daha çok Flash ve Nesne Yönelimli Programlama üzerinde durmaya çalışacağım.
İçeriğe kayıtlı yorum bulunmuyor. İlk yorumu siz buradan ekleyebilirsiniz.
Makale
İlişkili makale bulunamadı.
Haber
İlişkili haber bulunamadı.
Etkinlikler
Yarışma
Akbank exi26 Şipşak: Gençler için Fotoğraf Yarışması
Akbank exi26 Şipşak: Gençler için Fotoğraf Yarışması
Akbank Gençlik Bankacılığı exi26 tarafından düzenlenen fotoğraf yarışmasına dijital fotoğraf makinelerinizle çektiğiniz fotoğraflarla katılabilirsiniz...
Kategori:
Yarışma
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash , PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Connect, Premiere, Soundbooth, Contribute, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 406 (0 kayıtlı, 406 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Ne Nedir Kampanyası Başlıyor!
Selam arkadaşlar, MMIstanbul içeriğinin gelişmesine katkıda bulunmak isteyen arkadaşlarımıza söyle bir önerimiz var. Sizleri çok fazla yo ...
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız
MMIstanbul Online Seminerlerine Nasıl Katılabilirim?
Bazı Akıl - Fikirleriniz Olabilir
MMIstanbul' u Nasıl Desteklerim?


