Anda di halaman 1dari 24

Modul

MACROMEDIA FLASH MX
II

OLEH :

ROBY SUSANTO

PSPTEI.Corp
PUSAT STUDI PENGEMBANGAN TEKNOLOGI
ELEKTRONIKA DAN INFORMASI TEKNIK ELEKTRO
UNIVERSITAS MERDEKA MALANG

Alamat : Gegung Fakultas Teknik Elektro – Arsitektur Lantai Dasar


Universitas Merdeka Malang
Telp : (0341) 568395 - 652 - *82 / 0819 7700 1197
e-mail : admin@kocenk.net
Home Page : www.kocenk.net

MALANG
2005
PENDAHULUAN

Seiring dengan perkembangannya e-mail bukan lagi merupakan sebuah tren


yang dapat dibanggakan. Akan tetapi kini gensi itu sudah bergeser. Mencantumkan
alamat situs pribadi di kartu nama adalah kebanggaan baru.
Sebelum memasuki materi Flash lanjutan ada baiknya kita mengulang materi
yang telah lalu. Saya akan mengigatkan bahwa flash mampu mengerjakan apapun karena
flash merupakan software yang portable. Dahulu kita membahas flash sebagai design web
sekaligus web design dan bagaimana cara meng up-load homepage yang telah kita
hasilkan agar dapat dilihat dan di kunjungi oleh orang lain guna kepentingan tertentu.
Kita akan mereview beberapa pertanyaan dasar mengapa kita perlu merancang /
membuat homepage yang tentunya anda sendiri yang dapat menjawabnya. Penulis
percaya bila anda mampu menjawab beberapa pertanyaan ini anda merupakan seorang
homepage yang baik.
1. untuk apa mempunyai homepage sendiri?
2. mengapa anda ingin membuat homepage?
3. siapa yang anda harapkan tertarik dengan homepage anda?
4. tipe homepage bagaimana yang anda inginkan?
5. mengenai apa isi homepage anda?
6. seperti apa tampilan homepage yang anda inginkan?
7. dimana anda ingin memasang homepage anda?
Semua pertanyaan tersebut dapat menuntun anda menjadi seorang web master.
Untuk kali ini kita akan membahas sebuah design menggunakan lebih banyak action scrip
sehingga aplikasi yang dihasilkan lebih pariatif dan interactive.
PENGEMBANGAN ANIMASI MENGGUNAKAN ACTION SCRIP

Complex preloader
Preloader merupakan sebuah loder yang sangat berguna dalam sebuah permainan flash
karena dengan menggunakan loader tersebut pengunjung / user tidak akan merasa bosan
dan beranjak dari flash yang telah kita buat.
Langkah membuat preloader.
• Buat sebuah permainan dalam library (movie clip) yang menggunakan 3 layer
• Buat tulisan LOADING pada layer 1
• Buat bar outline / kotak (bingkai loader) pada layer 2
• Buat bar movie clip pada layer 3
• Sekarang kembali ke scane
• Buatlah 3 layer pada scane dimana layer 1 diberi nama loader, layer 2 dengan
nama movie utama, layer 3 dengan nama action.
• Pada layer 3 di frame 1 dan 2 isikan action “stop”
• Pada layer 2 di frame 1 di kosongkan dan pada frame 2 di isi dengan apa yang
akan di tampilkan
• Pada layer 1 di frame 1 masukkan preloader yang telah kita buat dalam library,
berikan intruksi pada action scrip sebagai berikut
onClipEvent (enterFrame) {
loadedbytes=_root.getBytesLoaded();
totalbytes=_root.getBytesTotal();
if (loadedbytes>=totalbytes) {
_root.gotoAndPlay (2);
} else {
frame=Math.floor(loadedbytes/totalbytes*50);
this.gotoAndStop(frame);
}
}
• Cobalah lihat apa yang telah di hasilkan

Teks berputar
Cara membuat
• Buatlah text terserah anda misalnya percobaan 1
• Setelah itu jadikan text tersebut movie clip
• Masukkan baris instruksi berikut
onClipEvent (load) {
perubahan=5;
}
onClipEvent (enterFrame) {
this._rotation=this._rotation+perubahan;
}
• Cobalah
draggable mask
cara membuat :
• buatlah 2 layer pada layer 1 beri nama masked dan layer 2 mask
• pada layer 1 buatlah / masukkan gambar yang berupa movie clip sehingga
tersimpan dalam library
• pada layer 2 buatlah lingkaran atau sesuai selera jadikan movie clip agar
tersimpan pada library
• layer 2 pada movie clip tersebut masukkan baris intruksi berikut
onClipEvent(load) {
_root.myMasked.setMask(_root.myMask);
}
onClipEvent(mouseMove) {
startDrag(_root.myMask, true)
}
• cobalah (pada label masukkan tulisan myMask dan myMasked)

