2010-04-08 21 views
0

我在舞臺上的ID三個文本框=紅,藍,綠相同的鑰匙,我 汽車對象/數組空氣/ Flex的串聯一個變量與屬性

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/halo" creationComplete="carsToBox()"> 
    <fx:Script> 
     <![CDATA[ 
      public function carsToBox():void{ 

       var cars:Object={red:"300zx",blue:"Skyline",green:"Supra"}; 
        for(var tempObj:String in cars) 
        { 
         tempObj.text= cars[tempObj]; 
        } 
      }  
     ]]> 
    </fx:Script> 

    <s:TextInput x="65" y="53" id="red"/> 
    <s:TextInput x="64" y="88" id="blue"/> 
    <s:TextInput x="64" y="118" id="green"/> 
</s:WindowedApplication> 

所以我想「tempObj.text」會等於red.text,但我不能用「.text」來粘貼「tempObj」,有沒有辦法做到這一點?

回答

1

基本上你的tempObj實際上是汽車對象的屬性名稱。爲了清晰起見,我將其重命名爲prop。由於汽車的屬性名稱與textInput控件的屬性名稱相同,因此您可以使用該名稱,如下所示:

<?xml version="1.0" encoding="utf-8"?> 
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/halo" creationComplete="carsToBox()"> 
     <fx:Script> 
      <![CDATA[ 
       public function carsToBox():void 
       { 

        var cars:Object={red:"300zx",blue:"Skyline",green:"Supra"}; 
        for(var prop:String in cars) 
        { 
         this[prop].text = cars[prop] 
        } 
       }  
      ]]> 
     </fx:Script> 

     <s:TextInput x="65" y="53" id="red"/> 
     <s:TextInput x="64" y="88" id="blue"/> 
     <s:TextInput x="64" y="118" id="green"/> 
    </s:WindowedApplication>