nayzuko.com || animation n web tutorial

Menu dengan Tween Easing

Email Print PDF

Tween easing merupakan class built in yang muncul sejak Flash MX namun tidak didokumentasikan. Fitur sesungguhnya sangat berguna untuk membuat animasi menjadi lebih mudah. Tutorial ini mencontohkan membuat menu animasi dengan teknik Tween easing dan blur. Flash 8 sudah mempunyai fitur filter blur, namun filter ini harus dipakai dengan frame by frame di timeline. Ini teknik tween blur dengan  actionscript.

 

Alternative content

Get Adobe Flash player



Pada prinsipnya, menu-menu di atas dianimasi dengan teknik tween easing bertingkat, plus tween blur.

Ada beberapa tingkat tween easing.

easing 1
Menu tutorial muncul stlh preloading, kemudian stickman kanan kiri muncul

easing 2
ketika easing1 selesai, lalu menu enter dan info muncul.

easing 3
semua menu hilang ketika klik menu "enter"

easing 4
setelah menu hilang akan muncul menu utama dengan submenu...

dst...

Dalam actionscript, easing bertingkat seperti itu diterjemahkan spt ini

fungsi easing 1
... menu totorial muncul dari atas dg blur dg tween
... stickman muncul dari kiri dan kanan dg tween
... ketika fungsi easing 1 selesai
......jalankan munculkan menu enter dg tween (easing 2)

fungsi easing 2
... menu enter dan info muncul dg tween

fungsi klik menu enter
... jalankan fungsi tiga

fungsi easing 3
... hilangkan semua menu dg tween
........ ketika semua menu hilang, munculkan menu utama dg submenu (easing 4)

fungsi easing 4
... munculkan menu dan submeny dg tween

Tween dan easing adalah class yg built in di flash mx
kita harus mengimpornya

import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.filters.BlurFilter;


untuk menggunakan tween kita memakai actionscript seperti ini.
Nama-nama variable dibuat unik agar tdk konflik
var teksTutorialy:Tween = new Tween(mt, "_y", Regular.easeOut, -40, 60, 16, false);

itu menggerakkan mc bernama "mt" pada properti "x" dg tipe easing "Regular" dimulai pada x =-40 dan diakhiri pada x=60 sebanyak 16 frame (time duration is false)
Tween alpha seperti itu juga. Berikut tween dari alpha "0" (invisible) ke alpha "100"
var teksTutorialxalpha:Tween = new Tween(mt, "_alpha", Regular.easeOut, 0, 100, 16, false);

Bagaimana dengan blur?
Ini tween blur x 50 ke 0.
var teksTutorialxBlur:Tween = new Tween(teksBlur, "blurX", Strong.easeOut, 50, 0, 16, false);

Kita sebaiknya menggunakan tween dalam fungsi agar mudah dipakai ulang.

Cara membuat fungsinya spt ini:

function easingsatu() {
//Teks tutorial easing & blur
var teksTutorialy:Tween = new Tween(mt, "_y", Regular.easeOut, -40, 60, 16, false);
var teksTutorialxalpha:Tween = new Tween(mt, "_alpha", Regular.easeOut, 0, 100, 16, false);
var teksTutorialxBlur:Tween = new Tween(teksBlur, "blurX", Strong.easeOut, 50, 0, 16, false);
//Stickman easing
var stik1:Tween = new Tween(stik1, "_x", Back.easeOut, -80, 70, 16, false);
var stik2:Tween = new Tween(stik2, "_x", Back.easeOut, 560, 440, 16, false);
}


Seperti skema di atas, kita harus menjalankan easing2 saat easing1 selesai. Gunakan
onMotionFinished = function(), sehingga actionscriptnya menjadi:
function easingsatu() {
//Teks tutorial easing & blur
var teksTutorialy:Tween = new Tween(mt, "_y", Regular.easeOut, -40, 60, 18, false);
var teksTutorialxalpha:Tween = new Tween(mt, "_alpha", Regular.easeOut, 0, 100, 16, false);
var teksTutorialxBlur:Tween = new Tween(teksBlur, "blurX", Strong.easeOut, 50, 0, 16, false);
//Stickman easing
var stik1:Tween = new Tween(stik1, "_x", Back.easeOut, -80, 70, 16, false);
var stik2:Tween = new Tween(stik2, "_x", Back.easeOut, 560, 440, 16, false);

//saat easing 1 selesai jalankan easing dua
teksTutorialy.onMotionFinished = function() {
//Info easing
easingdua()
mt._alpha=100;
}
}


mt._alpha=100 itu untuk membuat menu yg awalnya tdk kelihatan, menjadi kelihatan di akhir tween.

Khusus untuk tween blur, kita perlu membuatnya blur hanya saat bergerak dan membuatnya tidak blur ketika tidak bergerak.
Untuk itu kita bisa gunakan onMotionChanged = function().

Khusus untuk tween blur, kita perlu membuatnya blur hanya saat bergerak dan membuatnya tidak blur ketika tidak bergerak.
Untuk itu kita bisa gunakan onMotionChanged = function()
sehingga actionscriptnya menjadi:
function easingsatu() {
//Teks tutorial easing & blur
var teksTutorialy:Tween = new Tween(mt, "_y", Regular.easeOut, -40, 60, 18, false);
var teksTutorialxalpha:Tween = new Tween(mt, "_alpha", Regular.easeOut, 0, 100, 16, false);
var teksTutorialxBlur:Tween = new Tween(teksBlur, "blurX", Strong.easeOut, 50, 0, 16, false);
//Stickman easing
var stik1:Tween = new Tween(stik1, "_x", Back.easeOut, -80, 70, 16, false);
var stik2:Tween = new Tween(stik2, "_x", Back.easeOut, 560, 440, 16, false);

//kembalikan ke no blur
teksTutorialxBlur.onMotionChanged = function() {
mt.filters = [teksBlur];
};

//saat easing 1 selesai jalankan easing dua
teksTutorialy.onMotionFinished = function() {
//Info easing
easingdua()
mt._alpha=100;
}
}


apa itu "teksBlur"? Ini adalah variable akhir mc "mt".
var teksBlur:BlurFilter = new BlurFilter(0, 0, 3);

Artinya, no blur di X dan Y, serta quality=3

Coba ganti menjadi new BlurFilter(10, 10, 3);
akan kelihatan mc "mt" tetap sedikit blur saat easing selesai.

Silakan dikembangkan.


f8.pngDownload fla source