ActionScript3 Tween Class - Elastik hareket & hareket noktaları kodlamak

Posted on Cuma, Mart 7th, 2008 at 11:47

Not: (” Tırnak) işaretlerini kodlamada yeniden yazmanız gerekmektedir. 

İlk olarak ana sahneye bir kutucuk çizin. Daha sonra bu kutucuğu seçerek F8 tuşuna basın. Gelen seçenekler içinden Film klibini işaretleyin ve isim yazarak onaylayın. Şimdi Film klibine dönüşmüş olan kutucuğu seçin ve Properties panelini açın. (Ctrl + F3) Durum adını(Instance name) hareketli_mc olarak belirleyin.

F9 ile ActionScript 3 kod panelini açıyoruz;

///////////// Kodlamalar buradan itibaren başlamıştır.

//Grekli Tween sınıflarını dışarıdan alıyoruz
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
/* yoyo(); ‘yu çalıştırmak için gerekli. Yani animasyona süreklilik kazandırmak için.. */

//Bir isim belirleyip Tween türünde değişken tanımlıyoruz

var baslat1Tween:Tween;

baslat1Tween = new Tween(hareketli_mc,”x”,Elastic.easeOut,0,(stage.stageWidth - hareketli_mc.width),2,true);

/* Burada hareketi tanımlıyoruz

[hareketli_mc](Film klibi durum adı(instance name),

[x](hareket biçimi; x ekseni değerlerini işle; width yada alpha da olabilirdi.. yani değerini etkileyebileceğiniz efekt türü..),

[Elastic.easeOut]( ve / In - İvmeler; Elastik. Eğer elastik animasyonu istemiyorsanız None.easeNone),

[0] (Harekete başlayacağı durumu; atadığımız özelliğe göre; width, alpha vs.. 0 pixel; en soldan başla),

[(stage.stageWidth - hareketli_mc.width](Hareketi bitireceği durum. Biz burada ekranın sağından hareketli_mc ‘nin enini çıkardık. Böylece film klibini en kenarada dayadık),

[2](hız; büyüdükçe katlanarak yavaşlar)

[true](Saniye olarak kulanımı açar. True olduğu ve 2 yazdığımız zaman hareketini 2 saniye içinde tamamlar.)

*/

//Yoyo fonksiyonu için yeni bir dinleyici tanımlamalıyız.
//Dinle.. hareket olayını, hareketin bitmesi olayı, film_bitti fonksiyonunu uygula

baslat1Tween.addEventListener(TweenEvent.MOTION_FINISH, film_bitti);

//Film_bitti fonksiyonunu tanımlıyoruz
function film_bitti(event:TweenEvent):void {
 //Baslat1Tween hareketi her bittiğinde yoyo ile hareketi yeniliyoruz.
 baslat1Tween.yoyo();
}

/* www.mehmetoglu.org | FlashCS3 & As3 Blog..

Çalışan flash animasyonu: www.mehmetoglu.org/as3_dersler/as3_tween_class_salinma.swf

Çalışan proje dosyası: www.mehmetoglu.org/as3_dersler/as3_tween_class_salinma.fla

*/

İstersen yorum yazabilirsin, ya da kendi sitenden "geridönüş" (trackback) ekleyebilirsin.

6 Yorum yazılmış

 1 
ajnglagla:

birazdaha ayrıntılı açıklayabilir misiniz?

mesela import fl.transitions.Tween; //her harekette zorunlumudur bu sınıfı eklemek
import fl.transitions.easing.*; //yumuşak hareketlerde sanırım

işimize yarayacak birkaç sınıfı daha tanıtabilirmisiniz?

Temmuz 16th, 2008 at 09:43
 2 

merhaba.
tween sınıfı hakkında birkaç önemli sırra değinmeye çalışmıştım. Sınıf derken eğer tüm sınıfları kastediyorsanız çok sayıda sınıf olduğundan burada teker teker incelememiz mümkün değil malesef. Ama ileride videolu ders hazırlamayı düşünüyorum. kendimide biraz geliştirmiş olacağım o zaman..

Zaten iki sınıfı tam açıklamamıştım onuda siz açıklamışsınız teşekkürler… :) Ama o sınıflar hareket sınıfları ve en başta belirttiğim gibi gerekli sınıflardır ve onları import ederiz (dışarıdan alırız) Daha sonra as içine yazdığımız kodlarda herşeyi tek tek elimizle yazmamız gerekmez.. siz sadece “ease” dersiniz o yazılmıi ivme olaylarını uygular..

Engin yöyenin Ağustos başında çıkacak olan action script kitabındada sınıflardan bahsedilecek.. mutlaka okumanızı tavsiye ederim

sevgilerle..

Temmuz 19th, 2008 at 23:17

Merhaba,
Öncelikle Flash CS3′ün kendi tween class’larının çok sorunlu olduğunu belirtmeliyim. Daha önce yaptığım bir siteyi tekrar baştan yapmak zorunda kaldım.
http://code.google.com/p/tweener/
Caurina sınıflarını tavsiye ederim.
kolaylıklar
selcukartut

Eylül 4th, 2008 at 21:15
 4 

Siz öyle diyorsanız bir bildiğiniz vardır elbet ama doğru bir biçimde kullanıldığında bence sorunsuz ve çok rahatlar..

Eylül 4th, 2008 at 21:54
 5 
Adem:

hocam ellerıne saglık uzun samandır karsıma cıkıyor yazdıgın makaleler ve verdıgın bılgıler oldukca iyi ve akılda kalıcı anlatmıssın yüregine sağlık :) ama bu actıondakı nesne yonelimli programlama mantıgı nasıl tam anlamadım sanki birseyler bıraz farklı gıbı geldı:) kolay gelsın iyi calısmalar.

Ağustos 22nd, 2009 at 11:31
 6 

teşekkür ederim

aslınd package mantığını anlamak için tamamen fonksiyonları anlamak lazım. ondan sonrası zaten package ye gerekte kalmaz as dosyalarına

ben as dosyalarını kullanmıyorum çünkü bağımsız dosyalarla uğraştırıyor. normal olarak flash içindede nesne tabanlı program yazabilirsin. mesela fonksiyona değer göndererek aynı standarlarda 20 tane kutu çizebilir yada herbirininin daha farklı boylarda olmasını isteyebilirsin.

tüm bnu konuları bir olarak incelersek bence hepsi fonksiyona değer göndermek başta omlak üzere ikinci sırada fonksiyondan değer döndürmek var. tüm diller aynıdır. bu konuları çalışamnı dilerim.

Ağustos 22nd, 2009 at 14:07

Yazmayan ölsün..

Adın
e-Postan (Yayımlarsam ne olim)
Siten
Gençliğini neyle değerlendirdin?
Yorumun: