ActionScript Nedir?
Sizlere bu sayfada macromedia flash ile ilgili çeşitli konularda bilgi aktarmaya çalışacağım. Bu bilgiler daha cok flash'da action script kullanımını ilgilendiren şeyler olacak. Zaten flash'da grafikle ilgili çok çeşitli atraksiyonların anlatıldığı yerler bulabilir veya bunları çok kolayca kendi başınıza yapabilirsiniz.
Öncelikle bu yazıyı okuyan kişilerin şunu bilmesini isterim. Bu bölüm bir action script sözlüğü değildir. Yani şu anda biri, flashla ilgili bir konuda kod yazarken, takıldığı bir komutu nasıl kullanıcağını öğrenmek için bu yazıyı okuyorsa, o komutun ne işe yaradığını burdan bulamaz. Bu konuda bakılması gereken en uygun yer flash'ın helpindeki action script sözlüğü olabilir yada http://www.flashkit.com'a bakabilir. Bu site kesinlikle bu konuda çok zengin bir kaynaktır.
Bu bölümde anlatılacak konular flash'da bir uygulama yazarken kitaplarda çok net olarak anlatılmayan metodlardır. Bu yazıdan yararlanabilecek kişilerden bir bölümüde, fazla programlama bilmeyen ama Flash'da grafikten çok interaktif konulara meraklı kişiler olacaktır. Ve son olarak bu bölümde birlikte flash'da birçok basit oyun nasıl yapılır bunların üzerinde duracağız.
Flashda herhangi bir şey yapılırken bilinmesi gereken yada en çok kullanılan önemli temel kavramlar vardır. Bunların nasıl çalıştığını anlamadan yapılacak şeyler ya çok zahmetli bir çalışma yada birçok şeye imkan vermeyen yarı ölü bir proje olacaktır. Bunlar: Movie Clip, Button ve Timeline dır.
Movie Clip
Movie Clip, Flash'ın olmazsa olmazlarından biridir. Çünkü bir movie clip yarattığınızda iç içe iki tane flash dosyası açmış gibi olursunuz. Ve bunun yarattığı olanaklar inanılmazdır. Bu aynı aynanın karşısına geçip bir başka ayna koyduğunuzda orada birbiri içinde gorünen aynaların sonsuza kadar giden görüntüsünden farksızdır. Ve siz oradaki herhangi bir kısımından değer döndürebilirsiniz.
Bir başka benzetmede söyle yapılabilir. Programlama dillerinde bir program, ana program bloğu, prosedür ve fonsiyonlardan oluşur.Ana program bloğu prosedürleri çağırarak programın işlemesini sağlar. İşte Flash da ilk ekran ana program bloğu, movie cliplerde prosedür ve fonksiyonlar gibidir. Flashın avantajlarından biride burdaki movie clipler birbirinden bağımsız aynı anda çalışabilen objeler gibi davranırlar.
Movie cliplerin bir işlevide görsel atraksiyon yapılırken kullnılan uzun frameler arasındaki Motion Tween, grafikler vb. gibi ortada karışıklığa neden olabilecek şeyleri ortadan kaldırır. Çünkü flash görsel ve kodsal alanların iç içe girerek işem yapılmasına olanak sağlayan bir programdır. Bu da beraberinde bazı zorluklar getirmektedir.Yani siz birtakım grafiklerin üzerine kod ekledikten sonraya araya bir keyframe koyarsanız yada silerseniz, flash bu kısımlarda önceki frameden farklı davranır. Bu da size çözülmesi zor olan hatta "undo" yaparak bile kurtaramayacağınız sorunlar yaratabilir. İşte bu yüzden sizlere önerim layerları iyi kullanın, bir biriyle aynı yerde olması gerek şeyleri ana scene yerine movie clip yapın ve kod yazarken gerçek görsellik yerine onu simule edebilecek grafikler kullanın.
Button
Flashda buttonlar sizin klavye yada mouse yoluyla aktivite gerçekleştirecek kullanıcıdan gelecek girdiyi dinlediğiniz nesnelerdir. Örnek olarak "mouse click" için "press" , "release" gibi.
Buttonların bana göre en çok işe yaradığı yer, bir durumu simule etmek için kullanıldığı yerlerdir. Diyelim ki programınızda bir yerde, keyframedeki kod bir işlevi gerçekleştirecek fakat oradaki durumun oluşup oluşmayacğını bilemiyorsunuz. Bu durumda en sıhatli olan bu kodu önce bir buttona atar ve denersiniz eğer çalışıyorsa koyarsınız, çünkü buttona basıldığında oradaki bölümün işletileceği kesindir. Flashın en büyük eksikliği, yaptığınız proğramdaki kodu debug ederken, satır satır içeriğinde ne var görememenizdir. Aslında Flash 5 de bu durumu kapatmak için bir debugger var fakat yinede yeterli değil bence. Test için text alanlarınıda kullanmayı ihmal etmeyin.
Buttonlarla ilgili söyleyeceğim bir şeyde, buttonların bir movie clipin içinde de kullanılabilmesidir. Buttonlar flash tarafında hareketli objeler olarak görülmezler, propertieslerin hepsi movie clipler için geçerlidir. Fakat movie cliplerdede eventlar yani mouse press gibi durum değerlendirici özellikler yoktur. İşte bu ikisinin birden gerektiği yerlerde o movie clipin içindeki alana girilip oradaki grafik seçilerek buttona çevirilebilir.
Time Line
Flash'daki timeline, üzerine kod yazılabilen, programınızın hem uzunluğunu hemde süresini belirleyen bir araçtır. Aslında programlama dillerindeki debugerlar gibi çalışır, üzerine geldiği frame in içinde neler tanımlıysa onları gösterir ve çalıştırırlar. Flash' da timeline aynı şekilde movie cliptede kullanılır. Bu özellik sayesinde bir movie clipe iki key frame koyularak birincisine bir değeri kontrol işi atanırsa ve ikincisinede birinciye dönmesi için "goto" konulursa bu şekilde çok kısa sürelerde gerçekleştrilebilen kontrol mekanizmaları kurulmuş olur.
Bana göre iyi bir flash programını anlamanın en güzel yolu o flash programının ana ekranda sadece tek framede çalışmasıdır. Tabi bu işin esprisi fakat, Flash bu özellikleri sayesinde çok ciddi bir web ve multimedya yazılımı üretebilen bir programdır.