Professional Documents
Culture Documents
dengan Flash
v.1 10/14/2008
Herru Darmadi
BINUS UNIVERSITY
Table of Contents
Menyiapkan Stage......................................................................................................................................... 3
Mengatur Ukuran Stage ............................................................................................................................ 3
Mengatur Layer ......................................................................................................................................... 3
Memasukkan Objek-Objek ke Stage ......................................................................................................... 4
Membuat Actionscript .................................................................................................................................. 6
Membuat Keranjang Apel Bergerak.......................................................................................................... 6
Membuat Fungsi Inisialisasi Game............................................................................................................ 8
Membuat Apel Berjatuhan ....................................................................................................................... 9
Keranjang Menampung Apel .................................................................................................................. 13
Memasukkan Suara................................................................................................................................. 15
Impor ke Library .................................................................................................................................. 15
Memasukkan musik latar belakang .................................................................................................... 17
Memasukkan efek suara apel tertampung dan terjatuh .................................................................... 18
Menyiapkan Stage
Aturlah ukuran stage dengan mengklik tombol Size dan rubahlah menjadi seperti instruksi dibawah:
Klik OK.
Mengatur Layer
Layer sangat berguna untuk memberikan informasi mengenai manajemen objek-objek dalam stage.
Ketika membuat dokumen baru secara otomatis akan disediakan 1 layer baru dengan nama Layer 1.
Nama layer dapat dirubah dengan mengklik 2 kali pada nama layer dan memasukkan nama baru
kemudian tekan tombol Enter dari keyboard.
Layer juga dapat ditambah, layer yang berada diatas akan mendapatkan posisi lebih tinggi pada stage.
Selanjutnya adalah memasukkan kotak teks informasi mengenai jumlah apel tertampung dan jatuh yang
nantinya akan kita isikan secara dinamis melalui actionscript.
4. Klik kotak teks yang sebelah atas dan pada Properties aturlah:
a. Rubahlah tipe dari teks ini menjadi Dynamic Text.
b. Rubahlah warna dari teks ini menjadi kuning.
c. Pada Var: isikan txt_tertampung.
5. Klik kotak teks yang sebelah bawah dan pada Properties aturlah:
a. Rubahlah tipe dari teks ini menjadi Dynamic Text.
Kita telah selesai memasukkan objek-objek yang dibutuhkan pada stage, untuk apel nanti akan
diciptakan secara dinamis melalui actionscript.
Cobalah menekan tombol Ctrl + Enter pada keyboard untuk melihat hasil sementara.
Membuat Actionscript
Membuat Keranjang Apel Bergerak
Berikut ini adalah instruksi untuk membuat keranjang apel bergerak sesuai dengan gerakan mouse:
onClipEvent(load){
Mouse.hide();
stagewidth = Stage.width;
}
onClipEvent (enterFrame) {
if(_root._xmouse <= 0)
{
this._x = 0;
}
else if(_root._xmouse >= (stagewidth - this._width))
{
this._x = stagewidth - this._width;
}
else
{
this._x = _root._xmouse;
}
}
Kode program ini diberikan pada objek keranjang yang berarti kode ini hanya akan berpengaruh pada
objek keranjang ini saja, ini disebut juga dengan istilah Object Oriented Programming.
onClipEvent(load){
Mouse.hide();
stagewidth = Stage.width;
}
onClipEvent adalah suatu fungsi event yang telah disediakan oleh Flash untuk event tertentu pada kasus
ini adalah ketika objek ini di-load maka selanjutnya Flash akan mengerjakan perintah didalamnya yaitu
menyembunyikan cursor mouse dan juga kita perlu menyimpan lebar dari stage ke variabel lokal untuk
selanjutnya dapat kita pergunakan kembali.
onClipEvent (enterFrame) {
if(_root._xmouse <= 0)
{
this._x = 0;
}
else if(_root._xmouse >= (stagewidth - this._width))
{
this._x = stagewidth - this._width;
}
else
{
this._x = _root._xmouse;
}
}
Event selanjutnya adalah ketika frame ini dijalankan maka Flash akan mengerjakan perintah didalamnya.
Yang pertama adalah menguji apakah posisi x mouse lebih kecil atau sama dengan 0 yaitu di
sebelah pojok kiri, maka berikan posisi x dari keranjang ini (this) menjadi 0.
0 400
0
Sumbu X
Keranjang
Lebar
Sumbu Y
Yang kedua adalah menguji apakah posisi x mouse lebih besar atau sama dengan lebar stage
yang telah dikurangi dengan lebar keranjang, maka berikan posisi x dari keranjang ini (this)
menjadi lebar stage dikurangi dengan lebar keranjang.
0 400
0
Sumbu X
Keranjang
Lebar
Sumbu Y
Yang ketiga adalah memberikan posisi x dari keranjang ini (this) sesuai dengan posisi x dari
mouse (mengikuti gerakan x mouse yaitu ke kiri atau kekanan).
Sekarang cobalah lakukan Test Movie dengan menekan tombol Ctrl + Enter pada keyboard dan cobalah
gerakkan mouse anda kekiri dan kekanan pada stage dan keranjang akan mengikuti gerakannya.
Bila keranjang tidak bergerak, periksalah kembali kode program dan pastikan sama dengan instruksi.
function inisialisasi()
{
_global.apelTertampung = _global.apelTdkTertampung = 0;
_global.JUMLAH_APEL_DICIPTAKAN = 5;
Penamaan fungsi dapat secara bebas dibuat, yang penting jelas dan tepat kegunaannya agar tidak
membingungkan.
Fungsi inisialisasi ini akan menginisialisasi/memberikan nilai terhadap variabel global (variabel yang
dapat dipanggil dimana saja tanpa terikat fungsi), yaitu:
apelTertampung adalah variabel untuk menampung jumlah apel yang ditampung dengan nilai 0
karena baru akan memulai permainan.
apelTdkTertampung adalah variabel untuk menampung jumlah apel yang jatuh tidak tertangkap
oleh keranjang dan diberi nilai 0 karena baru akan memulai permainan.
JUMLAH_APEL_DICIPTAKAN adalah variabel yang akan digunakan untuk menentukan jumlah
apel yang akan diciptakan (selanjutnya pada modul Membuat Apel berjatuhan).
txt_tertampung adalah variabel Dynamic Text (sebelumnya dibuat pada modul Memasukkan
Objeck ke Stage) untuk memampilkan informasi mengenai apel yang tertampung dengan
variabel apelTertampung.
txt_tdk_tertampung adalah variabel Dynamic Text (sebelumnya dibuat pada modul
Memasukkan Objeck ke Stage) untuk memampilkan informasi mengenai apel yang terjatuh
dengan variabel apelTdkTertampung.
Fungsi ini belum selesai seluruhnya, sebelum melanjutkan ke tahap selanjutnya periksakan kode
program dengan instruksi.
BuatApel()
ApelBerjatuhan()
Dari diagram diatas terlihat bahwa kita memerlukan 2 fungsi lagi yaitu BuatApel() dan ApelBerjatuhan()
yang masing-masing mempunyai fungsinya sendiri-sendiri.
Sebelumnya kita perlu membuat agar Movie Clip apel dapat dihubungkan dengan Actionscript dengan:
2. Berikan tanda cek pada Export for Actionscript, dan berikan nama identifier APEL.
Ini berguna untuk link agar nama identifier ini dapat digunakan di kode Actionscript kita.
function buatApel()
{
_global.kumpulanApel = new Array();
_global. kumpulanApel.push(newapple);
}
function apelBerjatuhan()
{
for(i=0; i<_global.kumpulanApel.length; i++)
{
var apel = _global.kumpulanApel[i];
1. Yang pertama kali dilakukan yaitu membuat variabel global dengan nama kumpulanApel dengan
tipe Array yaitu tipe data yang dapat menampung lebih dari satu objek, dalam hal ini yaitu apel-
apel.
2. Selanjutnya melakukan perulangan (loop) yaitu mengeksekusi perintah yang ada didalam
perulangan itu sebanyak n kali dimana n adalah sebanyak _global.JUMLAH_APEL_DICIPTAKAN
o Objek apel akan diciptakan secara dinamis dengan fungsi built-in
yaitu:
this.attachMovie(“APEL”, “apel”+i, this.getNextHighestDepth());
Fungsi ini akan membuat objek apel secara dinamis berdasarkan LINKAGE_NAME dari
library, kemudian memberikan nama apel+i dimana i akan berubah secara dinamis
selama perulangan, dan memberikan lokasi kedalaman pada stage agar objek
bertumpuk.
o Kemudian objek apel yang telah diciptakan perlu diberikan posisi x dan y pada stage
secara dinamis pula.
Posisi y yaitu 0 sumbu Y dikurangi tinggi apel sehingga menghasilkan efek
seakan-akan apel jatuh dari atas stage.
newapple._y = 0 - newapple._height;
Posisi x yaitu diacak dari 0 sampai lebar stage dikurangi lebar apel pada sumbu X.
newapple._x = Math.floor(Math.random()*(Stage.width-newapple._width));
o Objek apel juga diberikan nilai acak (1-10 unit pixel) pada velocity sehingga kecepatan
perpindahan apel pada sumbu Y akan berbeda-beda.
_ global. kumpulanApel.push(newapple);
3. Keluar dari perulangan, selanjutnya adalah mengeset agar Flash secara otomatis memanggil
fungsi apelBerjatuhan() setiap 50 milidetik dengan perintah.
Perulangan dilakukan sebanyak jumlah apel yang berada didalam kumpulanApel yaitu
_global.kumpulanApel.length.
1. Setiap objek apel akan dapat diakses pada kode program dengan perintah.
2. Selanjutnya kita rubah posisi y dengan menambahkan posisi y sekarang dengan kecepatan dari
apel kita, sehingga posisi y apel akan semakin besar dan bergerak ke bawah.
3. Dilakukan pengecekan apakah posisi y apel telah lebih besar dari tinggi stage (telah mencapai
batas bawah), bila ya berarti:
a. Apel tersebut telah jatuh, tambahkan jumlah apel tidak tertampung sebanyak satu.
_global.apelTdkTertampung++;
apel._y = 0 - apel._height;
function inisialisasi()
{
_global.apelTertampung = _global.apelTdkTertampung = 0;
_global.JUMLAH_APEL_DICIPTAKAN = 5;
Periksa kembali kode program, dan lakukan Test Movie dengan menekan tombol Ctrl+Enter pada
keyboard. Apel-apel akan berjatuhan dari sebelah atas dan bila sampai dibawah informasi apel terjatuh
akan bertambah dan apel akan muncul kembali diatas dengan posisi x yang berbeda.
function cekTumbukan(apel)
{
if(apel.hitTest(mc_keranjang))
{
_global.apelTertampung++;
txt_tertampung = "Apel tertampung : "+_global.apelTertampung;
apel._y = 0 - apel._height;
apel._x = Math.floor(Math.random() * (Stage.width - apel._width));
}
}
Dimana fungsi ini akan dipanggil oleh fungsi apelBerjatuhan(), lakukan perubahan pada fungsi
apelBerjatuhan() menjadi seperti berikut:
function apelBerjatuhan()
{
for(i=0; i<_global.kumpulanApel.length; i++)
{
var apel = _global.kumpulanApel[i];
apel._y = 0 - apel._height;
apel._x = Math.floor(Math.random()*(Stage.width - apel._width));
}
else
{
cekTumbukan(apel);
}
}
}
Maksud dari perintah ini adalah ketika apelBerjatuhan apel akan dicek apakah sudah mencapai batas
bawah stage, bila belum cek apakah terjadi tumbukan dengan memanggil fungsi cekTumbukan terhadap
apel tersebut.
1. Dilakukan pengecekan pada kondisi apakah apel mengenai mc_keranjang yaitu keranjang kita.
if(apel.hitTest(mc_keranjang))
_global.apelTertampung++;
apel._y = 0 - apel._height;
Periksa kembali kode program, dan lakukan Test Movie dengan menekan tombol Ctrl+Enter pada
keyboard. Apel-apel akan berjatuhan dari sebelah atas dan cobalah mengambil apel tersebut dengan
mengerakan keranjang dan menunggu pada saat yang tepat.
Memasukkan Suara
Game akan kurang menarik tanpa sentuhan suara. Pada modul ini akan dibahas mengenai bagaimana
memasukkan musik, dan efek suara ketika berhasil mengambil dan gagal mengambil apel.
Impor ke Library
Sebelum mulai menambah kode program, importlah suara-suara kedalam library, berikut langkah-
langkahnya:
Ini berguna untuk link agar nama identifier ini dapat digunakan di kode Actionscript kita.
5. Lakukan yang sama untuk cached.mp3 dengan nama identifier suara_tertampung, dan fall.mp3
dengan nama identifier suara_terjatuh.
Bg_musik adalah variabel suara dimana akan dihubungkan dengan musik_game sesuai dengan linkage
yang telah dibuat dengan ingame.mp3, dan kemudian akan langsung dimainkan ketika game dimulai
dengan fungsi start(1,9999). Angka 1, 9999 ini berarti musik akan dimainkan terus berulang sebanyak
9999 kali.
function efekSuara(tipe)
{
var vsuara = new Sound();
if(tipe == true)
vsuara.attachSound("suara_tertampung");
else
vsuara.attachSound("suara_terjatuh");
vsuara.start();
}
1. vsuara adalah variabel suara untuk menampung mp3 yang akan dihubungkan.
2. Dilakukan pengecekan dimana bila kondisi tipe adalah tertampung, maka hubungkan vsuara
dengan suara_tertampung dan selain itu hubungkan vsuara dengan suara_terjatuh.
3. Kemudian mainkan suara dengan vsuara.start()
Tentu efekSuara ini perlu dipanggil oleh fungsi lain, lakukan perubahan pada fungsi apelBerjatuhan() dan
cekTumbukan(apel) menjadi seperti berikut.
function apelBerjatuhan()
{
for(i=0; i<_global.kumpulanApel.length; i++)
{
var apel = _global.kumpulanApel[i];
apel._y += apel._velocity;
apel._y = 0 - apel._height;
apel._x = Math.floor(Math.random() * (Stage.width - apel._width));
}
else
{
cekTumbukan(apel);
}
}
}
function cekTumbukan(apel)
{
if(apel.hitTest(mc_keranjang))
{
_global.apelTertampung++;
txt_tertampung = "Apel tertampung : "+_global.apelTertampung;
apel._y = 0 - apel._height;
apel._x = Math.floor(Math.random() * (Stage.width - apel._width));
}
}
Periksa kembali kode program, dan lakukan Test Movie dengan menekan tombol Ctrl+Enter pada
keyboard. Musik latar belakang akan bermain dan apel-apel akan berjatuhan dari sebelah atas dan
cobalah mengambil apel tersebut dengan mengerakan keranjang dan menunggu pada saat yang tepat.
Efek suara akan muncul bila berhasil mengambil apel atau ketika apel terjatuh.
Selamat Anda telah berhasil membuat satu game sederhana dengan menggunakan Flash dan
Actionscript.