應多使用Databinding Classes | (30-11-2003) |
雖然Component v2提供了Databinding Panel,可以方便地、視覺化地控制Databinding,但我認為在製作大型應用程序時,系統中包含了很多Components,如果沒有良好的文檔記錄下,程序的維護是十分困難,往後開發人員難以追蹤那個Component跟那個Component有Databinding,這樣會構成一個不良編程習慣危機。因此,我習慣多用ActionScript編寫Databinding,讓Databinding過程根據系統的狀態而進行,在往後維護更容易追蹤。以下是一個非常簡單的Databinding例子: NumberFormatter.as,在Databinding中作數據自定格式化: class NumberFormatter { // Format a Number, return a String function format(rawValue) { var returnValue; var strArray = new Array('one', 'two', 'three'); var numArray = new Array(1, 2, 3); returnValue = 0; for (var i = 0; i < strArray.length; i++) { if (rawValue == numArray[i]) { returnValue = strArray[i]; break; } } return returnValue; } } databind_try.fla,包括一個NumericStepper和TextInput,NumericStepper改變時,TextInput會顯示NumericStepper的文字化數值(Library中要包括DataBindingClasses): import mx.data.binding.*; var x:NumberFormatter; var customBinding = new Binding({component:stepper, property:"value", event:"change"}, {component:textInput, property:"text"}, {cls:mx.data.formatters.Custom, settings:{classname:"NumberFormatter"}}); [範例] 補充 Databinding Panel只對在Frame 1的Components有效,而且當Components由一個FLA Copy到另一個FLA時,Databinding的設定是不能Copy到另一個FLA!基於以上2點,我更加建議應多使用Databinding Classes。 |
|
本文章由發表。 |
意見 | |
沒有意見。 |
|
同組文章 |