trails
cara membuat:
• buat library sebuah movie clip
• keluarkan library tersebut menjadi 3 frame
• pada frame 1 isikan perintah ini pada stage
startDrag(trail1, true);
• pada frame 2 isikan perintah ini pada stage
copy = copy+1;
if (copy>10) {
copy = 1;
}
duplicateMovieClip("trail1", "trail"+copy, copy);
• pada frame 3 isikan perintah ini pada stage
gotoAndPlay(2);
• selamat mencoba

Mengubah property relative


• Buat movie clip dengan nama “terserah”
• Letakkan movie clip tersebut pada scane layer 1 dan frame 1
• Masukkan baris intruksi berikut pada movie clip (Action)
onClipEvent (mouseMove) {
_root.bulat._xscale = (_root._xmouse/550)*100;
_root.bulat._yscale = (_root._ymouse/400)*100;
updateAfterEvent();
}
• Pada kolom properties isikan instant name dengan nama “terserah”
• Cobalah hasil karya anda
Mouse Tracker 2 var02
• Ambil / import gambar dari file ubah menjadi movie clip
• Buat movie clip kosong beri nama “terserah”
• Letakkan movie clip “terserah” pada scane layer 1 frame 1
• Masih pada layer 1 buatlah untuk tampilan text dengan format dynamic text dan
pada kolom variable isikan “position”
• Bila sudah isikan perintah pada movie clip terserah sebagai berikut:
onClipEvent (mouseMove) {
_root.Xposition = _root._xmouse;
_root.Yposition = _root._ymouse;

// Kode berikut akan men-merubah alpha


// tergantung pada lokasi kursor terhadap ukuran movie stage

_root.mbah._alpha=(_root._xmouse / 550) * 100;

updateAfterEvent();
}
• Buat layer baru / layer 2 masukkan gambar yang telah di import dalam library ke
layer 2 pada instant name isikan nama movie clip
• Cobalah jalankan….?!!!

Drag
• Buat sebuah object menggunakan movie clip misalnya kotak
• Buat tombol dengan mengcopy object tersebut buat ukurannya lebih besar dari
ukuran semula dan letakkan pada posisi HIT
• Buat layer baru pada movie clip yang telah kita buat dan letakkan tombol tersebut
• Berikan perintah pada tombol tersebut / letaknya pada layer 2 diatas
on (press) {
startDrag(this);
}
on (release) {
stopDrag();
}
• Coba lihat hasil anda

Drop Target
Drop target merupakan sebuah tambahan action scrip dari Drag sehingga kita hanya perlu
menambahkan gambar movie clip tong sampah pada scane layer 1 frame 1. dan
menambahkan action scrip seperti berikut ini:
on (press) {
startDrag(this);
}
on (release) {
stopDrag();
if (this._droptarget=="/tongsampah") {
this._visible=0;
} else {
setProperty(this, _x, 400);
setProperty(this, _y, 100);
}
}
Selamat mencoba ^_^!!!?

 Tugas buatlah puzel menggunakan teknik Drag dengan action scrip sebagai
berikut
on (press) {
startDrag (this);
this.swapDepths( 2 );
}
on (release) {
stopDrag ();
}
 Amati dan berikomentar

Custom cursor
• Buat movie clip yang ujungnya lancip / tajam
• Letakkan pada scane layer 1
• Masukkan baris intruksi berikut ini….
onClipEvent (load) {
Mouse.hide();
}
onClipEvent (mouseMove) {
_root.rocket._x = _root._xmouse;
_root.rocket._y = _root._ymouse;
updateAfterEvent();
}
• Jalankan

