開發RIA和使用AS2一段長時間後,我覺得最無謂、最無聊和最花時間就是處理組件和數據之間的交換。首先,在AS2 Class裡,要為組件先聲明為Object的Property一份子,要加入Import的Package。每做一張表單和它的Class.as,就是重覆著做這樣的事情。當表單上組件有增刪時,以上幾處地方又要作出修改。
到從Server得到數據後,在組件上顯示資料時,要一個個非常原始和人工地注入,例如: companyname.text = evtObj.result.companyname; 當提交時又要一個個的從組件上讀回。
一個表單裡,可能有十幾個欄,使用不同組件:TextInput, ComboBox, RadioButton, CheckBox等,每個修改組件資料的參數又不同:text, selected...。
因為這些緣故,使到一個Class File變得十分長,而且太多組件Class File,編譯時間又加長了。
另外,在Usability考慮上,要為表單加上Reset按鈕和/或Clear按鈕,這樣又多了幾十行關於組件設置的程式碼。
有時,我會用卑鄙手段,索性將所有組件放入Movie Clip裡,避了以上繁文縟節。可是,這個數據和組件交換部分,仍然要逐個做,很不便。單是靠DataBinding未必滿足我的需要,所以,我一直都在研究Data/Component Mapping好方法,雖然有點方法是走了出來,但我嫌它不夠壯健(Robust)和廣泛通用(Generic),不知道其他人有什麼高見? |