May
3
2012

AS3 – Timeline Kontrolleri

1- Geliştirdiğimiz uygulamalarda nesnelerin belli bir kareye geldiklerinde durmalarını/hareket etmelerini, ya da animasyonumuzun bir butona tıklandığında başlatılmasını isteyebiliriz. Uygulamamız için oluşturduğumuz nesneleri istediğimiz gibi kontrol edemezsek ortaya çıkan sonuçtan memnun kalmamamız oldukça yüksek bir ihtimaldir.

Örneğin toplamda 150 frame’den oluşan bir animasyonumuz var ve 50. frame’e geldiğinde durmasını istiyorsak timeline üzerinde 50. frame’i seçip F6 ile Keyframe ekledikten sonra Actions paneline stop(); yazarsak animasyonumuz 50. frame’e geldiğinde duracaktır. Eğer tam tersi olsun yani hareket etmesini istersek stop(); yerine play(); yazmamız yeterli olacaktır. Bu işlemleri bir buton aracılığı ile yapmak istersek aşağıdaki kodlar işimizi görecektir.

baslat_btn.addEventListener(MouseEvent.CLICK, animasyonuBaslat);

function animasyonuBaslat(e:MouseEvent){

    play(); 

}

durdur_btn.addEventListener(MouseEvent.CLICK, animasyonuDurdur);

function animasyonuDurdur(e:MouseEvent){

    stop(); 

}

 2- Animasyonlarımızı nasıl başlatıp durdurabileceğimizi öğrendik. Eğer butona tıklandığında animasyonun olduğu frame’den değilde farklı bir frame’den başlamasını ya da farklı bir frame’e gidip durmasını istersek gotoAndPlay() ve gotoAndStop() metotlarını kullanabiliriz. kullanımları aynı play ve stop metodları gibidir. Hangi frame’e gidilmesi gerektiği de parantez içerisinde yazılır.

git_btn.addEventListener(MouseEvent.CLICK, gitVeBasla);

function gitVeBasla(e:MouseEvent){

gotoAndPlay(50);

}

dur_btn.addEventListener(MouseEvent.CLICK, gitVeDur);

function gitVeDur(e:MouseEvent){

gotoAndStop(25);

}

3- Animasyonumuzun butona her tıklandığında ya da animasyon içerisinde gerçekleşecek olaylara göre birer frame ileri ya da geri gitmesini istersek prevFrame(); ve nextFrame(); metotlarını kullanmamız gerekecektir. Genellikle fotoğraf galerilerinde çok kullandığım bir yöntemdir. Kullanımı aşağıdaki gibidir.

ileriGit_btn.addEventListener(MouseEvent.CLICK, birKareIleri);

function birKareIleri(e:MouseEvent){

nextFrame();

}

geriGit_btn.addEventListener(MouseEvent.CLICK, birKareGeri);

function gitVeDur(e:MouseEvent){

prevFrame();

}

4- Frame’ler ile ilgili olarak kullanacağımız son metot ise Frame Etiketleridir. Aynı sembollerde olduğu gibi frame’leride isimlendirebiliriz. Frame’lere etiket verebilmek için ilgili frame’i seçtikten sonra Properties panelinde Frame Label kutucuğunu kullanılır. Frame’lere etiketlendirdikten sonra ilgili karenin hemen yanına kırmızı bir bayrak belirecek ve sağ tarafında frame etiketi yazacaktır. Frame etiketleri genellikle gotoAndPlay() ve gotoAndStop() metodları ile kullanılırlar. Parantez içerisine frame etiketi girilir.

deneme_btn.addEventListener(MouseEvent.CLICK, etiketeGit);

function etiketeGit(e:MouseEvent){

gotoAndPlay("baslangic");

}

5- Yukarıdaki örneklerin tümünda animasyonlarımızı Ana Sahne (Scene) ‘ni Timeline’ı üzerinde gerçekleştirdiğimizde geçerli olacaktır. Eğer herhangi bir nesneye aynı şekilde müdahale etmek istersek yapmamız gereken tek şey metottan önce nesnenin ismini yazmaktır.

baslat_btn.addEventListener(MouseEvent.CLICK, baslat);

function baslat(e:MouseEvent){

deneme_mc.play();

}

durdur_btn.addEventListener(MouseEvent.CLICK, durdur);

function durdur(e:MouseEvent){

deneme_mc.stop();

}

ilerlet_btn.addEventListener(MouseEvent.CLICK, kareyeGit);

function kareyeGit(e:MouseEvent){

deneme_mc.gotoAndStop(12);

}
İyi Çalışmalar…

Son Yazılar

Yazar Hakkında: Ali KARATAŞ

Gazi Üniversitesi Bilgisayar Sistemleri Öğretmenliği 2012 Mezunu, Flash Animasyon, Dinamik web sitesi , Flash Eğitsel Oyun Tasarımı alanlarında kendini geliştirmiş. Yamaç paraşütü, Kickbox, Sualtı, Rafting, Dağcılık, İzcilik, Kayak Sporlarıyla ilgilenen, Kendini geliştirmeye her zaman açık Boğa Burcuna sahip bir kişi :)

2 Yorum+ Yorum Ekle

  • merhaba
    ben AS3 ve AS2 de timeline da Buton, yada nesneye bağlı olmaksızın. timeline 20 ye gelince başa dön yada 20 ye gelince 45e git demek istiyorum nasıl yaparım

    • Merhaba,

      AS2 yada AS3 te 20.frame’e “F6” tuşuna basarak KeyFrame oluştur. “F9” ile kod satırını açarak

      gotoAndPlay(1); yada gotoAndPlay(45);

      yazarsan o frame’e gelince kodu görür yönlendirdiğin frame’e gider.

Yorumlar