Area cursor
Ini hanya melanjutkan dari custom cursor, coba tambahkan layer pada scane letakkan di
bawah buat seperti contoh berikut:
pada cursor masukkan action scrip
berikut ini :
onClipEvent (load) {
Mouse.hide();
}
onClipEvent (mouseMove) {
Mouse.hide();
_root.rocket._x = _root._xmouse;
_root.rocket._y = _root._ymouse;
if ((_root._ymouse>0 && _root._ymouse<50) && (_root._xmouse>0 &&
_root._xmouse<550)) {
_root.rocket._xscale = 50;
_root.rocket._yscale = 50;
_root.rocket._rotation = 0;
_root.rocket._alpha = 100;
} else if ((_root._ymouse>50 && _root._ymouse<350) && (_root._xmouse>400
&& _root._xmouse<550)) {
_root.rocket._xscale = 100;
_root.rocket._yscale = 100;
_root.rocket._rotation = 0;
_root.rocket._alpha = 50;
} else if ((_root._ymouse>350 && _root._ymouse<400) && (_root._xmouse>0
&& _root._xmouse<550)) {
_root.rocket._xscale = 100;
_root.rocket._yscale = 100;
_root.rocket._rotation = 225;
_root.rocket._alpha = 100;
} else {
_root.rocket._xscale = 100;
_root.rocket._yscale = 100;
_root.rocket._rotation = 0;
_root.rocket._alpha = 100;
}
updateAfterEvent();
}

Permainan warna
• Buat leyer sebanyak 5 dengan nama “warna, outline, button, test, action”
• Buat outline menggunakan movie clip
• Buat movie clip untuk warna menggunakan outline
• Buat tombol dan letakkan pada layer button sebanyak 3 buah
• Bila sudah pada layer dengan nama action masukkan action scrip berikut
warnasofa = new Color(sofa); //menggunakan
variable
• Pada buton 1 berikan action scrip berikut
on (rollOver) {
_root.warnasofa.setRGB(0xFF0000);
}
• Pada buton 2 berikan action scrip berikut
on (rollOver) {
_root.warnasofa.setRGB( 0x00FF00 );
}
• Pada buton 1 berikan action scrip berikut
on (rollOver) {
_root.warnasofa.setRGB( 0xFFFF00 );
}
• Pada layer dengan nama warna lihat properties dan isikan instant name “sofa”
• Coba jalankan…?!!!!

Copy / stamp
Pada dasarnya teknik ini serupa dengan drag
• Buat lingkaran dengan tulisan di tengahnya jadikan movie clip
• Pada movie clip ini buat layer baru dengan membuat tombol pada posisi HIT
• Masukkan baris instruksi berikut ini
on (press) {
duplicateMovieClip(this,"stempel"+_root.jumlah,_root.jumlah);
_root.jumlah++;
startDrag(this);
}
on (release) {
stopDrag();
}
• Pada scane, frame 1 isikan action scrip berikut
jumlah = 1;
• Coba amati dan komentarin

Rotation ball secara Acak


Lngkah pembuatan:
 Buka library
 Buat movie clip beberapa bola “bulat” dengan menggunakan warna berbeda
 Buat layer baru pada frame 1 berikan instruksi stop
 Kali ini buat movie clip baru (dalam library)
 Ambil movie clip “bulat” dari library
 Gunakan create motion tween. Pada frame 40 insert keyframe
 Klik kanan layer1 gunakan add motioan guide
 Buat lingkaran dan susunlah “bulat” sehingga dapat berputar mengikuti lingkaran
 Pada “bulat” frame1 instant name pada properties isikan dengan nama “warna”
 Keluarkan movie clip yang baru anda buat letakkan pada scane
 Masukkan baris intruksi berikut ini
onClipEvent (load) {
startframe=random(29)+1;
randomscale=random(80)+20;
this._xscale=randomscale;
this._yscale=randomscale;
this.gotoAndPlay(startframe);
}
 Pada instant name berikan nama putar
 Buat layer baru masukkan baris intruksi berikut ini
for (i=0; i<40; i++) {
duplicateMovieClip(_root.ballbase, "bulat"+i, i);
_root["bulat"+i]._x=200+random(100);
_root["bulat"+i]._y=random(200)+100;
}
_root.putar._visible=0;
warna = new Color ();
stop();
 Kembali pada layer1 buat tombol dan letakkan intruksi berikut
on (release) {
for (i=0; i<40; i++) {
randomwarna = random(15)+1;
_root["bulat"+i].warna.gotoAndPlay(randomwarna);
}
}
 Selamat mencoba

Replay Object
 Buat movie clip “bulat” dalam library
 Tambahkan layer buat tombol pada layer tersebut dengan posisi HIT
 Berikan instruksi berikut pada object
on (press) {
startDrag(this);
}
on (release) {
stopDrag();
}
 Keluarkan dan berikan insteruksi berikut
