Получение дескрипторов динамически генерируемых компонентов Flex - PullRequest
0 голосов
/ 10 ноября 2009

У меня есть приложение Flex, которое ссылается на отдельный файл MXML в качестве шаблона для пользовательского компонента. Я несколько раз динамически создаю экземпляры компонента в моей программе, но мне нужно получить дескриптор, который позволит мне модифицировать этот экземпляр компонента по своему усмотрению.

Я передаю конкретную информацию этому компоненту при создании экземпляра, используя привязываемые публичные переменные в файле MXML компонента. Я добавляю его в основную программу, используя addChild ().

Я хочу обновить индикатор выполнения компонента по мере необходимости, и я хочу удалить его из ящика, в который я добавил его.

Какой самый простой / лучший способ получить переменную, которая даст мне предсказуемый доступ к каждому компоненту, чтобы я мог легко манипулировать компонентами по мере необходимости? Некоторые исследования предполагают созданиеComplete, но я решил, что быстрее спросить, чем пройти через множество различных экспериментов и потерпеть неудачу.

Спасибо за помощь. :)

1 Ответ

2 голосов
/ 10 ноября 2009

Разве вы не можете просто хранить список ваших компонентов в массиве? Предположительно у вас есть ссылка на объект, когда вы создаете их и вызываете addChild () для их родителя. Почему бы просто не поместить их в массив одновременно?

var list_of_controls:Array = new Array();
var new_Object:<yourType>;

new_Object = new <yourType>();
parent.addChild(new_Object);
list_of_controls.push(new_Object);

тогда вы можете добраться до них ...

var my_Object:<yourType>;
for each (my_Object in list_of_controls)
{
    // do something
}

Вы должны были бы убедиться, что правильно распоряжаетесь ими, когда закончите, потому что ссылка в вашем массиве будет сохранять их существование до тех пор, пока они не будут очищены.

Если вы решите, что вместо этого вы хотите использовать getChildren () - что вы могли бы - потратить время на чтение документации, потому что я думаю, что он возвращает новый массив при каждом вызове.

Надеюсь, это поможет.

...