Tweenler bizim interaktif projelerde olmassa olmaz frameworklerdir. Hangi interaktif yazılım dilini kullanırsanız kullanın tween ile işlem yapmanız gerekecektir. Bu yüzden tween seçimlerini doğru şekilde kullanmanız performans açısından artı bir yol kazandıracaktır. Ben bu yazıda Greensock TweenLite frameworkünün onComplete yerin delayedCall metodunun kullanımından bahsedeceğim. Tabii ki ikisininde farklı kullanım yerleri ve amaçları var fakat bu yöntem benim çok işime yaradı.
onComplete : Bu parametre bizim tweenimizin bittikten hemen sonra devreye girecek olan metodumuz. Yani biz bir animasyonu sağdan sola hareket ettirdik hareketlerin bittikten sonra bu objemizi easeli bir şekilde alphasını kısmak ve yok etmek istiyoruz bunun için onComplete kullanmamız gerekiyor.
onComplete : Function(); onComplete bir adet fonksiyon kabul etmektedir. İsteğe göre onCompleteParams: [] ile Array şeklinde verileri gönderebiliriz. Unutmamak gerekirki bu sadece parametredir. Yani biz onComplete yapısını kullanabilmek için şu şekilde bir Tween uygulamamız gerekecektir.
TweenLite.to(obje_mc,1,{ x: 200, onComplete: animasyonBitti_f });
function animasyonBitti_f():void
{
trace(“animasyon bitti”);
}
Bu şekilde animasyonumuzun işlemleri bittikten sonra yapması gereken şeyleri onComplete içinde toplayabiliriz.
delayedCall : Bu metodu javascript ve actionScriptteki setInterval() gibi düşünebilirsiniz. setInterval metodu belirttiğimiz bir süre içerisinde belirlediğimiz bir fonksiyonu çalıştırır. delayedCallın setInterval den farkıda içerisinde obje taşımasıdır. Kullanımı ise şu şekildedir.
TweenLite.delayedCall(1.5, removeAll_f, [mc]);
function removeAll_f(gelenObje:MovieClip):void
{
//işlemler burada gerçekleşiyor 1.5 saniye sonra.
trace(“işlemleri gerçekleştir….”);
}
Buradaki mantık ise 1.5 saniye geçtikten sonra belirlediğimiz metodu çalıştırması ve içerisinde bir obje belirtmesidir. Bir Örnek yapmak gerekirse.
TweenMax.killTweensOf(); Özelliği : Bu özellik bizim hedef nesnemizdeki istediğimiz herhangi bir özelliğin silinmesini sağlıyor. Örneğin sahnede buton_mc adında bir movieclip olduğunu düşünürsek bu buton_mc ye de tweenmax ile animasyon “x” ve “alpha” değerleriyle bir animasyon verdiğimizi düşünelim buradan biz “x” özelliğini silmek istiyoruz. O zaman killTweensOf işimize yarayabilir.
TweenLite.killTweensOf(buton_mc, false, {alpha:false, x:true});
Örnek için gerekli objeler
Sahnede 5 tane kare olsun instance name önemli değil sadece 5 tane movieclip olsun. Daha sonra kod kısmına geçerek şu kodları yazın.
import com.greensock.TweenLite;
import flash.display.MovieClip;
import com.greensock.easing.*;
var mc:MovieClip = new MovieClip();
for(var i:Number=0; i<numChildren; i++)
{
mc = MovieClip(getChildAt(i));
TweenLite.from(mc,.8,{ alpha: 0, delay: i*0.05, ease: Expo.easeOut});
TweenLite.delayedCall(1.5, removeAll_f, [mc]);
}
function removeAll_f($mc):void
{
TweenLite.to($mc,.5,{ scaleX: 0 , ease: Expo.easeOut});
}
Bu animasyonda ilk olarak TweenLite.from() ile 0 – 1 arası bir alpha sağlanacak. Daha sonr aradan 1.5 saniye geçikten sonra sahnedeki mc ler scaleX ile birbirini delaylı bir şekilde kapanacak.