onClipEvent (load) {
captureX=new Array();
captureY=new Array();
}
onClipEvent(mouseDown) {
captureX.length=0;
captureY.length=0;
mode="record";
}
onClipEvent(mouseUp) {
mode="play";
counter=0;
}
onClipEvent(enterFrame) {
if (mode=="record") {
captureX.push(this._x);
captureY.push(this._y);
}

if (mode=="play") {
this._x=captureX[counter];
this._y=captureY[counter];
counter=counter+1;
}
updateAfterEvent();
}

 Selamat mencoba etch jangan lupa instant name diisi ^_^!!!?

Konversi suhu
 Buat 2 buah layer
 Pada layer1 isi tombol dan 2 text text 1 = celcius dan text 2 = Fahrenheit
 Pada layer 2 buat 2 buah text dengan input text masing-masing var di isi
 Pada tombol isikan baris intruksi berikut
on (release) {
fahrenheit=9/5*celcius+32;
}
 Pada layer 2 isikan instruksi berikut
celcius="";
fahrenheit="";
stop();
 Selamat mencoba

Membuat password
 Buat layer secukupnya untuk text, tombol, action, input text, dan dynamic text,
juga hal
 Pada layer text buat tulisan masukkan nama anda dan password disini , login
 Pada layer tombol letakkan tombol dan berikan instruksi berikut
on (release) {
if (password == "abcd") {
nextFrame();
} else {
warning = "Hi, "+nama+" password Anda salah, silakan ulangi
lagi";
}
}
 Pada layer action berikan instruksi stop baik frame1 maupun frame2
 Pada input text var isikan dengan nama / posisi sigle begitu juga password
 Pada layer dynamic. Var isi “warning”
 Selamat mencoba analisa dan cari kelemahannya.

Kalkulator
 Buat 3 layer dengan nama action, display, tombol
 Pada layer action masukkan baris intruksi berikut ini
 Pada layer tombol buat layout untuk kalkulator dan letakkan tombol
 Pada layer display isikan dengan text berbasis dynamic text dengan var display
 Kembali pada tombol akan di bahas fungsi tombol kalkulator yaitu:
 Pada tombol C digunakan sebagai reset. Instruksinya adalah
on (release) {
display="";
operation="no";
}
 Pada tombol + digunakan untuk penjumlahan instruksinya adalah
on (release) {
if (operation=="no") {
display=display+"+";
operation="tambah";
}
}
 Pada tombol / digunakan untuk penjumlahan instruksinya adalah
on (release) {
if (operation=="no") {
display=display+"/";
operation="bagi";
}
}
 Pada tombol X digunakan untuk penjumlahan instruksinya adalah
on (release) {
if (operation=="no") {
display=display+"*";
operation="kali";
}
}
 Pada tombol (-) digunakan untuk penjumlahan instruksinya adalah
on (release) {
if (operation=="no") {
display=display+"-";
operation="kurang";
}
}
 Pada tombol (. )digunakan untuk penjumlahan instruksinya adalah
on (release) {
display=display+".";
}
 Pada tombol angka digunakan untuk penomoran instruksinya adalah
on (release) {
display=display+"0 s/d 9";
}
 Pada tombol (=) digunakan untuk melihat hasil instruksinya adalah
on (release) {
if (operation=="tambah") {
myArray=display.split("+");
number1=Number(myArray[0]);
number2=Number(myArray[1]);
total=number1+number2;
display=total;
operation="no";
}
if (operation=="kurang") {
myArray=display.split("-");
number1=Number(myArray[0]);
number2=Number(myArray[1]);
total=number1-number2;
display=total;
operation="no";
}
if (operation=="kali") {
myArray=display.split("*");
number1=Number(myArray[0]);
number2=Number(myArray[1]);
total=number1*number2;
display=total;
operation="no";
}
if (operation=="bagi") {
myArray=display.split("/");
number1=Number(myArray[0]);
number2=Number(myArray[1]);
total=number1/number2;
display=total;
operation="no";
}
}

 Selamat mencoba ^_^!!!?

Memunculkan Hari dan Tanggal


 Buat 3 layer. Action, keterangan, display
 Pada display buat movie clip dynamic text dan letakkan instruksi berikut ini
onClipEvent (load) {
myDate = new Date ();
tanggal = myDate.getDate();
hari = myDate.getDay();
bulan = myDate.getMonth ();
tahun = myDate.getFullYear ();
display = _root.namahari[hari]+", "+tanggal+" "+_root.namabulan[bulan]
+" "+tahun;
}
 Pada layer keterangan tulis “hari dan tanggal pada hari ini adalah”
 Pada action berikan instruksi berikut ini
