Peta Interaktif

Tutorial Pembuatan Peta Interaktif

Flash 8, XML dan Excel 2000

with 26 comments

“Judgement without collision is ain’t cool…!”

Flash 8 (Actionscript 2.0) sudah menyediakan fungsi built-in untuk membaca dan parsing file XML, tapi bagaimana dengan menambah dan edit data di XML ?

Untuk yang expert di PHP, bisa menggunakan SimpleXML/LibXML. Tapi anda harus menginstall terlebih dahulu Webserver (Apache), sangat tidak efisien apalagi jika anda hanya berurusan dengan data yang sedikit. Pada artikel ini, saya menggunakan Excel 2000 untuk menambah dan memanipulasi data, lalu pertanyaannya kenapa tidak menggunakan Excel 2003? struktur XML Excel 2000 dan 2003 berbeda, jadi saya harus memilih salah satu dari kedua software tersebut, akhirnya setelah saya memantapkan hati, niat tulus, bismilLah, akhirnya saya memilih Excel 2000.

Membuat XML dengan Excel 2000

Buka program Excel 2000, dan ketikkan data seperti gambar di bawah ini:

xml11.gif
Kolom pertama menandakan field “id” dan kolom kedua adalah field “nama”. Setelah itu simpan dokumen excel tersebut dengan tipe file XML Spreadsheet, lihat contoh gambar di bawah ini:

xml2.gif

Simpan file di c:\xml\book1.xml

Harap diingat ketika ingin menjalankan flash, dokumen XML di Excel 2000 harus ditutup.

Membuat Flash Movie

Buka program Flash 8, ketikkan actionscript di frame 1, layer 1 sebagai berikut:
var my_array:Array = new Array();

[as]dataXML = new XML();
dataXML.ignoreWhite = true;
dataXML.load(‘book1.xml’);
dataXML.onLoad = function(success) {
if(success) {
var xml = this.firstChild.childNodes[4].childNodes[0];
var lengthNode = xml.childNodes.length;
for (i=0; i < lengthNode; i++) {
if (xml.childNodes[i].childNodes[0].childNodes[0].firstChild ne “undefined”) {
_root.my_array.push({id:xml.childNodes[i].childNodes[0].childNodes[0].firstChild,
nama:xml.childNodes[i].childNodes[1].childNodes[0].firstChild});
}
}
_root.my_array.sortOn(“id”, Array.NUMERIC);
for(j=0;j < _root.my_array.length;j++) {
_root.cb.addItem({data:_root.my_array[j]["nama"], label:_root.my_array[j]["id"]});
}
}
}[/as]
Kemudian ketikkan actionscript lagi di baris baru:
[as]myListener = new Object();
cb.addEventListener(“change”, myListener);

myListener.change = function(evt){
if (evt.target.value != “0″) {
ta.text = evt.target.value;
}
}[/as]
Setelah selesai, masuk ke lembar kerja, tambah layer baru dengan nama layer: Objek, letakkan layer “objek” ke posisi paling bawah dengan layer-layer lainnya. Masukkan komponen Combobox, ketikkan instance-name “cb”, seperti gambar di bawah ini:

xml3.gif

Setelah itu isikan parameter data di data pertama dengan nilai “0″, dan label “Choose ID ——”, seperti gambar di atas.

Letakkan komponen Textarea di bawah komponen combobox, dan beri instance-name dengan nama “ta”, tentukan paramater editable dengan nilai “false”, seperti gambar di bawah ini:

xml4.gif

Simpan file Flash tersebut di c:\xml\sample.fla, setelah disimpan kita coba jalan flash Movie dengan menekan Ctrl+Enter atau Menu Utama: Control » Test Movie


PEMBAHASAN

Kita mulai dengan kode actionscript pertama:

dataXML.load(“book1.xml”);

script tersebut untuk memanggil file XML dengan nama book1.xml, karena flash movie 1 folder dengan file xml tersebut, jika file xml terdapat di subfolder “database”, maka actionscript yang digunakan adalah:
[as]dataXML.load(“database/book1.xml”);

Kemudian kita tentukan pada urutan ke berapa data berada,

