Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > Генерация имени переменной


Автор: Ant0ha 29.8.2011, 17:00
Есть несколько элементов MXML с именами "element_1", "element_2", "element_3" и тд. Как мне в AS сгенерировать имя переменной с меняющимся числом?

К примеру, в php я могу сделать это так:

Код

<?php

$i = 2;

$var_name = "element_" . $i;

$$var_name->foo = 1;


т.е. я присвоил значение 1 свойству foo объекта $element_2

Как подобное реализовать в actionscript?

Автор: nilrem 30.8.2011, 02:00
Во первых необходимо создать динамический объект в котором будет содержаться переменная, например :
var obj:Object = {}; // эквивалент new Object();
Далее создаем в нем необходимую переменную:
obj["item"+n] = 123;
Где n ваш индекс.

Но это плохая практика, as3 типезированный язык и более правильно создать модель данных, отдельный объект в котором заранее прописаны все переменные, а после парсить XML в него. В данном случае подойдет обычный массив, либо, что еще лучше, Вектор. - типизированный массив.

Автор: SoWa 30.8.2011, 08:28
Действительно, лучше создать объект, у которого будет поле name, и вот его выставлять.

Автор: Ant0ha 30.8.2011, 08:31
Спасибо, кстати, для mxml не плохо подходит и такой вариант:

Код

var i:int = 2;
var elementName:String = "element_" + String(i);

this[elementName].visible = false;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)