namahari = new Array();
namahari[0] = "Minggu";
namahari[1] = "Senin";
namahari[2] = "Selasa";
namahari[3] = "Rabu";
namahari[4] = "Kamis";
namahari[5] = "Jumat";
namahari[6] = "Sabtu";
namabulan = new Array();
namabulan[0] = "Januari";
namabulan[1] = "Februari";
namabulan[2] = "Maret";
namabulan[3] = "April";
namabulan[4] = "Mei";
namabulan[5] = "Juni";
namabulan[6] = "Juli";
namabulan[7] = "Agustus";
namabulan[8] = "September";
namabulan[9] = "Oktober";
namabulan[10] = "November";
namabulan[11] = "Desember";
 Selamat mencoba

Memunculkan Waktu
Caranya sama hanya lebih sederhana yaitu
 Buat movie clip letakkan di scane beri instruksi berikut
onClipEvent (enterFrame) {
myTime = new Date ();
jam = myTime.getHours ();
menit = myTime.getMinutes ();
detik = myTime.getSeconds ();
if (jam>12) {
jam=jam-12;
} else if (jam==0) {
jam=12;
}
if (menit<10) {
menit="0"+menit;
}
if (detik<10) {
detik="0"+detik;
}
waktu=jam+" : "+menit+" : "+detik;
}
 Selamat mencoba

Membuat dynamic Text


 Buat 2 layer dengan layer1 “dynamic dan layer2 “action”
 Pada layer dynamic buat 2 buah text yaitu text static dan text dynamic var isikan
displayNews
 Pada layer action isikan instruksi berikut ini:
loadVariables("kocenk.txt", _root.displayNews);
 Buat notepad dengan awalan text displayNews= isinya
 Selamat mencoba ^_^!!!?

Efek Jarak
 Buat 2 layer dengan nama grid dan karakter
 Pada grid buat gambar garis seperti susunan lantai keramik dan jadikan movie clip
 Pada karakter buat movie clip di symbol
 Buat 2 layer layer1 graphic “isi instant name” layer2 button pada button buat dalam
posisi HIT beikan instruksi berikut
on (press) {
startDrag(this,false,left,top,right,bottom);
}
on (release) {
stopDrag();
}
 Kembali pada scane
 Klik pada karakter berikan instruksi berikut
onClipEvent(load) {
myBounds = _root.grid.getBounds(_root);
top=myBounds.yMin;
bottom=myBounds.yMax
left=myBounds.xMin;
right=myBounds.xMax;
maxZ=bottom;
minZ=top-50;
}
onClipEvent(mouseMove){
newScale=(100/(maxZ-minZ))*(this._y-minZ);
this._xscale=newScale;
this._yscale=newScale;
}
 Selamat mencoba dech

Efek suara
Load /unload suara
 Buat musik jadikan file SWF
 Buat file baru buat 2 buah tombol
 pada tombol satu isiskan play musix berikan instruksi berikut
on (release) {
loadMovieNum("kocenk.swf", 1);
}
 pada tombol dua isikan unload musix berikan instruksi berikut
on (release) {
unloadMovieNum(1);
}
 coba sapa tau gagal ^_^!!!?

Pengontrol suara
 buat 5 layer,action, sound, text, button, wav
 pada frame action masukkan instruksi ini
s = new Sound(_root.musik);
 pada sound buat library dengan nama sound
 didalam library sound buat 3 layer, action, frame label, musix
 pada layer action masukkan instruksi ini
s = new Sound(_root.musik);
 pada layer frame label buat label stop pada frame 1 s/d 20 dapa 21 s/d 40 label
play
 pada layer musix frame 40 masukkan musix
 kembali ke scane
 pada layer tombol buat beberapa tombol diantaranya tombol start, stop, dan
beberapa tombol untuk volume, dan tombol centre, beberapa tombol right, dan
left
 pada tombol start isikan instruksi berikut:
on (release) {
musik.gotoAndStop("Play");
wave.gotoAndPlay("Play");
}
 pada tombol stop isikan instruksi berikut
on (release) {
musik.gotoAndStop("Stop");
wave.gotoAndStop("Stop");
stopAllSounds();
}
 pada centre isikan
on (rollOver) {
s.setPan(0);
}
 pada volume musix untuk suara besar
on (rollOver) {
s.setVolume(100);
}
 pada volume musix suara kecil
