Ссылка на объект Flex через значение переменной - PullRequest
0 голосов
/ 29 декабря 2011

Можно ли ссылаться на объект, используя значение переменной?Например, у меня есть функция, которая должна скрывать изображение и добавлять это изображение в список инвентаря при нажатии на элемент.Вся информация об изображении хранится в объекте (name, imgSource, visible, x, y);Я думал, что мог бы сделать что-то вроде этого:

<fx:Script>
    <![CDATA[
        public var item:Object = new Object();

        // name, imgSource, xPos, yPos, visible
        [Bindable]
        public var knife:ItemInfo = new ItemInfo('knife','knife.png',50,50,true);

        public function addItem(evnt:MouseEvent):void
        {
            // I want "item" to be equal to the object "knife"
            item = evnt.currentTarget.name;
            item.visible = false;
            inventory.addItem(item.name);
        }
    ]]>
</fx:Script>

<s:Image source="{knife.source}" name="knife" 
         x="{knife.xPos}" y="{knife.yPos}" 
         visible="{knife.visible}"
         click="addItem(event);" />

Я хочу, чтобы «предмет» заменял нож, чтобы я мог сменить knife.visible, knife.xPos, ect.Это возможно, или есть лучший способ сделать это?

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Почему item должно быть Object?Почему он не может быть типа ItemInfo?

Также item = evnt.currentTarget должно работать, если вы хотите, чтобы item ссылался на изображение knife, по которому щелкнули.

Обновление

ToolInfo?или ItemInfo?

В любом случае evnt.currentTarget имеет тип object.Попробуйте привести его к типу ItemInfo.

evnt.currentTarget as ItemInfo

0 голосов
/ 30 декабря 2011

Самый простой способ изменить значения объекта при нажатии - просто передать сам объект в функцию addItem ().Проблема в том, что мне нужно предварительно выбрать, какая переменная входит в функцию и в какое время, но для этого она прекрасно работает.

<fx:Script>
<![CDATA[
    public var item:Object = new Object();

    // name, imgSource, xPos, yPos, visible
    [Bindable]
    public var knife:ItemInfo = new ItemInfo('knife','knife.png',50,50,true);

    public function addItem(item:ItemInfo):void
    {
        item.visible = false;
        inventory.addItem(item.name);
    }
    ]]>
</fx:Script>

<s:Image source="{knife.source}" name="knife" 
     x="{knife.xPos}" y="{knife.yPos}" 
     visible="{knife.visible}"
     click="addItem(knife);" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...