var xml = this.firstChild.childNodes[4].childNodes[0];[/as]
Script diatas adalah script baku jika anda ingin menggunakan file XML yang dibuat dari program Excel 2000. Kemudian data di file “book1.xml” di looping dan dimasukkan ke variabel array,
[as]_root.my_array.push({id:xml.childNodes[i].childNodes[0].childNodes[0].firstChild,
nama:xml.childNodes[i].childNodes[1].childNodes[0].firstChild});[/as]
yang sebelumnya variabel “my_array” harus dideklrasikan terlebih dahulu,
[as]var my_array:Array = new Array();[/as]
Kenapa harus dimasukkan array terlebih dahulu? jawabannya adalah agar kita dapat mensorting urutan data , seperti script dibawah ini,
[as]_root.my_array.sortOn(“id”, Array.NUMERIC);[/as]
Script diatas mensorting data di my_array tepatnya di kolom “id” agar diurutkan secara Numeric/Ascending. Setelah proses pengurutan, data my_array di looping lagi, dan kali ini dimasukkan data-datanya ke komponen combobox, yang sudah kita isikan intance-name dengan “cb”,
[as]for(j=0;j < _root.my_array.length;j++) {
_root.cb.addItem({data:_root.my_array[j]["nama"], label:_root.my_array[j]["id"]});
}[/as]
Combobox memiliki 2 nilai, yaitu data (nilai yang disimpan) dan label (nilai yang ditampilkan).

Untuk kode yang ke 2 adalah berkaitan dengan 2 komponen yang ada di flash Movie, penjelasannya sebagai berikut,

myListener = new Object();

myListener adalah nama variabel yang mewakili Object,
[as]cb.addEventListener(“change”, myListener);[/as]
Script diatas mendeklarasikan fungsi onChange (maksudnya: akan berkerja jika pengguna memilih nilai yang berbeda dari sebelumnya) pada combobox yang akan diproses lebih lanjut oleh myListener,
[as]myListener.change = function(evt){
if (evt.target.value != “0″) {
ta.text = evt.target.value;
}
}[/as]
Setelah pengguna memilih data di combobox, maka fungsi Change pada listener akan melakukan proses di dalamnya, pertama kali memeriksa apakah data pada label yang dipilih bernilai “0″, jika tidak Script menjalankan proses penulisan ke textarea yang akan berisikan nilai sesuai dengan data yang dipilih di combobox.

Selamat Mencoba….., kalau mau download sourcenya, klik disini

Written by jtv

Januari 17, 2007 pada 10:14 am

Ditulis dalam Flash Prof. 8, Teknologi

26 Tanggapan

