Anda di halaman 1dari 4

Flash 8, XML dan Excel 

2000
“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:

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:

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:

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:

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.

Anda mungkin juga menyukai