Profili Göster

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.

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 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

aç-kapa Eğitim INETA Summer Hit

INETA Summer Hit

2-3 Ağustos tarihlerinde Yıldız Üniversitesi Oditoryumunda gerçekleştirilecek etkinliğe katılanları ise farklı hediyeler bekliyor. PC Magazine dergi...
Kategori: Eğitim

aç-kapa Konferans 2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08

2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08

2.Ulusal Yazılım Mimarisi Konferansı (UYMK’08), 11 – 12 Eylül 2008 tarihlerinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü ev sah...
Kategori: Konferans

aç-kapa Sergi İstanbul'da Bir Sürrealist: Salvador Dali

İstanbul'da Bir Sürrealist: Salvador Dali

Picasso ve Rodin’den sonra kimi görmek istersiniz deseler; Salvador Dali listenin ilk başlarında yer almaz mı? Ressam, yazar, bilim adamı, tasar...
Kategori: Sergi

aç-kapa Fuar CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de

CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de

CeBIT Bilişim Eurasia bu yıl 7 – 12 Ekim tarihlerinde düzenleniyor Adını dünyanın en büyük on fuarı arasına yazdırarak, İstanbul’u Avrasy...
Kategori: Fuar

üyeler Üyelerimizden...

MMIstanbul Adobe UG MMIstanbul Adobe UG

adobe user group

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.

stats Kimler Burada? web stats

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

coldfusion mysql ubuntu
 

Burada bulunan kategorimize 3, 6 12 ay sürelerince sponsor olabilir, hem topluluğumuzun gelişimine katkılarda bulunup, hem de ürün / servis ya da markanızın yüzbinlerce insan tarafından pozitif olarak tanınmasını sağlayabilirsiniz.