Flex精華摘要 3:基本語法

javaprogramers發表於2006-05-25

Flex基本語法
絕大多數MXML識別符號合AS2.0規範,MXML檔案編譯產生的SWF檔案包含相應的AS物件。
AS2.0
是一種物件導向的語言,符合ECMAScript4版規範。
MXML檔案的命名規範:

: 必須符合AS的命名規範,以字母或下劃線開頭;
2 : 不得使用AS的類名、元件ID標識和名稱空間的MXML標識作為檔名;
3 : 檔名必須用小寫的.mxml作為字尾名。

 

1


MXML檔案中,元件的屬性使用和AS類相同的命名約定,以小寫字母開頭,每個單詞的開頭字母大寫。你可以有兩種方式設定屬性的值:使用標記的屬性或者子節點標記。Macromedia推薦使用標記的屬性來設定一般元件屬性,複雜的元件屬性用子節點來完成。MXML的元件屬性包含如下:
標量屬性(包括數字及字串)
如:

<Label width='50' height='25' text='Hello World'/>

 

1.

注意:屬性的值不能包含@符號

陣列屬性

 

1. <mx:List>
 

2. <mx:dataProvider>
 

3. <mx:Array>
 

4. <mx:Number>94062</mx:Number>
 

5. <mx:Number>14850</mx:Number>
 

6. <mx:Number>53402</mx:Number>
 

7. </mx:Array>
 

8. </mx:dataProvider>
 

9. </mx:List>

 


指令碼物件
因為指令碼物件比較複雜,所以一般使用子節點的方式來設定屬性的值,如:

<mynamespace:MyComponent>

 

2. <mynamespace:nameOfProperty>

3. <objectType prop1='val1' prop2='val2'/>

4. </mynamespace:nameOfProperty>

5. </mynamespace:MyComponent>

1.



指令碼物件陣列

<mynamespace:MyComponent>

 

2. <mynamespace:dataProvider>

3. <mx:Array>

4. <mynamespace:ListItem label='One' data='1'/>

5. <mynamespace:ListItem label='Two' data='2'/>

6. </mx:Array>

7. </mynamespace:dataProvider>

8. </mynamespace:MyComponent>

1.



XML資料

 

1. <mynamespace:MyComponent>
 

2. <mynamespace:value xmlns:a='http://www.example.com/myschema'>
 

3. <mx:XML>
 

4. <a:purchaseorder>
 

5. <a:billingaddress>
 

6. ...
 

7. </a:billingaddress>
 

8. ...
 

9. </a:purchaseorder>

10.  </mx:XML>

11.  </mynamespace:value>

12.  </mynamespace:MyComponent>

 



樣式屬性
主要進行元件的樣式控制,如

<mx:TextArea id='myText' text='hello world' fontFamily='Tahoma'/>

 

2. //和下面的AS程式碼是等效的

3. myText.text= 'hello world';

4. myText.setStyle('fontFamily', 'Tahoma');

1.



編譯標記
編譯標記並不直接對應AS類或其屬性,主要有:

 

1.  <mx:Binding>
 

2.  <mx:Effect>
 

3.  <mx:Model>
 

4.  <mx:Script>
 

5.  <mx:Style>
 

6.  <mx:Metadata>
 

7.  <mx:operation>
 

8.  <mx:request>
 

9.  <mx:method>

10.   <mx:arguments>

 

注意編譯標記的大小寫

其它注意事項

: id屬性並不是每個MXML標記必須的;
02 : MXML的根標記不支援id屬性;
03 : 布林屬性的值只允許truefalse
04 : 標記必須同時包含sourcedestination屬性,並且不能包含id屬性;
05 : 標記的field屬性是必須的,並且不能包含id屬性;
06 : 標記必須包含wsdl或者serviceName屬性,並且不能同時使用;
07 : 標記必須包含source或者named屬性,並且不能同時使用;
08 : 標記必須包含url或者serviceName屬性,並且不能同時使用;
09 : 標記必須包含name屬性,並且不能包含id屬性;
10 : 標記必須包含name屬性,並且不能包含id屬性。

 

01