PDA

Просмотр полной версии : Создание компонентов in run-time


Rution
27.12.2007, 08:51
Здраствуйте. Столкнулся с проблемой. Наформе динамически нужно создавать объекты и менять их свой-ва в гриде... создавать объекты получается но как найти имя нового созданного компонента, т.к. если мы обращаемся к неизвестному компоненту, Flex начинает ругаться и говрит что нельзя обратится к неизвестному объекту, раньше помниться в AS2 можно было _root['имя']... Возможно не очень понятно изложил вопрос...:wacko: Заранее спасибо...

baron27
27.12.2007, 13:25
можно задать имя компонента (name) и обращаться из родителя getChildByName(name), можно задать id и делать this[id].

NePridymal
27.12.2007, 18:48
А так чем не подходит? :


var myUIComponent:UIComponent = new UIComponent();

addChild(myUIComponent);

// myUIComponent - вот созданный компонент. В чем проблема то?

Rution
27.12.2007, 23:50
Ну так не подходит потому что в таком виде объект будет описан только лишь внутри функ-ии, а нужно чтобы его сво-ва были видны за пределами функ-ии... а если описывать вне функ-ии, то другая проблемма кол-во компонентов заранее не изветно...
Проблема решилась.... СПАСИБО baron27... он подтолкнул на решение :) Если кому нужно будет потом выложу фрагмент...

etc
28.12.2007, 03:22
Что помешало сохранить ссылку на компонент в поле класса?

Rution
28.12.2007, 04:04
Что помешало сохранить ссылку на компонент в поле класса?
А можно как нить пподробнее... :wacko: уже совсем не соображаююю :(

etc
28.12.2007, 10:44
А, я проглядел про динамическое количество компонентов…
Тогда getChildByName подойдет.

Rution
28.12.2007, 12:00
getChildByName почему-то тоже не олучается... допустим пример, появляется Тext, задаем ему имя 'text1' и id так-же. Вс екомпонент создан, теперь мы решаем изменить его сво-во htmlText, я делаю:
1)getChildByName('text1').htmlText... и начинаются траблы, по понятным причинам, эта функция возвращает объект Display, в принципе если менять полодение, размер, то работает, а вот с такими сво-ами... нет :(((
2) если использовать this['text1'], то почему-то вообще ничего не работает...
ПОМОГИТЕ!!!

Bruiser
28.12.2007, 12:03
(obj.getChilByName('text1') as Text).htmlText= ""

Rution
28.12.2007, 23:41
YES!!!!