Air / Flex объединяет переменную со свойством - PullRequest
0 голосов
/ 08 апреля 2010

У меня есть три текстовых поля на сцене ID = красный, синий, зеленый, как ключи в моем Автомобили Объект / Массив

<?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, но я не могу прикрепить "tempObj" к ".text", есть ли способ, которым это можно сделать?

1 Ответ

1 голос
/ 08 апреля 2010

По сути, ваш tempObj - это имена свойств объекта cars. Я переименовал его, чтобы поддержать для ясности. Поскольку имена свойств автомобилей совпадают с именами свойств элементов управления 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>
...