在Flex3中可以使用mxml tags來使用<Array></Array>、<Number></Number>等等top_level ActionScript elements,而這top_level elements項目都是使用,xmlns:mx="http://www.adobe.com/2006/mxml的命名空間,由於並未與視覺組件命名空間做區隔,因此若是在<Application><Application>使用了top_level elents容易與視覺元件混在一起,一方面覺得使用起來能將非視覺元件標籤直接放於視覺元件標不合理,一方面也覺得很混亂,而我自己習慣上不會去使用top_level tags的用法,但是若想測是一個組件的特性這時的top_level tags到是蠻方便的。
在Flex4中top_level elements tags設計得更合理了,這些tags是置於xmlns:fx="http://ns.adobe.com/mxml/2009"命名空間,明顯的與spark、mx來做出區隔,並且無法直接放於顯示組件tags之間
<s:List>
<s:dataProvider>
<s:ArrayCollection>
<fx:String>小蝴蝶</fx:String>
</s:ArrayCollection>
</s:dataProvider>
</List>
- 注意<s:dataProvider>開頭是小寫,小寫代表property或是method。
以下是一些top_level ActionScript elements的操作測試:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955"
minHeight="600"
applicationComplete="main(event)"
>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import spark.layouts.HorizontalLayout;
protected function mian(event:FlexEvent):void
{
int_optput.text = String(tag_int);
number_optput.text = String(tag_number);
boolean_optput.text = tag_boolean.toString();
ar0_optput.text = tag_Array[0].toString();
ar1_optput.text = tag_Array[1].toString();
}
{
int_optput.text = String(tag_int);
number_optput.text = String(tag_number);
boolean_optput.text = tag_boolean.toString();
ar0_optput.text = tag_Array[0].toString();
ar1_optput.text = tag_Array[1].toString();
}
]]>
</fx:Script>
<fx:Declarations>
<fx:int id="tag_int">10</fx:int>
<fx:Number id="tag_number">3.1416</fx:Number>
<fx:Boolean id="tag_boolean">true</fx:Boolean>
<fx:Array id="tag_Array">
<fx:int>1000</fx:int>
<fx:int>2000</fx:int>
</fx:Array>
</fx:Declarations>
<mx:Form>
<mx:FormHeading label="這是關於Flex4中以MXML Tags,使用Top_level成員的測試" fontSize="12" color="0x0033CC"/>
<mx:FormItem label="int is">
</mx:FormItem>
<mx:FormItem label="number is">
<s:Label id="number_optput"/>
</mx:FormItem>
<mx:FormItem label="boolean is">
<s:Label id="boolean_optput"/>
</mx:FormItem>
<mx:FormItem label="Array[0] is">
<s:Label id="ar0_optput"/>
</mx:FormItem>
<mx:FormItem label="Array[1] is">
<s:Label id="ar1_optput"/>
</mx:FormItem>
</mx:Form>
不過我想我自己習慣上還是不太會使用到top_level ActionScript elements tags,但是如果只是想測試某各組件特性因該就會蠻樂意用一下。
沒有留言:
張貼留言