| Ana Sayfa | Haberler | Duyurular | Güncel Yazılımlar | Eğitim CD | Eğitim Kitapları | Programlar | Adobe Forum |

 

Değişkenler ve Değerler


Bu bölümde değişkenler(Variable) ve veri tipleri(Value), stringler ve ifadeler(Expression),harici değişkenlerin yüklenmesi, değişkenleri bitiştirmek ve değişkenleri koşullu deyimlerle(İf, Else vs.) kullanma konularından bahsedilecektir.

Değişkenler bir bilgi içerir ve bu bilgi daha sonra kullanılan komutlarla değerlendirilirler. Bir değişken içine ilk kez bir bilgi koyma işlemine initialization(başlatma) adı verilir. Değişkenlere değer eklemenin yolu setVariable komutunu kullanmaktır. Atanacak değerlere veri tipleri adı verilir,genel olarak 4 başlık altında incelenir:

1- Sayı: Sayısal bir değerdir. degisken1=30 gibi.

2- String: Karakter, sayı ve semboller topluluğudur. degisken2="http://lazoid1.virtualave.net/lazoid" gibi. Stringler daima çift tırnak işaretleri arasında bulunur.

3- Boolean: True ve False veya 1 ve 0 şeklinde ifade edilirler. Koşullu deyimlerle sık kullanılırlar.

4- Nesne(Obje): Bir konstrüktör fonksiyonundan yaratılırlar. yeniRenk=newColor() yeniSes=newSound() gibi

Lokal bir değişken kullanmak istiyorsanız var ifadesini kullanmalısınız.Örneğin:

var degisken=20; Bu değişkenler kullanıldığı kod grubundan sonra silinirler.Yani bir kez kod grubunda kullanabilirsiniz.

Önemli kurallar:

1- Matematiksel ifadelerde bölme ve çarpma işlemleri daima çıkartma ve toplama işleminden önce yapılır.

4+2*8=20 dir. Önce değerlendirilmesini istediğiniz işlemler varsa parantez içine alın. (4+2)*8=48 sonucu elde edilir.

2- Diğer bir konu webde sık rastlayacağınız değer atamalarıdır. Burada kısaltmalar kullanılabilir. Örnek:

x=x+1 ile x++
x=x-1 ile x--
x+=5 ile x=x+5
x-=5 ile x=x-5
x/=5 ile x=x/5
x*=5 ile x=x*5
çiftleri aynı şeyi ifade eder.

3- Değişken ismi olarak scriptte kullanılan komut adlarını yazarsanız flash`ın kafası karışır ve hatalı sonuçlar verebilir. Şu kelimeleri kullanmayın:

break, contineu, function, return, delete, if, this, while, in, else, true, false, var, void,for......Mümkün olduğu kadar yapmak istediğinizi açıklayacak kelimeleri ASCII formatında olmak kaydı ile kullanın. yeniSes, yeniRenk gibi.

4- Bu madde oldukça önemlidir. Lütfen dikkatle okuyun. Bir değişkeni başlattığınızda belirli bir timeline`a sahip olurlar. Buna değişkenin kapsamı(scope) denilir. Şöyle bir benzetme yapalım. Değişkenlerin kapsamı onların evi gibidir. Evin dışına çıkamazlar. Yani değişkeni ana sahnenin timeline`ında başlatırsanız kapsamı ana sahne olur, bir film klibinde başlatılırsa kapsamı film klibi timeline`ı olur. Bu bölümler dışına çıkamadıklarından içerdikleri bilgiyi kullanmak için değişkenin hedef yolunu göstermeniz gerekir. Bu aynı film klibinin yolunugöstermedeki gibidir ve _root, _this, _parent terimlerini kullanmanızı gerektirir.

Ana sahneye yerleştirilmiş resim örnek isimli film klibi içinde degisken1 adıyla atanan bir değişkenimiz olduğunu varsayalım. Bu değişkendeki bilgiyi kullanmak için _root.resim.degisken1 ifadesini kullanmalıyız. Şayet değişken ana sahneye atanmışsa verilecek komut _root.degisken1 şeklinde olmalıdır.

5- Şayet hedef yol kullanmadan her alanda geçerli bir değişken kullanmak isterseniz _global ifadesine başvurmalısınız.Örneğin ana sahneye:

_global.deger=5;

yazmışsanız ister başka bir klip isterseniz başka bir sahne olsun _global.deger yazarak o değişkene ulaşabilirsiniz.Yani değişkeniniz evrensel bir konum alır ve her alandan sadece ismini yazarak ulaşma şansına sahip olabilirsiniz.Bu kod sadece Flash-MX ve Flash MX 2004 versiyonlarında kullanılabilir.

 

Uygulamalar:

Değişken Örnekleri-1


Örneğimizde sağdaki butona basıldığında yelkovanın 10 derece saat yönünde ilerlemesi, soldaki butona basıldığında 10 derece ters yöne hareket ettirilmesi planlanmıştır.

