Flex括號的運用

初學flex時,被裏面四處亂飛的括號弄得有點頭暈,尤其是一些不同於C,Java中用法的地方。碰到

var ac:ArrayCollection = newArrayCollection([{name:"foo",no:0},{name:"bar",no:1}]);

這種兄弟仨一起出場的時候更是無措。

仔細翻了翻文檔,總結一下,順便測試下Easy Google Syntax Highlighter插件:

  • 小括號( ):nothing new,就兩個作用:改變表達式運算順序,小學生都會的東西;傳遞函數參數,傳統用法
  • 大括號{ }:as3 中,兩個作用:代碼塊,還是傳統;實例化Object類的對象(實例),如

    1
    var obj:Object = {id:0,label:"object",date:"2010.6.22"};

    MXML中,用於嵌入內聯的as代碼或數據綁定(其實數據綁定也可以看作as代碼),如

    1
    <!-- code block -->

    2
    <mx:Button label="click to say hello"click="{mx.controls.Alert.show('hello world')}" />

    3

    4
    <!-- data binding -->

    5
    <mx:TextInput id="input" x="10" y="10" width="100" />

    6
    <mx:Text text="{input.text}" x="200" y="10" />

  • 中括號[ ]:as3中,兩個作用:初始化數組,這點與C和Java用{ }不一樣,很多誤讀就是這麼產生的,如

    1
    var arr:Array = ["foo","bar","foobar"];

    插入元數據標籤(metadata tag)如Bindable,Embed,Effect等,最常見的就是用於綁定的Bindable,如

    1
    [Bindable]

    2
    private var arr:Array;

    又如以下代碼在MyComponent組件上定義myClickEvent事件

    1
    [Event(name="myClickEvent", type="flash.events.Event")]

    2
    public class MyComponent extends UIComponent{

    3
    //...

    4
    }

    在MXML中部分元數據標籤可使用<mx:Metadata>標籤插入,(綁定用<mx:Binding>)作用與腳本相同,如以下代碼定義textSelectedColor的樣式

    1
    <mx:Metadata>

    2
    [Style(name="textSelectedColor",type="Number",format="Color")]

    3
    </mx:Metadata>

    關於<![CDATA[ ]]>,這裏的中括號與as3無關,是XML的標準語法,XML解析器會自動忽略CDATA裏的內容,MXML同樣遵守這一規則

  • 尖括號< >:姑且也算吧,沒什麼好說的,定義和關閉標籤,標記語言(markup language)的身份標誌

回頭看第一個例子就很簡單了,最外層的( )爲ArrayCollection的構造函數傳遞參數,ArrayCollection構造函數的參數爲Array數組,這就是[ ]的作用,而該參數數組則包含由{ }實例化的兩個對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章