on (rollOver) {
s.setVolume(0);
}
 pada left / right
on (rollOver) {
s.setPan(-100 / 100);
}
 selamat mencoba

Metode Manipulasi Musik


• Import suara dalam library
• Pada layer prame 1 isikan instruksi berikut
mySound = new Sound ();
mySound.attachSound("musik");
mySound.start(0,999);
• kembali pada suara yang terdapat dalam library perhatikan pada baris intruksi
mySound.attachSound("musik"); yang artinya linkage berisi musik nach sekarang
cobalah linkage tersebut isi dengan kata musik
• jalankan “semoga berhasil”

slider / tuning Volume


• Buat layer sebanyak 4 buah ; action, sound, drag, batasan
• Pada action isikan instruksi berikut
s = new Sound(_root.musik);
• pada sound buat library dengan 2 layer pada layer 1 berisi action dengan instruksi
“stop”, pada layer 2 berisi suara letakkan pada scan layer sound
• pada drag buatlah library tombol,buat movieklip masukkan tombol tersebut pada
movieclip yang baru anda buat dan masukkan baris instruksi berikut ini
on (press) {
startDrag(this, false, left, top, right, bottom);
dragging = true;
}
on (release, releaseOutside) {
stopDrag();
dragging = false;
• keluarkan movieklip baru anda ke scan dan berikan baris instruksi berikut
onClipEvent (load) {
top=_y;
left=_x;
right=_x+250;
bottom=_y;
}

onClipEvent(enterFrame){
if (dragging==true){
_root.s.setVolume((right-_x)/2.5);
}
}
• pada batasan buatlah garis sebagai landasan volume
• ingat pada instant name , jalankan selamat mengkoreksi

Game Flash
Dasar Perpindahan Object
Buat object / gambar misalkan jadikan movieclip berikan instruksi berikut ini:
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP) && Key.isDown(Key.RIGHT)) {
this._rotation = 45;
this._y = _y-15;
this._x = _x+15;
} else if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN)) {
this._rotation = 135;
this._y = _y+15;
this._x = _x+15;
} else if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN)) {
this._rotation = 225;
this._y = _y+15;
this._x = _x-15;
} else if (Key.isDown(Key.UP) && Key.isDown(Key.LEFT)) {
this._rotation = 315;
this._y = _y-15;
this._x = _x-15;
} else if (Key.isDown(Key.UP)) {
this._rotation = 0;
this._y = _y-30;
} else if (Key.isDown(Key.DOWN)) {
this._rotation = 180;
this._y = _y+30;
} else if (Key.isDown(Key.RIGHT)) {
this._rotation = 90;
this._x = _x+30;
} else if (Key.isDown(Key.LEFT)) {
this._rotation = -90;
this._x = _x-30;
}
}
Cobalah….
Effect Tumbukan
• Buatlah movieclip dengan 3 layer : action, tombol, object.
Pada action isi scrip “stop”
Pada tombol buat object letakkan pada posisi HIT berikan instruksi berikut
on (press) {
startDrag(this);
}
on (release) {
stopDrag();
}
Pada object buat gambar yang serupa dengan posisi hit tombol di frame 1 pada
frame 2 bikin gambar seperti ledakan
• Keluarkan movieclip yang baru anda buat dan berikan baris instruksi berikut ini
onClipEvent (enterFrame) {
if (this.hitTest(_root.asteroid) == true) {
this.gotoAndPlay(2);
}
}
• Buat layer baru letakkan di bawah “buat object bergerak dari kiri ke kanan” dan
pada instant name di isi >>>> asteroid
• Selamat mencoba

Game Over
• Buat 3 layer : action, display, object
• Pada layer action berisi “Stop”
• Pada display buat movie clip dengan jenis text Dynamic. var waktu
• Keluarkan pada scan berikan instruksi
onClipEvent(enterFrame) {
currentTime=getTimer();
waktu=Math.round(10-(currentTime/1000))
if (waktu<=0) {
_root.gotoAndStop(3);
}
}
• Coba Display