1- Flash`da yeni bir sayfa açalım. Sahneye saat şekli için bir şekil çizelim veya import edelim. Yeni bir film klibi açalım ve yelkovanı temsil eden bir şekil çizelim. Sahneye dönelim ve yelkovan klibimizi saat resminin tam ortasına yerleştirelim. Yelkovanın merkez noktasını araç kutusundan free transform aracını seçerek en alt kısma çekelim. Bu sayede yelkovanın hareketi ortadan değil yelkovanın alt ucundan yapılacaktır. Film klibimizi adlandıralım. (ok )

2- Ana timeline`da 1.kareyi seçerek rotasyon=0; Bu komutla rotasyonumuz sıfır değerinden başlayacak ve sonraki komutlarla onar onar artacak veya azalacaktır.

3- İki buton oluşturup sahneye yerleştirelim. Sağdaki butonu seçelim.on(release) olayına rotasyon + =10; değerini verelim.Bu değer rotasyon=rotasyon+10 ile aynıdır. Soldaki butona da aynı komutu verelim ve rotasyon - =10 yazalım. Şimdi butonlara basıldığında 10 ar derecelik rotasyonlar oluşacaktır.

4- Şimdi yelkovan şeklindeki film klibimizi seçelim.enterframe olayına setProperty komutunu ekleyelim. Property alanına _rotation`u yazalım. Target alanına this, value alanına değişkenimizin yolunu gösterelim.(_root.rotasyon)

onClipEvent (enterFrame) {
setProperty(this, _rotation, _root.rotasyon);
}

Butona basıldığında rotasyon değişkenin değeri 10 artacak veya azalacaktır. enterFrame işleminde kodlar saniyede 12 kez tetikleneceğinden rotasyon değişkenine ait yeni değeri algılayacak ve yelkovan 10 derece dönme gösterecektir.erini değişkenimizin değerine atadık.

Değişken Örnekleri-2


Bu örneğimizde toplama oparatörü ile stringleri birleştirmeyi ve kopya film komutlarının hareketini durdurmayı göreceğiz.

Uygulama

1- Bir film klibi oluşturun ve sahneye yerleştirin. Properties panelinde adlandırın.(fare)

2- Bir buton oluşturun ve sahneye yerleştirin.

3- Ana timeline`da 1.kareyi seçerek sayac=1; değişkenini oluşturun.

4- Butonu seçin. on(release) olayına bir değişken ekleyeceğiz. Buradaki amaç kopyalanacak fare klibinin kopya adlarını oluşturmaktır.yeni_isim="fare"+_root.sayac; komutunu girin.sayac değişkeninin değeri 1 olduğuna göre ilk kopya filmin adı ortaya çıkar( fare19.Sayac değişkeninin değeri daha alttaki komutlarla artırılacak ve kopya klibin adı fare1, fare2...şeklinde oluşacaktır. Şimdi DuplicateMovieClip komutunu ekleyin. Target alanına film klibinizin adını girin.(fare). NewName alanına az evvel oluşturduğumuz yeni_isim değişkeninizin adını girin. Depth alanına değişkeninizin adı olan sayac adını yazın. Sayac değeri daha sonra artırılacağından kopya kliplerin derinlik seviyeside değişecek ve kliplerin birbirinin yerini alması önlenecektir.

5- setPropery komutunu girin. Property alanına _x koordinatını girin. Target alanına kopya klibin adının atandığı değişkeni (yeni_isim)yazın. Value alanına değişkeninizin adını sonra * sonra da 30 yazın. Value alanınada sayac değişkenin değeri 30 ile çarpılarak kopyalana klibin yeni x koordinatı bulunur ve kopya burada oluşturulur.Sayac değeri her defasında arttığından kopya kliplerin üst üste gelme riski önlenmiş olur.

6-this[yeni_isim].stop(); komutunu verin.burada this yeni_isim`in taşıdığı değerin bir klip olarak kabul edilmesini sağlar.İlk tıklamada bu dizin fare1.stop(); anlamına gelir ve kopyalanan ilk klibin oynaması durdurulur.Her tıklamada bu değer değiştiğinden tüm kopya kliplerin oynatılması stoplanmış olur.Bu dizini sildiğinizde tüm kopya klipler oynamaya devam edeceklerdir.

7- Bu komutlarla hala tek kopya yapılır. Şimdi bunu çoğaltalım. sayac++; yazalım Bu sayac=sayac+1; ile aynı anlamdadır ve her tıklamada sayac değeri artacağındanbirden fazla kopyalamaya izin alınmış olur.

on (release) {
yeni_isim="fare"+_root.sayac;
duplicateMovieClip ("fare",yeni_isim,_root.sayac);
setProperty (yeni_isim,_x, _root.sayac*30);
this[yeni_isim].stop();
_root.sayac++;
}

8- Şimdi filmi test edin. Her tıklama ile yeni bir klip kopyası oluşturulacak, fakat bu kopyalar hareket etmeyecektir. Şimdi ana sahnedeki butonu seçin. Actionscript panelini açın ve buradaki this[yeni_isim].stop(); komutu silin. Tekrar CTRL+F12 ye basarak filminizi test edin. Tüm kopyaların hareket ettiğini göreceksiniz.
Kaynak: FlashDersleri.COM

Coyright©2007 BilgisayarDershanesi.COM