PENGENALANFLASHDANACTIONSCRIPT3.0
dobeActionScriptmerupakanbahasapemrogramanyangbekerjadidalamplatformAdobeFlash.
AdobeActionScriptmemangdibangunsebagaicarauntukmengembangkanpemrogramaninteraktif
secaraefisienmenggunakanplatformaplikasiadobeFlashActionScriptmulaidarianimasiyang
sederhanasampaidenganyangkomplekssekalipun,penggunaandata,danaplikasiinterfaceyang
interaktif.PertamakalidiperkenalkandalamFlashPlayer9,ActionScriptmerupakanbahasa
pemrogramanberorientasiobjekdidasarkanpadaECMAScriptstandaryangsamayangmenjadidasar
JavaScriptdanmemberikanhasilyangluarbiasadalamkinerjadanproduktifitaspengembang.ActionScript2,
versiActionScriptyangtelahdigunakandalamFlashPlayer8dansebelumnya,tetapdidukungdalamFlash
Player9danFlashPlayer10.(http://www.adobe.com/devnet/actionscript/)
BabiniakandimulaidenganpengenalanelemenelemendasardariFlashCS3danPembuatanprogram
HelloWorldsederhanamenggunakanActionScript.Sebelummasukdalampembuatanprogramaplikasi,
terlebihdahuluakandiperkenalkansecarasingkattentangFlashdanpembuatanFileFlash.
UntukmembangunaplikasidenganmenggunakankodeActionScript3.0,andamembutuhkansalahsatu
dariberikutini.
AdobeFlex2(atauyanglebihbaru)SoftwareDevelopmentKit(SDK)besertadengantekseditornya.
AdobeFlashCS3(ataureleaseyanglebihbaru)
AdobeFlexBuilder2(ataureleaseyanglebihbaru)
AdobeFlexBuilderdanAdobeFlashCS3merupakanintegrateddevelopmentenvironment(IDE)yangdidesain
untukmembantuandamembangunaplikasiFlexsecaracepatdanmudah.FlexBuilderdanFlashCS3tidak
gratis,artinyaandaharusmembayarlisensidariAdobe.Saatpenulisanbukuini,Andabisamencoba
mendownloadversimencoba30hari.FlexbuilderdanFlashCS3jugamenyediakanvisualinterfaceyang
mempermudahdalammembuataplikasiFlexatauFlash.
Flex2SDK(ataureleaseyanglebihbaru)bersifatgratisuntukkomersilmaupunnonkomersildanbisa
didownloaddariwebsiteAdobe.SetelahandamenginstallFlexSDK,andamasihmemerlukansebuahteks
editoruntukmemasukkanprogramActionScriptanda.SelainFlexBuilderyangberlisensiterdapateditoryang
bersifatopensourceyangsangatbaik,yaitu:FlashDevelopyangbekerjadalamsistemoperasiWindows.
FlashDevelopdidesainsecarakhususuntukbekerjadenganFlashmaupunFlex.FlashDevelopmenjadipilihan
penulisuntukmembuataplikasiFlashanimasidalambukuinikarenagratis,relatifmudah,dansangat
menolongdalammenuntunpemrograman,sehinggacocokuntukorangyangsedangbelajarpemrograman
ataupunyangsudahmahirsekalipun.DalamawalbukuiniakandijelaskansecarasingkatpenggunaanAdobe
FlashCS3danpenggunaanFlashDevelop.
FLASHCS3DANELEMENELEMENNYA
PadasaatpertamakaliandamembukaFlash,andadapatmembuatfileFlashdenganmemilihmenu
FileNew.AndaakanditunjukkanjendelaNewDocumentsepertiterlihatdalamGambar1.1.
SetelahandamenekantombolOK,andaakanmendapatsebuahfileFlashbarudengannamaUntitled1dalam
jendeladokumenFlashsepertidiperlihatkandalamGambar1.2.
dengan tampilan
Workspace Default
PANELTIMELINE
STAGE
Panel
T l
PANEL
LIBRARY
PANELPROPERTIES
Untukmemunculkansuatupanel,andabisamemilihmenuWindowPanelyangandainginkan.Panelpanel
yangadadapatandabukaataututupataupindahpindahsesuaidengankeinginananda.Apabilaandaingin
kembalikemodeljendelayangawallagi,andabisamemilihmenuWindowWorkspaceDefault.
Berikutinidiberikanpenjelasansingkatmengenaipanelpanelyangseringdipakai.
PanelStagemerupakantempatandamembuataplikasidanjugamenunjukkanisiaplikasiandayang
akanmunculsetelahandaselesaimembuatdanmenjalankanaplikasi.Andadapatmenambahkan
objekobjek(bisaberupagraphic,text,komponeninteraktif,buttondansebagainya)kedalamStage.
Andadapatjugamemodifikasiobjekobjektersebutataumembuatobjekbaruataupunmembuat
animasiobjekandamenggunakanprogramActionScript.
PanelTimelinemenyediakanframeframeyangdapatdigunakanuntukmembuatanimasiobjektanpa
menggunakanprogramScript.PadapanelTimelinejugaterdapatlayerlayeryangbisaandabuat.
PanelPropertiesmembantuandamengaturbeberapapropertidariobjekterpilihyangadadiStage.
Apabilatidakadaobjekyangdipilih,makapanelpropertiakanberkaitlangsungdenganproperti
Stage.
PanelToolsmemuatalatbantuuntukmembuatobjekgraphicyangdapatditambahkandalamStage.
PanelLibrarymemuatobjekobjekyangandagunakandalamfileFlashanda.
PEMBUATANPROGRAMTEKSSEDERHANA
UntukmengawalipembuatanprogrammenggunakanActionScriptakandibuatprogramuntuk
menampilkantulisansederhanaHelloWorlddanpenggunaantomboldaricommonlibrary.Flash
mempunyaibeberapakomponenuserinterfacebawaandanjugaelemenelemenlibrarybawaanuntuk
membantumembuatdesaindengancepatdanmudah.
LangkahpertamaadalahsimpanfileflashandadenganmemilihmenuFileSaveAs(atautekanCtrl+S
bersamaan)danberinamaHelloWorld.fladalamfolderkerjaanda.Selanjutnya,buatlahsebuahtombolmulai
denganmengambildarimenuWindow>CommonLibraries>Buttons,danandaakandiperlihatkankotakdialog
sepertidalamGambar1.3.
Gambar
1.3. Double-Click
buttons,
pilih arcade buttongreen.
Gunakan mouse anda
Nama
instance
PadaPanelPropertiberinamainstance(namayanghanyaberlakudalamfileflashaktifanda)andadengan
namatmbMulai(ataunamalainyangmudahandaingatdanmenunjukkantomboluntukmemulaianimasi).
NamainstancetmbMulaiakandigunakandalamprogramscriptkitauntukmenunjukpadaobjekdalamStage.
Bilaandasudahselesai,andabisamelanjutkandenganmenuliskankodescriptuntukmembuatsesuatudalam
flashanda.
PembuatanKodeActionScript
PembuatankodedilakukanpadapanelAction.UntukmasukkedalampanelActions,PilihLayer1,
kemudianpilihmenuWindowAction(atautekantombolF9),danketikkankodeScriptberikutdalampanel
ActionssepertidalamGambar1.4.
1 trace (Selamat Datang, Silahkan Tekan Tombol Hijau);
2 tombolMulai.addEventListener(MouseEvent.CLICK,tekanTombol);
3 function tekanTombol(mevt:MouseEvent):void{
4
trace("Hello World");
program ActionScript
JalankanhasilprogramandadenganmemilihmenuControlTestMovie(atautekanCtrl+Enter).PadaStage
andaakanmunculobjektombolhijau.Padasaattombolandaclickdenganmouse,andaakanmelihattulisan
HelloWorldpadapanelOutputsepertipadaGambar1.5.
Gambar 1.5.
FLASHDEVELOPUNTUKPEMROGRAMANACTIONSCRIPT3.0
FlashDevelopmerupakansebuaheditoryanggratisyangbisabekerjadalamsistemoperasiWindows,
maupunMacOSX,ataupunLinux.AkantetapisejakmembutuhkanMicrosoft.NET2.0runtime,FlashDevelop
hanyaberjalandiWindows.FlashDevelopmendukungkodingyangdilakukanolehActionScript3.0.
PenggunaanFlashDevelopsebagaisebagaikompilerdaneditorActionScriptmembutuhkanbeberapa
persyaratansebagaiberikut.
Microsoft.NETframework
FlashPlayer10.1ActiveXruntime(dibutuhkanuntukmenampilkan,bertindaksebagaibrowser)
Java1.6runtime(JRE)(dibutuhkanjikaandamenggunakanFlexSDK)
INSTALASI FLASHDEVELOP
UntukmemulaimenginstallFlashDevelop,pertamakalidownloaddaninstall.NETruntime(dengan
namafiledotnetfx.exe)dariwebsiteMicrosoft(http://www.microsoft.com)dengankatakuncipencarian
Microsoft.NETFramework.Setelahandamenginstall.NETruntime,lanjutkandenganmenginstall
FlashDevelop.DownloadfileFlashDevelopreleaseyangterbarudarihalamanRelease
(http://www.flashdevelop.org/community/viewforum.php?f=11).LanjutkandenganmenginstallFlashDevelop
padakomputerAndasesuaidenganinstruksistandarselamaprosesinstalasi.Lakukanbeberapakonfigurasi
sesuaiinstruksiyangadadalamhalamankonfigurasi
(http://www.flashdevelop.org/wikidocs/index.php?title=Configuration)
LanjutkandenganmendownloadFlexSDKdarihalamanFlexSDKyangFree
(http://opensource.adobe.com/wiki/display/flexsdk/Downloads).Setelahandaselesaimendownload,anda
bisamengekstraksfileFlexSDKandadalamdirectoryandayangnantinyaakandiacudalamkonfigurasi
settinganprogramdariFlashDevelop.
SetelahandaselesaimenginstallFlexSDKdanFlashDevelop,padasaatpertamaandamenggunakan,
andaperlumengkonfigurasibeberapasettinganprogram.JalankanFlashDevelop.PilihmenuToolsProgram
Setting(atautekanF10),yangakanmemunculkankotakdialogSettingsepertipadaGambar1.6
Gambar1.6.
kotakdialog
Setting
program
Dalamkotakdialogini,pilihPluginsAS3ContextkemudianaturbagianFlexSDKLocationmenuju
pathdirectorytempatandamenaruhAdobeFlexSDKyangsudahandaekstrak.Lanjutkandenganmemilih
PluginsFlashViewerkemudianaturpathuntukFlashPlayeranda,sepertiterlihatpadaGambar1.7.
Gambar1.7.
kotakdialog
Setting
program
untuk
memilih
FlashViewer
Untukmemulaimembuatproyeksederhanadanmengkompilasinya,pilihmenuProjectNew
ProjectyangakanmemunculkankotakdialogNewProjectsepertiterlihatpadaGambar1.8.PilihAS3Project
dibawahjudulActionScript3.BerinamaPengenalanFlash,pilihlokasifileandadenganmemilihBrowsefile.
AndabisajugacentangCreatedirectoryforproject,supayadibuatkandirektorikhususuntukproyekanda.
ProyekAndaakansecaraotomatistersimpandalamfolderPengenalanFlashdengannamafileproyeknya
adalahPengenalanFlash.as3proj.
Gambar1.8.
kotakdialog
NewProject
FlashDevelopakanmemunculkantampilansepertipadaGambar1.9.Andaakanlangsungmempunyai
fileMain.asdidalamdirectorysrcanda.IsidarifileMain.asberupastandarkodedalamsebuahfile
ActionScript3(.as)tanpaandaperlumengetikkannya.
Gambar1.9.
TampilanAwal
FileMain.as
pada
FlashDevelop
DalamfileMain.asandatinggalmenambahkankodeActionScript3.0anda.Contohpembuatan
tulisanHelloWorlddapatdilakukandenganmenambahkansebuahvariabelteksdengantipeTextField,mengisi
parametertextdengansebuahstringHelloWorld,danmenampilkannyakedalamstage.Halinisamapersis
denganmenuliskannyapadapanelActionFlashProfesional.Sederhananyaadalahbayangkanbahwapanel
ActiondariAdobeFlashituadalahfungsiMaindalamFlashDevelop.Haliniakanmempermudahandadalam
bermigrasiantaraAdobeFlashProfesionaldenganFlashDevelop.
publicclassMainextendsSprite
{
publicfunctionMain():void
if(stage)init();
elseaddEventListener(Event.ADDED_TO_STAGE,init);
varteks:TextField=newTextField
teks.text="HelloWorld"
stage.addChild(teks)
}
}
UntukmelihathasildariprogramdiatasandabisamenjalankannyadenganmemilihmenuProject
TestMovie(atautekanF5,atautekanCtrl+Enter).Bilaandabenarmengetikkankodenyaakanmunculhasil
sepertipadaGambar1.10.FileflashSWFhasilpengujianandaakandisimpandalamdirektoribindengannama
PengenalanFlash.swf.
Gambar
1.10Hasil
program
HelloWorld
BAB2
DASARDASARPROGRAMACTIONSCRIPT3.0
Dalambabiniakandibahasmengenai
Babinidimulaidenganpenjelasanmengenaikonsepkonsepdasarpemrogramanbesertadengancontoh
pengkodeannyadalamActionScript.Supayalangsungbisamelihathasilpengkodeananda,buatprojectbarudalam
FlashDevelopandadenganmemilihmenuProjectNewProject,pilihtemplateAS3Project,berinamaproject
andaDasarAS3.Masukpadadirektorisrc,doubleclickfileMain.as,yangakanmemunculkanpackageberikut.
package
{
importflash.display.Sprite;
importflash.events.Event;
/**
*...
*@authorNugrohoAgusH
*/
publicclassMainextendsSprite
publicfunctionMain():void
if(stage)init();
elseaddEventListener(Event.ADDED_TO_STAGE,init);
privatefunctioninit(e:Event=null):void
removeEventListener(Event.ADDED_TO_STAGE,init);
//entrypoint
1.
Pemberiankomentar.Komentaradalahpotonganpotonganteksyangtidakikutdijalankan//dieksekusioleh
program.Komentarhanyadigunakanuntukdokumentasiprogramsehinggabisadigunakandalam
pendeteksiankesalahanmaupunpengembanganprogram.DalamActionScriptterdapatduatipekomentar,
yaitu:komentardalamsatubarisdankomentardalamsatublokbaris.
1.1. Untukmemberikankomentarhanyadalamsatubarisdigunakantandaduaforwardslash(//),misalnya:
Trace(HelloWorld)//komentarnyaadalahuntukmenampilkantulisanHelloWorld.
1.2. Untukmemberikankomentardalambeberapabarisdiawalidengantanda/*dandiakhiridengantanda
*/,misalnya:
/*
copyrightbynugroho
F.TeknologiInformasi
UKDW
*/
2.
PenggunaanperintahTrace
PerintahTracedigunakanuntukmenampilkaninformasipadapanelOutput.PanelOutputhanyadigunakan
untukmengujijalannyaprogramsaja,bukansebagaitampilanutamaprogram.Yangmenjaditampilanutama
programadalahStagekita.
Misalnya:
publicfunctionMain():void{
if(stage)init();
elseaddEventListener(Event.ADDED_TO_STAGE,init);
trace(2+5)//akanmenampilkanbilangan7
}
3.
PendeklarasianVariabel
Sebuahvariabel(misalnyavariabelxdalampelajaranmatematikayangmenyajikansebuahbilanganyangbisa
diberidengansuatunilai)adalahsebuahpenampunginformasiyangbisadiambilataupundiganti.Variabel
variabelyangakandigunakandalamActionScriptharusdideklarasikanterlebihdahulu.Beberapatipe
data/tipevariabelyangseringdigunakanantaralain:TextField,Number,String,Array,Sprite,Shape,dan
MovieClip.KitajugadapatmembuattipevariabelsendiriberupaobjekClassuntukaplikasikita.Perintah
deklarasivariabelmempunyaibentukumum:
var namaVariabel:TipeVariabel;
ataucarakeduaberikutjugamemberikanhasilyangsama:
var namaVariabel:TipeVariabel=new TipeVariabel();
AndabisamenambahkanprogramberikutkedalamkodeprogramandadidalamlingkupfungsiMain()untuk
memunculkantulisanHelloWorldkedalamStageAnda.
publicfunctionMain():void{
var textSaya:TextField=new TextField();
textSaya.text="Hello World";
stage.addChild(textSaya);
LanjutkandenganmengujihasilprogramandadenganmenekanF5atauCtrl+Enter,makaandaakanmelihat
tulisanHelloWorldpadaujungkiriatasStageanda.
Lakukanhalserupauntukcontohcontohselanjutnya,yaitutambahkankodeyanginginandajalankandi
dalamlingkupfungsipublicMain().LanjutkandenganmengujiprogramandadenganmenekanF5.
Namavariabelharusmemenuhiaturanaturanberikut:
Hanyaterdiridarihuruf,angka,karkatergarisbawah,dansimbol$.
Tidakdiawalidenganangka
TidaksamadengankatakhususyangsudahdipakaiolehActionScript(reservedword),sepertivar,Sprite,
danlainlain.
Harusunik
Untukpenulisandalampenamaanvariabel,andadapatmenggunakanmodeKataKapital(CamelCase)yang
merupakanprosespenulisanbeberapakatatanpatandaspasinamundenganmengkapitalisasi(menulis
denganhurufbesar)setiapkatapembentuknya,misalnyatextSaya,radiusBola,dantinggiAwalStage.Untuk
tipedatakompleks(movieClip,button,textField)yangadadalamstageyangdibuatdenganAdobeFlashCS3
Profesional,andadapatmendeklarasikannyadenganmenuliskannyapadanamainstan(instancename)pada
bagianpropertiobjeknya.FlashCS3akanmembuatvariabeldengannamasamadengannamainstantersebut.
4.
TipetipeData
ActionScript3.0mempunyaibeberapatipedataprimitifsepertiyangdiberikandalamTabel2.1.Selainitu
ActionScriptjugamempunyaibeberapatipedatakompleksyangdibangundaritipedataprimitifsepertiyang
diberikandalamTabel2.2.Bahkankitabisamembanguntipedatasendiri,dalambahasapemrogramanobjek
seringdikenaldengannamaclassobjek.
Tabel2.1.TipedataprimitifActionScript3.0
TipeData
Pengertian
Contoh
String
Sebuahkarakteratausederet
karakter
vartextSaya:String=HelloWorld,
bisajugaditulisdengan:
vartextSaya:String
textSaya=HelloWorld
Boolean
Hanyabernilaibenar(true)atausalah
(false)
varsudahSelesai:Boolean=true
Number
Bilanganriilpositifdannegatif
varpercepatan:Number=0.01
Int
Bilanganbulatpositifdannegatif
varradiusBola:int=10
(2.147.483.648s.d.2.147.483.647)
Uint
Bilanganbulatpositif
varwarnaBola:uint=0xFF00FF
(0s.d.4.294.967.295)
*
Tipedatasembarang(biasanya
digunakanuntukmenampungdata
yangbelumdiketahuitipenya)
vardataBaru:*=dataSembarang
Tabel2.2.BeberapaTipedatakompleksActionScript3.0
TipeData
Pengertian
Contoh
MovieClip
Sebuahsimbolmovieclip
vartokohSaya:MovieClip=newMovieClip()
Sprite
SebuahSprite
varkotak:Sprite=newSprite()
TextField
Sebuahfieldteksyangbertipe
dynamicataufieldteksyangbertipe
vartulisan:TextField=newTextField()
input(secaradefaultakanbertipe
dynamic)
tulisan.text=TulisanDinamis
SimpleButton
Sebuahsimbolbutton(tombol)
varstart:SimpleButton=newSimpleButton()
Date
Datadalamformattanggal
varultah:Date=newDate()
Array
Larikatauarrayyangdapatmemuat
lebihdarisatunilai
vararrayBilangan:Array=newArray()
arrayBilangan=[2,3,15]
Objek
Strukturdasardarisetiapentitas
vargambar:Objek:newObject
ActionScript.Objekjugamerupakan
gambar.nama=fotoaction
suatubentukvariabelyangbisadiatur
gambar.panjang=600
sendiriuntukmenyimoanberbagai
nilaisebagaialternatifdariArray
Untuktipedatakompleksakanlebihmudahdipahamipadasaatnantikitamemakainya.
Apabilaandamulaibekerjadengankonseppemrogramanberorientasiobjekyangmenggunakanbeberapa
Class,andaperlumenggunakanbeberapakatatambahandidepanvariabelyangmenunjukkanruanglingkup
pengaksesanvariabel,misalnya:
publicvarradiusBola:int
PenjelasanmengenaiClassakandibahasdalambab3,namundemikianruanglingkupvariabeldalam
ActionScript3.0akandiberikandiawalkarenasudahkitabutuhkandalampemrogramandengan
FlashDevelop.ActionScript3.0mendefinisikanempatkatauntukmenunjukkanruanglingkupvariabel(atau
punfungsi/method),yaitu:
5.
Operator
6.
public:dapatdiaksesolehsemuabagiankodedidalamkeseluruhanaplikasi/projecttempatvariabel
didefinisikan
private:hanyadapatdiaksesolehmethod/fungsitempatvariabeldidefinisikan
internal:dapatdiaksesolehsebarangclassyangdidefinisikandalampackageyangsama.
protected:hanyadapatdiaksesolehmethod/fungsitempatvariabeldidefinisikandanclassyangextend
classtempatvariabeldidefinisikan
Aritmetika(+,,*,/).ActionScriptmengakomodasisemuaoperatoraritmetikasesuaidenganaturan
aturanperhitungannya,denganperkaliandituliskandengan*sedangkanpembagiandituliskandengan/.
Modulo(%).ActionScriptjugamengakomodasioperatormodulodengansimbol%,misal:5%3
//menghasilkan2.
Increment(++)dandecrement().ActionScriptdapatmenambahataumengurangi1darisuatubilangan
denganoperatortunggal(++atau),misalnya:
varbilangan:int=10
bilangan++//menghasilkan11
bilangan//menghasilkan10lagi
Operatormajemuk(+=,=,*=,/=,dan%=).ActionScriptmenyediakanoperatormajemukuntuk
mempersingkatpenulisan,misalnya:
varbilangan:int=10
bilangan+=2//artinyasamadenganbilangan=bilangan+2,menghasilkan12
bilangan/=3//artinyasamadenganbilangan=12/3,menghasilkan4
Penggunaanpernyataankondisional
6.1. PernyataanIfdigunakanuntukmengijinkanpemrosesanbagiandariblokActionScripthanyajikakondisi
yangdimintabenar.PernyataanIfmempunyaibentukpenyajiansebagaiberikut:
If(kondisi){
Prosesyangakandikerjakanjikakondisibenar
}
Jikakondisibenar,makaprosesakandijalankan.Silahkanmencobapotonganprogramberikutdalam
FlashDevelopfileDasarAS3anda
publicfunctionMain():void{
varx:Number=2
if(x<3){
trace(xlebihkecildari3)
}
Else{
trace(xlebihbesaratausamadenganxtidakakanditulisapapun)
Andadapatmenggunakanoperatorlogikaataupunperbandingansepertidalamtabel2.3
Tabel2.3.SimbolsimbolyangdigunakanuntukmembentukEkspresilogika
Simbol
Peterangan
Contoh
==
Samadengan
If(a==1){trace(asamadengan1)}
!=
Tidaksamadengan
If(a!=1){trace(atidaksamadengan1)}
<,<=,>,>=
Perbandingan
If(a>=1){trace(alebihbesaratausamadengan1)}
And(&&),atau(||)
Operatormajemuk
If(a=1&&b=2){trace(a=1danb=2)}
6.2. IfElse.PenambahankataElsesebagaitambahblokpernyataanIfberartiprogramakanmengerjakan
blokprogramdidalamblokElsejikakondisididalampengujianIftidakbenar.
If(a==1){
trace(asamadengan1
}
Else{
trace(atidaksamadengan1)
}
6.3. Switchcase.PernyataanSwitchCasedigunakanuntukmengujibeberapakemungkinankondisi.
PernyataanSwitchmemuatvariabelyangakandiuji,sedangkansetiappernyataanCasemenyatakan
kemungkinannilaiuntukmenguji.DiberikanjugapernyataanBreakuntukmencegahpengerjaaninstruksi
intruksiselanjutnya.Perhatikancontohberikutini.
Switch(a){
case1:trace(satu)
case2:trace(dua)
break}
7.
Penggunaankalang(Loop)
7.1. ForPernyataanFordigunakanuntukmengerjakanprosesiterasidalamjumlahtertentu.
for (var i:Number = 0; i < 3; i++) {
trace(i)
} // akan menampilkan 012
7.2. whileProsesdidalamblokWhileakandiujiselamakondisididalampernyataanWhilebenar.
vari:int=0
while(i<5){
trace(i)
i++
}//akanmenampilkan01234
7.3. doWhile.Prosesdidalamblokdowhileminimalakandikerjakansekali,kemudianakandilanjutkan
pengujiankondisididalampernyataanWhile.Prosesakandijalankanberulangkaliselamakondisimasih
benar.
vari:int=0
do{
trace(i)
i++
}while(i<5)//akanmenampilkan01234
8.
BekerjadenganClass
SalahsatukelebihanActionScript3.0adalahdukungannyaterhadappemrogramanmenggunakanclassclass.
Denganpenggunaanclass,andadapatmenerapkankonseppemrogramanberorientasiobjekdalam
pengkodeanprogramanda.Sebuahclassadalahcetakbirudarisebuahobjek.Classmendefinisikanobjek
secarapenuh,meliputidataobjekdanoperasioperasinya.Untukmembuatclassperludiperhatikanbeberapa
halberikutini.
a.
b.
c.
d.
e.
PembuatanClassdalamActionScriptharusdiawalidengansebuahpackage.Sebuahpacketadalahgrup
dariclass(bisahanyasatuclassataubeberapaclass).AndabisajugamenambahkannamaFolderdi
belakangkatapackageyangmenunjukkandirektoritempatandamenyimpanclassanda.Misalnyaanda
bisamembuatclassBolayangakanandataruhdalamfolderlibdenganmanambahkankatalibdibelakang
katapackage
Dokumendariclassharusdisimpandengannamayangsamadengannamadariclass,misalnya
namaClass.as.MisalnyaclassBolayangandabuatharusandasimpandengannamaBola.as
SebaiknyaclassyangandabuatmerujukkeclassyangsudahdimilikiFlash,misalnyaSpriteatauMovie
Clip.GunakantambahankataextendsSpritepadalanjutannamaClassanda,misalnya
publicclassBolaextendsSprite.
Andabisajugamenambahkanvariabeldenganruanglingkuppublic,internalataupunyanglainnyasesuai
kebutuhan.Misalnyaandabisamenambahkanvariabelvariabelyangbersifatpublic,seperti:radiusyang
menunjukkanjarijaribola,warnayangmenunjukkanwarnabola,vxyangmenunjukkankecepatanbola
searahsumbux,danvyyangmenunjukkanbolasearahsumbuy.
Andabisajugamenambahkanmethodberupafungsidenganruanglingkupyangandainginkan.Didalam
fungsi.Salahsatufungsiyangsebaiknyaadaadalahfungsidengannamafungsisamadengannamaclass
anda.JadibuatlahfungsiBoladenganruanglingkuppublicdengammodelpengirimanparametervariabel
radiusdanwarna.
MisalnyaandadapatmembuatclassBolayangandataruhdidalamFolderlibdariprojectDasarAS3.as3proj
denganlangkahberikutini.BukaprojectDasarAS3yangsudahandabuatsebelumnya.Lanjutkandengan
membuatfileclassAS3melaluimenuFileNewAS3Document.Lanjutkandenganmemberinama
dokumenandamelaluimenuFileSaveAs(Ctrl+Shift+S),pilihsubfolderlibdarifolderDasarAS3,berinama
Bola.as.
Misalkanobjekbolaandamempunyaibeberapavariabelyangbersifatpublic,yaitu:radius,vx,danvy
packagelib{//tambahkanfoldertempatandamenyimpanfileBola.asAndajikamenginginkan,
//misalpackagesport{....isiclass.....}artinyaandamenyimpanfileBola.aspadafoldersport
importflash.display.Sprite;
publicclassBolaextendsSprite{
//deklarasivariabelprivateyanghanyaberlakudandigunakandidalamclassBolasaja
privatevarradius:Number;//jarijaribolayangakandibuat
privatevarcolor:uint;//warnabolayangakandibuat
//deklarasivariabelpublicyangberlakudandigunakanolehfileyanglain.
publicvarvx:Number=0;//kecepatanbolasearahsumbuxdenganrumusvx=v*cosq
publicvarvy:Number=0;//kecepatanbolasearahsumbuydenganrumusvy=v*sinq
publicvarv:Number=0;//kecepatanbola
publicvarmassa:Number=0;
publicvarindeks:Number=0;
propertibola
publicfunctionBola(radius:Number=40,color:uint=0xff0000){//pemberiannilaidefault
fungsibola
this.radius=radius;//menyamakanpropertiboladenganparameterinputdari
fungsibola
this.color=color;//menyamakanpropertiboladenganparameterinputdari
graphics.beginFill(color);//mulaimewarnaibola
danjarijari=radius
graphics.drawCircle(0,0,radius);//mulaimenggambarboladenganpusat(0,0)
graphics.endFill();//mengakhirimewarnaibola
}
package
{
publicclass
}
f.
g.
h.
i.
j.
packagenamaFolder{
publicclassnamaClass{
}
}
9.
Fungsi
10. Event,Listener,danEventHandler
SemuainteraksiuserdidalamFlashdikelolaoleheventeventbeberapacontoheventadalah:mouseclick,
mousemove,inputkeyboard,loadingfile,danlainlain.Dalambukuiniakanbanyakmenggunakan
pengaturaneventuntukmendisaininteraksiuser.
DalamActionScript,suatuobjekbisamendengarkan(listen)eventyangterjadipadadirinyadengan
menggunakanmethodaddEventListenerpadaobjektersebut.Methodinimembutuhkanduaargumen,
yaitu:
Eventapayangakandidengarkan,misalnyaMouseEventataupunKeyboardEvent
Fungsiapayangakansayakerjakanapabilasayamendegarkanevent.
Dalamcontohkita,baris:
tombolMulai.addEventListener(MouseEvent.CLICK,tekanTombol);
function tekanTombol(mevt:MouseEvent):void{
ISI FUNGSI
}
Mempunyaimaksudsebagaiberikut:
TomboldengannamainstancetombolMulaiakanmendengarkaneventMouseClick
(MouseEvent.CLICK)
ApabilatombolMulaidiclickdenganmouse,makafungsitekanTomboolakandipanggildan
dikerjakan.FungsitekanTomboldinamakanEventHandler.Sebuaheventhandlerharusberupa
fungsidengansatunilaiinput(misalnyadalamcontohkitaadalahmevt:MouseEvent)dantidak
mengembalikannilaiapaapa(yaitumempunyaitipekeluaranvoid).
berinamalayerpertamasebagaiutama
buatsebuahtextstatisdengantulisan"berapajumlahbolayangandalihat?"
buatsebuahtextboxlagidenganmodeinputTextberinamainstace"txtJawab.namatxtJawabiniyangakankita
gunakandalamkodeprogramsebagaivariabelyangmenunjukketextjawaban
buatsebuahlayerlagiberinamascript.disinilahtempatkitaakanmenempatkankodeprogramdalamactionscript
3.0
tambahkansebuahobjekspritedengannamaspPapansebagaitempatmeanruhbolayangakankitatampilkhan.
buatlahsebuahobjekshapeberbentukpapankotakdenganukuran300x300.taruhlahkotaktersebutdidalam
objekSprite,denganmenjadikanshapetersebutsebagaianakdariSpritespPapan
denganmenuliskanspPapan.addChild(shpKotak)
buatfungsiuntukmembuatbolaberinamafungsibuatBoladenganparameterkyangnantinyamenunjukkpada
bolakek
bangkitkanbilanganrandomrkemudianlakukanloopinguntukmembuatbola
buatTombolOKCekuntukmelihatbenartidaknyajawaban
masukkemenuwindowlibrarycommonbuttonpilihtombolbuttonayngandainginkan,misalnyatombollbulat
arcade,sayapilihclassicbuttonarcadebuttonred.berinamatmbCek(diambildarikatatombolCek)
padabuttontmbCektambahkanaddEvenListeneruntukmendengarkanevent,misalnyamouse.Click,dihubungkan
denganfungsicekJawab,artinyajikatombolinidiklikdenganmousemakaakanmengerjakanfungsicekJawab
dalamfungsicekJawab.lakukanpengujianapakahisidaritxtJawabsamadenganjumlahbola,jikaya,maka
keluarkanpesan
jawabanandabenar.denganmenuliskannyadidalamtextdinamiktxtPesan.
varspPapan:Sprite=newSprite();
spPapan.x=20;
spPapan.y=20;
spPapan.graphics.lineStyle(2,0);
spPapan.graphics.beginFill(0xFFFFFF,0.9);
spPapan.graphics.drawRect(0,0,300,300);
spPapan.graphics.endFill();
stage.addChild(spPapan);
varshpBola:Shape=newShape();
functionbuatBola(k:int):void{
shpBola.graphics.lineStyle(2,0);
varindeksWarna:int;
indeksWarna=k*25+255;
varposisiBola:int;
posisiBola=10+k*25;
shpBola.graphics.beginFill(indeksWarna,0.9);
shpBola.graphics.drawCircle(posisiBola,20,10);
shpBola.graphics.endFill();
spPapan.addChild(shpBola);
varr:int;
r=1+Math.round(Math.random()*9);
for(vari:int=1;i<=r;i++){
buatBola(i);
tmbCek.addEventListener(MouseEvent.CLICK,cekJawab);
functioncekJawab(mevt:MouseEvent):void{
varjawab:int=int(txtJawab.text);
if(jawab==r){
txtPesan.text="AndaBenar";
else{
txtPesan.text="Maaf,Salah";
tmbAcak.addEventListener(MouseEvent.CLICK,acak);
functionacak(mevt:MouseEvent):void{
shpBola.graphics.clear();
r=1+Math.round(Math.random()*9);
for(i=1;i<=r;i++){
buatBola(i);