Perang Game
• Buat 3 layer; border, pesawat, begron
• Pada border buat movie clip garis batasan
• Pada pesawat buat object pesawat berikan instruksi
onClipEvent (load) {
speed = 10;
_root.laser._visible=0;
jumlahlaser=1;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.RIGHT)) {
this._x=_x+speed;
} else if (Key.isDown(Key.LEFT)) {
this._x=_x-speed;
}
if (this._x<=50) {
this._x=50;
} else if (this._x>=600) {
this._x=600;
}
if (Key.isDown(Key.CONTROL)) {
if (jumlahlaser==1) {
duplicateMovieClip (_root.laser,
"laser"+jumlahlaser, jumlahlaser);
jumlahlaser=0;
}
}
}
• Pada begron masukkan begron yang sesuai
• Coba jalankan koreksi oiya ada yang lupa
• Pada pesawat buat movieclip dengan nama laser masukkan garis bentuk seperti
misil berikan instruksi
onClipEvent (load) {
laserspeed=10;
this._x=_root.pesawat._x;
this._y=_root.pesawat._y-30;
}
onClipEvent (enterFrame) {
this._y=this._y-laserspeed;
if (this.hitTest(_root.upperBorder)) {
_root.pesawat.jumlahlaser=1;
removeMovieClip (this);
}
}
• Nach sekarang baru di coba ^_^!!!?

Percobaan diatas blom ada musuhnya sekarang akan membuat musuh nich..?!!!
• Buat 7 layer : begron,pesawat,upborder,bottomborder,musuh,gameover,action.
• Pada action masukkan baris instruksi berikut
startX=new Array
(100,150,200,250,300,350,400,450,500,550,100,150,200,250,300,350,400,450,
500,550);
startY=new Array
(100,100,100,100,100,100,100,100,100,100,150,150,150,150,150,150,150,150,
150,150)
for (i=0;i<20;i++) {
duplicateMovieClip(enemy, "enemy"+i, i+10);
_root["enemy"+i]._x=startX[i]
_root["enemy"+i]._y=startY[i]
}
_root.enemy._visible=0;
score=0;
enemyBlown=0;
suara1=new Sound();
suara1.attachSound("loop");
suara1.start(0,999);
suara1.setVolume(50);

suara2=new Sound();
suara2.attachSound("shot");
suara3=new Sound();
suara3.attachSound("explode");
stop();
stop();
• Pada musuh buat movieclip bergerak dengan nama “musuh”
• Buat lagi movieclip ambil musuh dalam library buat bergeser dari kiri ke kanan
ke kiri lagi 2 kalinya lalu kembali ke posisi semula bila sudah letakkan pada layer
musuh.dan berikan instruksi berikut ini:
onClipEvent (load) {
enemySpeed=20;
delay=5;
startTimer=0;
}
onClipEvent (enterFrame) {
currentTimer=Math.round(getTimer()/1000);
if (currentTimer-startTimer==delay) {
this._y=this._y+enemySpeed;
startTimer=currentTimer;
}
if (this.hitTest(_root.laser1)) {
_root.attachMovie("ledakan", "ledakan1", 5);
_root.ledakan1._x=_root.laser1._x;
_root.ledakan1._y=_root.laser1._y-20;
_root.pesawat.jumlahlaser=1;
removeMovieClip(this);
removeMovieClip(_root.laser1);
}
if (this.hitTest(_root.pesawat)) {
_root.attachMovie("ledakanCopy", "ledakanCopy1", 6);
_root.ledakanCopy1._x=_root.pesawat._x;
_root.ledakanCopy1._y=_root.pesawat._y;
_root.ledakanCopy1._xscale=150;
_root.ledakanCopy1._yscale=150;
removeMovieClip(this);
removeMovieClip(_root.pesawat);
}
if (this.hitTest(_root.bottomBorder)) {
_root.attachMovie("ledakanCopy", "ledakanCopy1", 7);
_root.ledakanCopy1._x=this._x;
_root.ledakanCopy1._y=this._y;
_root.ledakanCopy1._xscale=150;
_root.ledakanCopy1._yscale=150;
removeMovieClip(this);
}
}
• Pada buttonBorder buat movie clip berupa garis letakkan di bawah scan
• Pada upborder lakukan hal yang sama letakkan di atas ingat border sebagai batas
• Pada pesawat sama seperti contoh di atas isikan instruksi berikut:
onClipEvent (load) {
speed = 10;
_root.laser._visible=0;
jumlahlaser=1;
}

