Membuat Komponen Sederhana
Komponen di Flex bisa dikategorikan menjadi 2 yaitu visual dan non-visual. Komponen visual adalah komponen yang dapat ditampilkan di stage, sedangkan komponen non-visual tidak. Menurut fungsinya, komponen juga dapat dikategorikan menjadi dua, yaitu komponen Controls dan Containers. Komponen bisa dibuat dengan menggunakan/mengembangkan komponen-komponen yang sudah disediakan oleh framework Flex dan menjadikannya sebagai sebuah komponen baru, bisa juga dibuat dengan menggunakan Flash IDE + Flex Component Kit, atau murni dengan ActionScript.
Cara paling mudah untuk mulai belajar membuat komponen adalah dengan menggunakan komponen yang sudah ada untuk membuat komponen baru. Dalam tutorial ini, saya akan memberi contoh bagaimana membuat komponen sederhana dengan memanfaatkan komponen-komponen yang sudah ada antara lain Label dan VBox plus sedikit ActionScript untuk binding. Kalo Anda belum tahu apa itu MXML dan bagaimana cara menggabungkannya dengan ActionScript, silakan baca tutorial Flex yang sudah saya tulis sebelumnya.
Kenapa kita perlu tahu cara membuat komponen? Jawabannya adalah : code reusability, abstraction, encapsulation, dan efisiensi. Lebih dari itu semua, dengan mengetahui cara membuat komponen kita bisa memecah aplikasi yang kompleks menjadi bagian-bagian kecil yang otomatis lebih mudah dikerjakan. Bagian-bagian kecil ini nantinya bisa kita uji baik secara individual sehingga kita bisa mengetahui dan memperbaiki bug lebih awal. Ingat Divide et Impera ?
Bentuk komponen dan struktur dasar aplikasi yang akan kita buat adalah seperti ini :
Setup
Ok, kita mulai dengan membuat komponen. Komponen ini saya beri nama ShortInfo jenisnya adalah MXML Component dan saya simpan di subdirektori bernama components.
Untuk membuat komponen dengan FlexBuilder 3, langkah-langkahnya adalah:
- Buat direktori baru di /src, beri nama "components"
- Klik kanan direktori "components"
- Klik New
- Klik MXML Component
Pada dialog window yang muncul, isikan ShortInfo pada field “Filename”, pilih VBox pada menu dropdown “Based on”, dan tentukan ukurannya. Seperti gambar berikut ini:
Sekarang susunan direktori project kurang lebih seperti ini:
ShortInfo.mxml
Buka ShortInfo.mxml. Anda lihat bentuk dasarnya mirip dengan bentuk file MXML Application, tapi root-nya bukan mx:Application melainkan mx:VBox. Itu berarti komponen ShortInfo adalah turunan dari VBox. Apa itu VBox? Silakan baca link yang sudah saya beri di atas.
Selanjutnya, kita set beberapa properti dari VBox (warna, ukuran, dsb) dan kita tambahkan beberapa built-in komponen, yaitu 5 buah label dan 2 buah HBox.
Perhatikan Binding Expression dalam kode di atas. Binding akan kita gunakan untuk mengeset teks dari label-label tersebut secara dinamis. Untuk itu, kita tambahkan tag mx:Script dan kita tulis kode berikut:
Perhatikan init(). Function ini berfungsi untuk mematikan interaktifitas semua subkomponen yang dimiliki oleh ShortInfo. Kenapa? Karena kita ingin hanya ShortInfo yang bereaksi terhadap MouseEvent. Kita juga bisa mematikan interatifitas masing-masing subkomponen secara individual dengan cara mengeset properti mouseEnabled menjadi false. Silakan baca manual untuk melihat properti apa saja yang dimiliki oleh built-in components.
Kembali ke init(), function ini harus dieksekusi sesaat setelah ShortInfo dan semua subkomponennya dibuat, mirip seperti onLoad() di AS2. Untuk itu kita manfaatkan event bernama creationComplete yang dimiliki oleh semua komponen visual, termasuk VBox sebagai ancestor dari ShortInfo untuk mengeksekusi init(). Jadi kita ubah baris kedua dari ShortInfo menjadi:
Sekarang komponen sudah siap kita gunakan.
Aplikasi
Buka file MXML utama ( dalam sourcecode saya, file ini bernama SimpleMXML.mxml dan berada di direktori /src).
Karena ShortInfo berada dalam direktori /src/components/ , maka sebelum kita bisa menggunakan komponen ShortInfo, kita harus mendefinisikan sebuah xml namespaceuntuk komponen ini. Gimana caranya ? gampang, kita tinggal menulis :
xmlns:[nama namespace yang ingin kita gunakan]="[path dari relatif dari file utama ke direktori komponen].*
Nantinya setiap kali kita ingin menggunakan komponen yang kita buat, maka tag yang harus kita tulis adalah [nama namespace]:[nama komponen]. Mirip seperti tag yang kita gunakan untuk membuat/menggunakan komponen built-in, misalnya mx:Label (mx adalah namespace-nya dan Label adalah nama komponennya).
Setelah kita membuat namespace, maka secara otomatis, FlexBuilder akan mengenalinya, lihat gambar berikut:
Catatan - statemen xmlns:... dst ini serupa dengan statemen import dalam ActionScript
Untuk menggunakan komponen yang telah kita buat, kita tinggal gunakan tag mx:ShortInfo, lalu set properti-propertinya, misalnya seperti ini :
Berikut ini kode SimpleMXML selengkapnya:
Silakan liat demonya di sini. Sourcecode bisa diliat dan didonlod di sini
Oke, sekian dulu tutorial tentang komponen. Semoga bermanfaat. Amin!
Comments [1]
1. Fajar Sylvana , 898 days ago #
Terima kasih Mas, atas Tutorial2nya yg bagus dan berguna. mudah2an bermanfaat dan Barokah.. :)
Commenting is closed for this article.