前情提要:
「不過,幸好剛開始學Flex,還可以假裝它不存在...」
「Flex基本上就是ActionScript的框架...」
「既然如此,不就是要寫ActionScript嗎?為什麼可以假裝它不存在...」
真相只有一個,因為我們有MXML。
(登!登!新角色登場)
稍微了解WWW歷史發展的人,應該都知道,HTML是為了解決SGML過於複雜而推出的精簡版本,它讓標籤式的語言大為普及起來。
而後來為了更複雜的結構,以及實現讓機器能閱讀文件的理由,XML也出現了。
雖然XML比HTML難一點,但基本上標籤式的基本結構,仍然對於處理資料而言,仍然算簡單。
而MXML,其實就是一種XML語言。
所以當你要寫MXML的時候,就是打開筆記本,依照它的語法打一打,存成xxx.mxml,就可以送去編譯成swf檔了。
到這裡,你大概可以想像MXML的樣子,然而為什麼稱MXML為Flex的靈魂角色呢?
這樣說好了,我們可以說,Flex的強項,就是在建立性感、迷人的UI,就拿現場直擊Flex面貌提供的Mindomo來說,它能建立出宛如Office 2007的look & feel,並且能讓你動態拖拉一些元件,提供直覺的操作方式。
這種操作感,都是過去的Web開發難以辦到或必須花費百分之兩、三百的力氣。
也因此,在Flex的工廠中,必然有許多建造這些UI元素的祕密武器,而這就是MXML工作。
基本上,我們可以把MXML的元素分成兩類,看得到的和看不到的。
看得到的,又可分成兩類,容器與控制項。
容器可以看成是用來協助定位的元素,例如可以將元素水平或垂直對齊的元件,或是像Tab這樣的東西。
控制項則是像按鈕啦、文字輸入框啦這些東西。
看得見的好理解,那肉眼看不見的又是什麼呢?
(想起倪匡的小說《透明光》呀)
其實就是一些資料元件,像是陣列或集合或是建立Web Service的元素;還有一些工具元件,像是資料繫結(data binding)的元件或是可以做到程式中loop效果的反覆元件等。
MXML的元件,大概不脫上述幾類,另外它也能透過屬性來處理一些事件,像是click之後發射炸彈開始炸小財神之類的。
沒有自己實做去時是像看科幻小說一樣"只能想像",想得太多可以做得太少..."時間"多一點或許就可以在"精進一下"咯!
消化消化
謝謝分享