2010年6月18日 星期五

Flex4中以mxml tags來使用top_level ActionScript elements

§Flex4中使用top_leveel ActionScript elements
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之間,而是置放於<fx:Declarations></fx:Declarations>Tags之間使用,或是能夠接受top_level項目型別的屬性標籤之間,例如:

<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();
  }
]]>
</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">
       id="int_optput"/>
    </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>
</s:Application>
//測試輸出畫面


不過我想我自己習慣上還是不太會使用到top_level ActionScript elements tags,但是如果只是想測試某各組件特性因該就會蠻樂意用一下。

沒有留言:

張貼留言