Subscribe to comments with RSS.

  1. sip banget tulisannya

    Selamat datang di istana kecil saya mas Huda :D

    huda

    Januari 27, 2007 at 4:09 pm

  2. Wah seneng juga ngliat ada yg bermain actionscript :)

    erich

    Februari 4, 2007 at 9:37 pm

  3. bagaimana seandainya data yang ada dalam excel langsung dimunculkan diflash tanpa mengklik tombol? piye mas…..
    matur nuwun…

    Maksudnya? ketika data excel diupdate, data di flash juga berubah secara otomatis ?

    joo

    Mei 26, 2007 at 7:16 pm

  4. maksud saya ketika file flash dibuka.. “sret” data yang di load dari file excel langsung tampil…

    Kalau mas Joo, pasang actionscript di awal script, seharusnya langsung otomatis, dan juga harus diingat, ketika menjalankan flash-movie yang menggunakan XML-Excel, pastikan file tersebut tidak dalam keadaan aktif/buka/open

    oh ya neh mo nanya lagi…
    apa bisa data langsung di-Update dari flashnya tanpa menutup jendela terlebih dahulu.. maksudnya pada file .exe or .swf terdapat jendela Update jadi ngga perlu repot buka file .txt or excel misalnya.. “tengs bagget u/ jawabannya..

    Kalau pertanyaannya bisa atau nggak, ya jawabannya bisa-bisa aja :D , cuman kita perlu perangkat-lunak lainnya, untuk memanipulasi data, seperti PHP, karena PHP berjalan di Web Server, maka kita perlu juga menginstall Web Server (Apache/IIS)

    joo

    Juni 6, 2007 at 5:11 am

  5. Assalamu’alaikum ..
    mau nanya klo, menampilkan 1 tab excel di flash .. bisa pake yg di atas ini .. belum sempet saya coba sih .. tapi kira-kira bisa ga ya? terus tampilannya sama persis dengan yg diexcelnya?

    thanks

    wassalam

    Wa’alaikumsalam… hehehe…kayaknya dicoba dulu aja, nanti kalau ada error, bisa sharing lagi di klanjabrik.com

    mpi

    Juni 15, 2007 at 11:29 am

  6. mas gimana kalau access bisa koneksi ga? kalau bisa tolong dong minta source dan caranya..kalau bisa ke email aku he..he..

    kalau mau koneksi ke access, bisa banyak cara, bisa pake PHP-adoDB, kan bisa akses access juga
    kalau mau koneksi flash ke access bisa pake PHP atau juga ASP.

    WARDOYO

    Juli 13, 2007 at 3:14 pm

  7. saya pingin tau bagaimana kalau flash mx 2004 dikombinasikan dengan xml? xml sebagai databasenya. Trims atas jawabannya:)

    Prinsipnya sama aja, cuman memang ada beberapa syntax dan fungsi yang berbeda, dan itu pun tidak terlalu signifikan, mungkin Yani bisa coba Adobe Flash CS3, untuk query data XML sangat dipermudah

    yani

    Juli 24, 2007 at 7:21 am

  8. mo nanya nih…
    saya lagi bikin quissionare/survey pake flash. User hrs mengisi data diri, kemudian menjawab pertanyaan2 di flash (komputer stand alone, ga pake internet). Nah yg pengen saya tanya, gmana caranya supaya data diri dan jawaban2 si user dapat tersimpan di excel di komputer yg sama?

    maksudnya program dan excelnya 1 komputer atau program dan excelnya beda komputer?

    Ozzie

    Juli 25, 2007 at 5:53 pm

  9. flash ama excelnya yg satu komputer. jadi komputer ini berfungsi seperti information kiosk, di letakan di suatu tempat dan org bebas utk berinteraksi. tolongin dong mas.. buntu nih..

    weleh, lah coba aja source code artikel yang ini…

    Ozzie

    Juli 26, 2007 at 4:05 pm

  10. komputernya offline, ga pake koneksi internet

    Ozzie

    Juli 28, 2007 at 7:47 pm

  11. iya source codenya udah saya coba, tapi yg saya perluin justru kebalikannya mas.. kita inputnya dari flash, lalu disimpan ke excelnya. bisa ngga ya? makasi

    Ooo…Setahu saya, Flash masih memerlukan aplikasi ke-tiga untuk melakukan proses yang diinginkan mas Ozzie, contohnya PHP dan Apache sebagai webserver

    Ozzie

    Juli 31, 2007 at 4:30 pm

  12. waduh.. harus pake aplikasi tambahan ya.. bikin tutorialnya dong mas.. pasti berguna bgt tuh buat byk org. makasi bgt atas info2nya mas.

    ok2, insya Allah, akan saya buatkan untuk minggu depan, tp sebenarnya kalau mas Ozzie cari mesti banyak di Internet.

    Ozzie

    Agustus 1, 2007 at 3:20 pm

  13. Saya udah coba source codenya, tapi waktu saya coba untuk menampilkan semuanya *tanpa combo box* malah g berhasil, yang keluar hanya satu baris tok

    kalau kamu tidak menggunakan combobox, maka kamu tidak perlu menuliskan baris cb listener, dan pada waktu looping array pertama kali ke combobox, harus diganti dengan berikut ini:

    sebelumnya:

    ….
    _root.my_array.sortOn(“id”, Array.CASEINSENSITIVE);
    for(j=0;j<_root.my_array.length;j++) {
    _root.cb.addItem({data:_root.my_array[j]["nama"], label:_root.my_array[j]["id"]});
    }
    ….

    sesudahnya:

    ….
    _root.my_array.sortOn(“id”, Array.CASEINSENSITIVE);
    for(j=0;j<_root.my_array.length;j++) {
    ta.text +=_root.my_array[j]["nama"];
    }
    ….

    mungkin bisa ditampilkan source codenya, biar bisa saya cek, thanks, btw. Excel yang kamu gunakan versi 2000 kan ?

    mpi

    Agustus 6, 2007 at 3:25 pm

  14. alhamdulillah, akhirnya semalam berhasil jg saya coba. Saya pake Ms. Excel 2003 Mas ^_^.
    Hmm.. btw, script buat nambahin panjang textField apa ya? bag yg itu masih belum nemu .. coba tolong di cek ya Mas, ada di Blog saya .. thanks ^ ^

    mpi

    Agustus 7, 2007 at 6:56 am

  15. Coba cek di sini Excel_to_Flash_using_xml_sort_of_ ^__ ^

    Wah keren banggget…. sip2…, brave, outstanding, mudah-mudahan bisa bergunan buat temen2 yang sekarang menggunakan excel 2003…

    mpi

    Agustus 7, 2007 at 7:11 am

  16. btw.. selain cara ini ada cara lain ga buat nampilin excel di flash ? :-/

    Mungkin bisa menggunakan php, php memiliki modul untuk membuat dan membaca file excel

    mpi

    Agustus 8, 2007 at 5:49 pm

  17. apa program flash itu bisa dipakai untuk menyimpan gambar “seprti print screen” ?.. piye… TQ..

    Bisa mas, menggunakan PHP dan GD Library, untuk keterangan lebih lanjut

    Joo

    September 25, 2007 at 2:15 am

  18. artikelnya bagus, cukup jelas, jadi pengen nyoba utak atik flash dan xml :)

    galih

    November 7, 2007 at 4:59 pm

  19. Hmm..sepertinya menarik..lebih mudah..tp bagaimana metode atau script yang harus digu nakan untuk search data, misalnya seperti contoh data di atas, qta menetik 1 lalu dapat menampilkan nama A. bagaimana scriptnya??apa seperti dgn menggunakan php n mysql de ngan script “select * where …”???tolong dijelaskan.
    Thanks. ^_^

    risa, untuk membuat modul search suatu data di flash berbeda dengan mysql. Flash tidak menyediakan fungsi SQL, saya biasanya menggunakan fungsi indexOf(String.indexOfmethod), contohnya sebagai berikut:
    var searchString:String = “Lorem ipsum dolor sit amet.”;
    var index:Number;

    index = searchString.indexOf(“L”);
    trace(index); // output: 0

    index = searchString.indexOf(“l”);
    trace(index); // output: 14

    index = searchString.indexOf(“i”);
    trace(index); // output: 6

    index = searchString.indexOf(“ipsum”);
    trace(index); // output: 6

    index = searchString.indexOf(“i”, 7);
    trace(index); // output: 19

    index = searchString.indexOf(“z”);
    trace(index); // output: -1

    Jika nilai balik / return output sama dengan -1, maka tidak ditemukan teks yang kita inginkan.

    Atau, kamu bisa coba otak-atik component Dataset

    risa

    Februari 12, 2008 at 12:56 pm

  20. hallo!!ketemu lagi!!!hhmm…kok aq bingung ya mas,.maksudnya mengotak-atik component dataset nya itu yg gmn c??tolong dijelaskan lagi.. thanks.. :)

    Risa

    Februari 24, 2008 at 7:09 am

  21. kok gambarnya gak da??

    hendri

    November 8, 2008 at 3:28 am

  22. tolongi gue dong, gue mo buat sistem save dan load game pada flash, nah yang lo bahas diatas bisa dipake untuk load game…
    gimana kalo nilai dari variabel yang dideklarasikan pada action script disimpan ke xml, untuk save game

    prayogo

    Mei 20, 2009 at 10:46 am

  23. mo nanya neh..
    1. gmn cara koneksi flash 8 dengan database acces?
    2. contoh pengguna mdm dalam koneksi flash 8 dengan acces?
    mksh…

    tari

    Mei 22, 2009 at 8:27 am

  24. mo nanya ya?boleh to?
    kalo bikin aplikasi flash dengan database mysql yang dipublish jadi cd interaktif gimana caranya?

    wawan

    Juli 17, 2009 at 6:04 pm

  25. Assalamu’alaikum…
    slm knal..sy mw mnt bantuan..sy bikn aplikasi animasi u/ Tgs Akhir Smester sy,animasi yg sy buat sudh bers tp msh blum smpurna..pdhl Sidang tinggl hitngan hari..T_T
    mslahnya d lmbr krja sy ada bbrpa pmanggilan MovieClip u/pemanggilan SWF galery yg pke xml..
    nah ktka sy panggil SWF A(pke xml) sdh tampil,brarti sukses kan..nah masalahnya tuh pas sy mw manggl SWF B(pke xml)..SWF A tuh malah nimpah tampilan SWF B…
    sy dah cb utak-atik hirarki pemanggilan targetnya..tp tetep,sy dah cb pke pmanggilan SWF-swf yg g pke xml dan itu berhasil tampil kedua2ny..u/ XML ny sy blu mengerti,tp mnurut sy mslahny ada pd xml ny mungkn?
    gmn tu mas?apa bs pecahin masalah pd animasi sy?
    sy harpkan bantuannya..tolng balas k no 085294908451
    mksh byk seblumny..wasssalam…n_n

    Fauzi

    Agustus 6, 2009 at 8:10 am

  26. wewww ni web skripsi ane bgt
    numpang ctrl+d ya mas…
    heheheee

    bodjay

    Oktober 7, 2009 at 2:08 am


Tinggalkan Balasan