onClipEvent (enterFrame) {
if (Key.isDown(Key.RIGHT)) {
this._x=_x+speed;
} else if (Key.isDown(Key.LEFT)) {
this._x=_x-speed;
}
if (this._x<=50) {
this._x=50;
} else if (this._x>=600) {
this._x=600;
}
if (Key.isDown(Key.CONTROL)) {
if (jumlahlaser==1) {
duplicateMovieClip (_root.laser, "laser"+jumlahlaser,
jumlahlaser);
jumlahlaser=0;
}
}
}
• Begitu juga dengan lasernya instruksinya sebagai berikut
onClipEvent (load) {
laserspeed=10;
this._x=_root.pesawat._x;
this._y=_root.pesawat._y-30;
}
onClipEvent (enterFrame) {
this._y=this._y-laserspeed;
if (this.hitTest(_root.upperBorder)) {
_root.pesawat.jumlahlaser=1;
removeMovieClip (this);
}
}
• Begron juga sama sich ^_^!!!? Yang belum di bahas apa yach oiya layer “Game
Over. Nach pada layer ini buat di frame2 tulisan Game Over
• Selesai dech di coba dan analisa

Final Game
Kali ini hanya mempercantik game yaitu hanya menambah nilai score dan suara
• Buat 8 layer; win, Game Over, Score, Musuh, Bottomborder, upborder, pesawat,
background
• Pada Game Over sama seperti di atas
• Pada score buat text dynamic dengan var score letakkan pada frame 1 dan 2 atur
posisinya
• Pada layer musuh sama var enemy dengan action scrip:
onClipEvent (load) {
enemySpeed=20;
delay=5;
startTimer=0;
}
onClipEvent (enterFrame) {
currentTimer=Math.round(getTimer()/1000);
if (currentTimer-startTimer==delay) {
this._y=this._y+enemySpeed;
startTimer=currentTimer;
}
if (this.hitTest(_root.laser1)) {
_root.suara3.start(0,1);
_root.score=_root.score+100;
_root.enemyBlown=_root.enemyBlown+1;
_root.attachMovie("ledakan", "ledakan1", 5);
_root.ledakan1._x=_root.laser1._x;
_root.ledakan1._y=_root.laser1._y-20;
_root.pesawat.jumlahlaser=1;
removeMovieClip(this);
removeMovieClip(_root.laser1);
}
if (this.hitTest(_root.pesawat)) {
_root.suara3.start(0,1);
_root.attachMovie("ledakanCopy", "ledakanCopy1", 6);
_root.ledakanCopy1._x=_root.pesawat._x;
_root.ledakanCopy1._y=_root.pesawat._y;
_root.ledakanCopy1._xscale=150;
_root.ledakanCopy1._yscale=150;
removeMovieClip(this);
removeMovieClip(_root.pesawat);
}
if (this.hitTest(_root.bottomBorder)) {
_root.suara3.start(0,1);
_root.attachMovie("ledakanCopy", "ledakanCopy1", 7);
_root.ledakanCopy1._x=this._x;
_root.ledakanCopy1._y=this._y;
_root.ledakanCopy1._xscale=150;
_root.ledakanCopy1._yscale=150;
removeMovieClip(this);
}
if (enemyBlown>=20) {
_root.gotoAndStop(3)
}
}
• Pada button dan upborder sama
• Pada pesawat juga sama dengan action
onClipEvent (load) {
speed = 10;
_root.laser._visible=0;
jumlahlaser=1;
}

onClipEvent (enterFrame) {
if (Key.isDown(Key.RIGHT)) {
this._x=_x+speed;
} else if (Key.isDown(Key.LEFT)) {
this._x=_x-speed;
}
if (this._x<=50) {
this._x=50;
} else if (this._x>=600) {
this._x=600;
}
if (Key.isDown(Key.CONTROL)) {
_root.suara2.start(0,1);
if (jumlahlaser==1) {
duplicateMovieClip (_root.laser, "laser"+jumlahlaser,
jumlahlaser);
jumlahlaser=0;
}
}
}
• Begitu juga laser
onClipEvent (load) {
laserspeed=10;
this._x=_root.pesawat._x;
this._y=_root.pesawat._y-30;
}
onClipEvent (enterFrame) {
this._y=this._y-laserspeed;
if (this.hitTest(_root.upperBorder)) {
_root.pesawat.jumlahlaser=1;
removeMovieClip (this);
}
}

• Lalu pada layer win buat static text “YOU WIN”


• Nach apa yang kurang coba jalankan dan amati…
• Cobalah buat library dengan mana explosion bikin effect ledakan jangan lupa
linkage di isi lalu gandakan movieclip ini dengan nama explosion copy
• Masukkan 3 suara yaitu untuk main, tembak, dan ledakan pastikan yang anda buat
kali ini berjalan dengan sempurna…

Beri Nilai