Availability : Flash Player 6. [Sample] [Source] Untuk mengerti tutorial ini anda harus mengerti dasar-2 array pada flash termasuk penggunaan fungsi for(statement). Perintah-2 dasar tentang fungsi array dalam flash dapat anda baca pada tutorial saya terdahulu. Untuk memudahkan saya memanfaatkan 3 buah sample flash components yaitu : PushButton, ScrollBar dan ListBox. Bagi yang belum pernah menggunakannya dapat ditemukan dengan CRTL+F7 atau menu : Window > Components.
A. LAYOUT:
Buat Layout seperti gambar di atas dengan mengikuti langkah-2 berikut ini: 1. Buat file barudi flash. File > New
2. Drag PushButton 3X dari Components 3. Edit Components paramater (ALT+F7) utk ketiga button berturut-2 : - Label : Tambah, Cick Handler : tambah - Label : Kurangi, Cick Handler : kurangi - Label : Bersihkan, Cick Handler : bersihkan
4. Drag 1x ListBox dan namai dengan listBuah 5. Buat 1 buah input text dan namai dengan nama jml. 6. Buat 2 buah Dinamic text dan namai masing : display dan total_txt 7. Drag scrollBar dari component dan edit component parameter Target textField : display 8. Atur sedemikian rupa sehingga tampak seperti layout di atas B. SCRIPTING: - Buat layer baru namai dengan actionscript - Pada layer tadi copy script berikut ini : // initial var arr = []; // global array var items = ['Apel','Jeruk','Mangga','Semangka','Durian']; // list buah var harga = [1000, 600, 1300, 4000, 10000]; // list harga var num = 0; // number array // input ke dalam listBox for (var i=0 ; i
0){ var ada = false; // indikator // cek apakah udah ada nama buah dalam array terdahulu for (var i=0 ; i<arr.length ; i++){ if(arr[i][0] == listBuah.getSelectedItem().label){ // lakukan penambahan var jmlTemp = Number(arr[i][1]);
jmlTemp += Number(jml.text); // hapus jumlah yg lama yg terletak pada index array terakhir arr[i].pop(); // tambahkan dengan nilai jumlah yg telah di update arr[i].push(jmlTemp); ada = true; break; } } if(!ada){ num++; arr[num] = []; arr[num].push(listBuah.getSelectedItem().label,jml.text); } } else { // format array : [namabuah,jumlah] // : array[0] = nama buah, array[1] = jumlah arr[num] = []; arr[num].push(listBuah.getSelectedItem().label,jml.text); } // panggil fungsi total utk display hasil total(); } // fungsi pengurangan belanja kurangi = function(){ if(arr.length > 0){ // cek apakah udah ada nama buah dalam array terdahulu for (var i=0 ; i<arr.length ; i++){ if(arr[i][0] == listBuah.getSelectedItem().label){ // lakukan pengurangan var jmlTemp = Number(arr[i][1]); jmlTemp -= Number(jml.text); // hapus jumlah yg lama yg terletak pada index array terakhir arr[i].pop(); // tambahkan dengan nilai jumlah yg telah di update arr[i].push(jmlTemp); // cek total jumlah input pada array ini : array[1] jmlTemp = Number(arr[i][1]); // bila jumlahnya = 0 atau kurang hapus dari global array if(jmlTemp <= 0){ arr.splice(i,1); // ingat lakukan jg pengurangan pada number array num--; } }
} // panggil fungsi total utk display hasil total(); } } // fungsi total belanja untuk display total = function(){ // cek panjang global array if (arr.length > 0){ // init totalbayar var totalBayar = 0; // init / clear display text display.htmlText = ''; total_txt.htmlText = ''; for(var n=0 ; n<arr.length ; n++){ var buah = arr[n][0]; var hg = 0; var jml = 0; var subTotal = 0; // cari harga menurut nama buah for (var j=0 ; jRp. '+hg+' : Rp. '+subTotal+''; } total_txt.htmlText = 'TOTAL BELANJA : Rp. '+totalBayar+''; } else { // reset global array jika panjang array = 0 ; bersihkan(); } }
// fungsi bersihkan array dan layar bersihkan = function(){ arr = []; num = 0; display.htmlText = ''; total_txt.htmlText = ''; } // format text with(display){ border = true; borderColor = 0xCCCCCC; background = true; backgroundColor = 0xEEEEEE; multiline = true; html = true; } with(total_txt){ border = true; borderColor = 0xCCCCCC; background = true; backgroundColor = 0xEEEEEE; multiline = false; html = true; } stop(); - Save Project dan namai dengan shoppingCart.fla Selamat Mencoba Ini hanya versi sederhana jadi sangat mungkin untuk dikembangkan lebih lanjut termasuk integrasi dengan PHP/ASP serta data base.