Actionscript Nedir ?
Actonscript, Flash ın içinde bulundurduğu programlama dilidir. Bu programlama dili, genellikle ya oyun yapımı için kullanılır, ya da sitelerde Bannerlarda böyle üzerine gelince girintili çıkıntılı animasyonlu butonlar için yapılır. Yani Flash ın Actionscript i, çoğu sitede, oyunda görebileceğiniz birşeydir. Her Flash kullanıcısının ve Animasyoncunun öğrenebileceği bir dildir. Bu derslere çok çok fazla birşey öğrenmeyecek olsak da, Türkçe kitaplardaki herşeyi ve daha fazlasını öğreneceğiz. Ayrıca sizi anlatımlar, açıklamalar ile sıkmayıp, teknik ıvır zıvırı bırakıp, doğrudan konuyu anlatacağım.
Actionscript 3.0 mı? Actionscript 2.0 mı?
Actionscript 3.0 benim öğreteceğim, 2.0 ise bir önceki versionu. Buna bakarak daha iyi olduğunu düşünebilirsiniz ki öyle, fakat 2.0 hala bolca ( hatta 3.0 dan daha fazla ) kullanılmakta. Bunun nedeni ise aslında 2.0 kullanan kişilerin 3.0 a alışamamış olması. Çünkü aralarında büyük farklar var.
Mesela 2.0 da, Butonlara, Frame lere actionscript kodu yazabilirken, şimdi sadece Frame e yazıyoruz. Bu yüzden ” Ya ben ekrandaki butona nasıl erişeceğim şimdi? ” gibi düşünceler doğuyor. Kolay arkadaşlar, korkmayın.
Derse Başlamadan Önce
Arkadaşlar derse başlamadan önce şunları belirtmek istiyorum.
Bu yazı normal anlatım yazısıdır.
Bu yazı Flash Actionscript kod yazısıdır.
Bu yazı konu başlığı yazısıdır.
İlk Uygulamamız =)
Flash ımızı açıp yeni bir dosya açalım kendimize. Dikkat edelim ki Actionscript2.0 flashı değil, 3.0 Flashı olsun yoksa kodlarımız çalışmaz !
İlk uygulamamızda, ekrana Merhaba Dünya yazdıracağız. Bu 0 dan yapıldığında zor gibi gelebilir fakat aşama aşama öğreneceğiz.
Flash dosyamızda Layerimizin ilk Frame ini seçip, Actions ı açalım. Actions ortalıklarda görünmüyorsa F9 tuşuna basarak çıkartabilirsiniz. Peki kodu nasıl yazacağız.
İlk aşama, Değişken atamayı öğrenelim. Aslında değişkenlerin birçok çeşidi olsa da biz ilk önce basit bir değişken öğrenelim.
var degiskenadi;
var, Flashta ilk başa konulduğunda değişken yaratmak istediğimizi belirtir. Yani değişken yaratacaksak ilk önce var yazıp, boşluk bırakacağız. Bundan sonra, yaratacağımız değişkene bir ad verelim, üstteki örneğimizde, degiskenadi adlı bir değişken yarattık. Şimdi değişkenlerin özelliklerine bakalım.
Flash ta, değişkenlerin adındaki farklılık varsa, değişkenler farklı değişkenlerdir. Yani ;
var degisken;
var DEGISKEN;
var DEGISken;
Ayrı ayrı, farklı değişkenlerdir, buna dikkat edelim.
Şimdiye kadar öğrendiğimiz, nasıl değişken yaratılacağıydı. Sizin kafanızı değişkenlerle iyice karıştırmadan, bir sonraki aşamaya geçelim.
Asıl Merhaba Dünya dosyamızda kod kısmı şimdilik şu kadar olmalı.
var merhabaDunya;
Şimdi merhabaDunya adlı değişkene değer atayalım.
Bu kod, değişkenimize “Merhaba Dünya!” değerini atadı.
var merhabaDunya = "Merhaba Dünya!";
Tırnakların içine koyduğumuz için, Flash bunu otomatikman yazı tipi olarak atadı. Önceden değişken tipleri demiştim. İşte bu tiplerden biri de, String yani Yazı tipi değişken. Daha sonra Flash ın kodları karıştırmaması için, biz merhabaDunya nın String tipi olduğunu önceden belirleyelim ki, sonradan çok fazla kodumuz olursa bu kod ne işe yarıyor demeyelim =)
var merhabaDunya:String = "Merhaba Dünya!";
Böylece, String tipinde ( artık Yazı demeyeceğim alışın =) ) bir değişkenimiz oldu. Şimdi bunu yazdıralım !
Flash’ın ekran dışında bir de Output denilen ekranda görünmeyip, oyun yapanların işine yarayacak bilgileri taramasına yarayan bir ekranı vardır. Bu komut Trace dir.
trace(OutputaYazdırılacakDeğer);
Oyun yapanların işine nasıl yarayacak diyebilirsiniz. Mesela ben bu trace kodunu, bir denememde boşluk tuşunun basıp basmadığını anlamak için kullanmıştım. Bastığında “Boşluk Basıyor.” basmadığında “Boşluk Basmıyor” yazdırıyordum. Şimdi Merhaba Dünya yı önce Outputa yazalım. İsterseniz kendinizi sınamak için önce kendiniz deneyin, sonra aşağıdaki koda bakıp doğru mu diye kendinizi test edin.
var merhabaDunya:String = "Merhaba Dünya!";
trace(merhabaDunya);
trace("Merhaba Dünya!");
Yukarıdaki kod, Merhaba Dünya yı Output a yazdırır. İlk Trace komutu ne yazdıracağını belirlemek için, önceden belirlediğimiz değişkeni kullanırken, ikincisi doğrudan Parantez içine yazdığımız yazıyı yazdırır. Dikkat edin, yazı olduğunu belli etmek için tırnak kullandık =)
Değişkenler sayesinde, aynı zamanda Flash ın özelliklerini de yaratabiliriz. Mesela doğrudan Stage denilen görünen kısımda bir yazı yeri yaratabiliriz değişken sayesinde. Bu Flash’ın özelliklerine Class denir. Classları kendimiz de yaratacağız ileride, fakat şimdilik Flash’ın hazır classlarından biri olan TextField ı kullanıcaz. Class yaratmanın temel şekli şudur ;
var degiskenadi:Class = new Class;
Bu yukarıdaki kod, degiskenadi adinda bir Class yaratır. Sonradan kullanılabilir. TextField ımızı yaptık. Şimdi bunu Stage e yani görünür flash yerine ekleme kodunu görelim.
var degiskenadi:Class = new Class;
addChild(degiskenadi);
addChild, parantez içindeki değeri arar, o değere bakar ve değer neye eşitse onu ekrana ekler. Fakat bunu x olarak 100 ve y olarak 100 noktasına atamak istiyoruz. O zaman şöyle yapacağız.
var degiskenadi:Class = new Class;
addChild(degiskenadi);
degiskenadi.x = 100;
degiskenadi.y = 100;
Dikkatinizi çektiyse, bir classın özellikleri vardır. Bunu, yukarıdaki örnekte degiskenadi değişkeninin Classının X ve Y özelliklerini kullanırken gördük. Bir değişken class ise, onun özelliklerine erişmek için değişkenden sonra bir nokta koyar ve özelliği yazarız. Sonra neyi istiyorsak ona eşitleriz. Şimdi son olarak Merhaba Dünya yazısını hem Output a, hem de Ekrana yazdıralım.
var merhabaDunya:String = "Merhaba Dünya!";
var yaziAlani:TextField = new TextField;
trace(merhabaDunya);
addChild(yaziAlani);
yaziAlani.text = merhabaDunya;
Her TextField ın tipi vardır. Mesela input, static ve dynamic. Input a birşeyler girebilir, Static e hiçbirşey girilemez ve ne değeri varsa öyle kalır, oynanılamaz, Dynamic in ise değerini herzaman değiştirebiliriz. Static in değeri değiştirilemeyeceği için kodla yapılamaz. Diğerlerini değiştirmek için;
yaziAlani.type = TextFieldType.INPUT;
yaziAlani2.type = TextFieldType.DYNAMIC;
Kullanılabilir.