Plazma sayı 5, sayfa 60
Sayfanın metni

Sayfa 60

"Usta... ActionScript 3.0 üzerine pişmişinden OOP kes, az da MVC döküver..."

class as scripts.SlideShow3 ( public function SlideShow3 () (

public static function movie:String)

var m empty:MovieClip - —root.createEmptyMovieClip( "m empty", 100); m empty. x - 100; m empty. y - 100; m empty.loadMovie(s movie);

Bu class üzerinden türetilen her objede IMovie metodu var gibi gözüküyor. Ama normal şekilde

import as seripts.*; Var a:SlideShow3 - new SlideShow3(); a.lMovie("../images/pic 1.İpg");

şeklinde bir kullanımda "error message: Static members can only be accessed directly through classes." gibi bir hatayla karşılaşırsınız.

SlideShow3 class'ının IMovie metoduna erişmek için.

import as scripts.*; SlideShow4.lMovie("../images/pic 1.İpg");

şeklinde doğrudan o class'a erişmeniz gerekiyor. Aynı şekilde bir property'yi de Static tanımlamanız gerektiğinde

class as scripts.SlideShow3right public static var s movie:String - public function SlideShowâright () ( ) public static function 1Movie () (| var s mymovie:String s movie; var m empty:MovieClip - —root.createEmptyMovieClip( "m empty", 100); m empty. x - 100; m empty. y - 100; m empty.loadMovie(s mymovie);

ile değişkeni static olarak tanımlamalısınız. Aksi halde statik olan metodumuz, statik olmayan (ve her kopyada yer alan) değişkene erişmeye çalıştığında "error message: Instance variables cannot be accessed in static functions." şeklinde bir hata verecektir.

Get / Set

OOP'un güzel yanı, oluşturduğumuz objelerin kapalı birer kutu gibi davranabilmesi ve yazan kişinin izin verdiği ölçüde dışarıya bilgi vermesidir. Class'ın içinde çok karışık hesaplamalar yapabiliriz. İçeride onlarca, hatta yüzlerce değişken kullanabiliriz, ama bu her değişkeni, her an erişime sunabileceğimiz demek değildir. Daha önceden kullandığımız getProperty ve setProperty metodları class'ımızda çalışacaktır. Ama OOP'un temelinde bir değişkene erişmek istiyorsak, ona erişen bir getter ya da onu değiştiren bir setter fonksiyon yazmak daha düzenli ve kontrollü olmamızı sağlar. Getter, değer döndüreceği için return kullanmamız kaçınılmaz. Aynı zamanda metoda :Number tanımlamasıyla bir rakam döndüreceğini belirtebiliriz. :Void ile setter metodunun herhangi bir geri dönüşü olmayacağını belirtiriz.

class as scripts.Adjust xy ( private var nu xDistance:Number; private var nu yDistance:Number; private var mo fclip:MovieClip; private var m clip:MovieClip; public function Adjust xy (mo fclip) 1

j

function get Fix() :Number

1 )

function set Fix(nu xDistance) :Void

(

) function get Fiy() :Number

1 )

function set Fiy(nu yDistance) :Void m clip. y nu yDistance;

m clip mo fclip;

return m clip. x;

m clip. x nu xDistance;

return m elip.

)

MVC

Zen, daha üst seviyede algılamakla ilgilidir. Bir bayrak dalgalandığında herkes onun dalgalandığını görür. Bir Zen öğrencisi ise bayrağı dalgalandıran rüzgarı algılar. Daha ileri seviyedeki bir Zen öğrencisi ise ne bayrak, ne de rüzgarı dikkate alır, onu algılayışımızın düşünme biçimimizle ilgili olduğunu görür. Hayat içerisindeki acı ve sevinçlerimizin düşünme biçimimizin yarattığı prangalarımız olduğu Budist düşünüş biçiminin temellerini oluşturur.

MVC'yi programlamanın Zen'i olarak görebiliriz. Karışık yapıları yüzünden bize acı çektiren birçok hata prangasından kurtulmak da daha üst bir bakış açısıyla olabilir. Zen'i kavramanın bir kitap okumakla olamayacağı gibi MVC'nin de kemikleşmesi bol pratik yapmakla ve bu yaklaşımı sürekli hale getirmekle ilgili. Aslında Zen gibi, MVC de çok basit ve herkesin kolaylıkla kullanabileceği bir yapıdır. http://en.wikipedia.org/wiki/Design_pattern_(computer_science) başlığında benzer çeşitli yazılım şablonlarını bulabilirsiniz.

MVC'nin açılımı Model-View-Controller'dır. Gösterim, veri ve denetleme mekanizmalarını birbirinden ayrı tutarak daha odaklı halde kod yazmamızı sağlayan bu yaklaşım, daha organize çalışmamızı sağlar. Model, veritabanı, veri alışverişi gibi bilginin kaydedildiği ve okunduğu program kısımlarını içerir. View, içeriğin görselleştirildiği, kullanıcıyla iletişimin kurulduğu, front-end olarak düşünebildiğimiz bölümlerdir. Controller ise bu ikisi arasında durarak hangi durumda hangi veriyi getirileceğini, hangi gösterim şablonlarının kullanılacağını belirleyen mekanizmadır.

Klavyeyle gezinmek için ← ve → tuşları.