Flashta bulunan (types) türlerden (Bitmap,Shape, Buton..vs) biri de Movieclip'lerdir. Olaya bir animasyoncu gözüyle baktigimizda ise Movieclip'ler bizim icin en faydali türdür. Cünkü Movieclipler herhangi bir türden elemani icerebilir, kendilerine has zaman panelleri ( timeline ) vardir. Ayrica calisma esnasinda kodlar yardimiyla direk kütüphaneden ekrana cagirilabilirler.
Su an bu yaziyi okudugunuza göre eminim daha önceden en az 1 kere de olsa animasyonlarinizda Movieclip kullanmissinizdir.Herneyse, simdi Moviecliplerin birkac önemli özelligiyle devam edelim.
Movieclip sembol ve durumlari:
Ilk olarak herhangi bir MovieClipten bahsettigimizde muhtemelen iki ayri nesneden bahsediyoruzdur. Bunlar:
Kütüphanedeki bir Movieclip teknik olarak sembol diye adlandirilir, sahnedeki haline ise orijinal adiyla "instance", yani tam türkcesini kullanirsak "durum" diyebiliriz. Kütüphanede bulunan sembol bir sablon gibidir. Her movieclip icin yalnizca bir sembol bulunur. Sahnede bulunan ayni movieclip'in "durum"'lari ise kopya olarak görev görürler, ve temel olarak kütüphanedeki sembolleriyle bire bir aynidirlar. Bizim kodlarimizda bu kopyalara hitap edebilmemiz icin ise öncelikle bu kopyaya bir "durum adi" vererek, verdigimiz bu isimle cagirmamiz gerekir. Basit bir örnekle aciklamak gerekirse, bir salonda bulunan 30 kisinin icine girip "insan olan elini kaldirsin" demek yerine "ismi ahmet olan elini kaldirsin" demek cok daha mantikli olacaktir.
Movieclip olusturmak:
Movieclipler temel olarak iki sekilde olusturulabilirler. Bu yöntemlerden biri, sahnede bulunan herhangi bir sekli secili duruma getirerek kisaca F8 tusuna basmak, digeri ise Ctrl+F8 tuslarina basarak acilan ekranda sembolü olusturmaktir.
Movieclip'leri cogaltmak:
Sahneye bir Movieclip koydugunuzda duplicateMovieClip komutuyla bunu cogaltmaniz mümkündür. Fakat kopyalama yaptiginizda yeni olusturulan "durum", kopyalandigi "durum" ile ayni özelliklere sahip olacaktir, hatta ana durum'un icinde onClipEvent bloguyla girilmis kodlar varsa, kopyalarin icinde de bu kodlar olacaktir. Bu yüzden duplicateMovieClip yöntemi herzaman isimize yaramayabilir.
Sahneye eklemek (attachMovie):
Sahneye birden fazla durum eklemek icin genel olarak kullanilan komut attachMovie komutudur. Bu sekilde kütüphanedeki sembole ait tamamen yeni bir kopya olusturulmus ve sahnenin belirlenen bir bölgesine yerlestirilmis olur. Bu yöntemle cogaltilan movieclipler bize daha fazla kontrol imkani saglar, örnegin nerede, ne zaman görünecekleri veya kaybolacaklari tamamen bizim kontrolümüz altindadir.
attachMovie komutunu kullanabilmemiz icin ilk önce kütüphanedeki sembolümüzün "export for actionscript" yani kodlarla disari aktarilabilmesi icin gerekli özelligi aktif hale getirip ilgili ismi vermemiz gerekir. ilgili pencere asagidaki resimde görülmektedir.
Hemen basit bir örnekle baslayalim: bos bir sahnede herhangi bir MovieClip olusturun, kütüphanedeki sembol ismine sag tiklayarak "linkage" yani kisayol kismindan export for actionscript secenegini aktif hale getirin. simdilik bu ayarlar yeterli olacaktir.
sahnenin bos olduguna emin olun, ve 1. Frame'i secip Actions panelini acin, asagidaki kodu kendinize göre uyarlayip yazin ve filmi calistirin.
attachMovie("top","top",0);
top._x=100;
top._y=100;
bu örnekte top seklinde bir MovieClip olusturup linkage bölümündeki adina top dedim. Filmi calistirdigimda x ve y koordinatlari 100 olan bir top elde etmis oldum.
attachMovie komutundaki parametreler sirasiyla linkage adi, sahneye yerlestiginde verilecek durum adi, ve sahnedeki hangi katmana (derinlige) yerlestirilecegidir.
Bu noktada bilmemiz gerek önemli sey, dinamik olarak (yani kodlarla) sahneye yerlestirilen her nesnenin bir durum adi ve derinligi olmasi gerektigidir. Bir baska örnekle devam edelim, ve neler yapabilecegimizi görelim..
yukarida yazmis oldugumuz kodlari asagidakilerle degistirelim:
for(i=0;i<100;i++){
var top:MovieClip=attachMovie("top","top"+i,i);
top._x=Math.random()*Stage.width;
top._y=Math.random()*Stage.height;
top._xscale=top._yscale=Math.random()*80+20;
}
Filmi calistirdiginizda hemen hemen asagidakine benzer bir ekran göreceksiniz:
Hazirladigimiz örnek bir for döngüsüyle kütüphanedeki toptan 100 adet cogaltip sahneye ekliyor, bu toplarin herbiri icin rastgele yer, derinlik ve boyut belirliyor, ayni zamanda toplari sirasiyla top0, top1, top2...top99 seklinde adlandiriyor.
Bos Movieclip olusturma (createEmptyMovieClip):
Bu komutla olusturulan Movieclip'lerin aslinda bir sembole dahi ihtiyaclari yok. Hatta gercek manada bir MovieClip bile degiller diyebiliriz. Ilk önce komutun nasil kullanildigini görelim:
createEmptyMovieClip("tutucu",derinlik);
attachMovie komutunda oldugu gibi bir durum adi ve derinlik verdik, dikkat etmeniz gereken konu, bu komutta linkage adi kullanilmamasidir. Ilk bakista bos movieclipler gereksiz gibi görünse de ( ne de olsa icleri bos :) ) aslinda bircok yerde ise yararlar, örnegin:
Bir sonraki derste trigonometriye giris yapacagiz, ve yukarida gördügünüz toplarin biraz basini döndürecegiz :) takip ettiginiz icin tesekkürler..