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


Автор: GwinnBleidd 20.5.2010, 16:06
Осваиваю Flash CS4 и AS3, поэтому вопрос немного нубский.

Создан .fla документ, связанный с .as классом. К этому fla документу добавлен компонент в редакторе (к примеру TextInput).

В конструкторе класса я хочу изменить свойство этого компонента. Вопрос: как это сделать?

Более того, если свойство компонента задать в инспекторе компонентов, а потом попытаться вывести его в конструкторе класса, то не получаю введенного ранее значения. Исходя из этого предполагаю, что или обращаюсь к компоненту неправильно, или в конструкторе класса он еще не проинициализирован. Направьте на путь истинный, плиз, а то в моей книге только чистый AS, без взаимодействия с компонентами




Автор: SoWa 20.5.2010, 17:46
Не делай компонент руками. В конструкторе класса его делай, и будет тебе счастье.
В конструкторе он пока неизвестен, твой компонент.

Автор: GwinnBleidd 20.5.2010, 18:06
SoWa, спасибо за оперативный ответ ))

Цитата(SoWa @  20.5.2010,  15:46 Найти цитируемый пост)
Не делай компонент руками

Т.е. не добавлять компонент мышкой с панели компонентов? ))

Цитата(SoWa @  20.5.2010,  15:46 Найти цитируемый пост)
В конструкторе класса его делай, и будет тебе счастье

Т.е. создавать полностью программно? чтото вроде следующего (вырезка из мануала от Adobe)?:
Код

var nameTi:TextInput = new TextInput();
addChild(nameTi);
nameTi.move(160, 100);
nameTi.setSize(200, 25);


Добавлено через 8 минут и 55 секунд
и еще вопрос вдогонку:
если все-таки хочется обратиться к компонентам, размещенным на .fla документе, то в какой момент времени они становятся доступными? нужно на какое-то событие подписаться?

Автор: SoWa 20.5.2010, 21:41
Цитата(GwinnBleidd @  20.5.2010,  18:06 Найти цитируемый пост)
если все-таки хочется обратиться к компонентам, размещенным на .fla документе, то в какой момент времени они становятся доступными? нужно на какое-то событие подписаться?

Да. На полную загрузку приложения.

Да, полностью программно. И не забывай, куда ты addChild делаешь, а то потеряешь компонент. 

Автор: GwinnBleidd 21.5.2010, 16:12
Цитата(SoWa @  20.5.2010,  19:41 Найти цитируемый пост)
Да. На полную загрузку приложения.

Честно говоря, не нашел в доках соответствующего события (или нашел, но не смог прикрутить)

Сделал так, в конструкторе: 
Код

addEventListener(Event.ADDED_TO_STAGE, AddedToStageHandler); 

а уже в обработчике делаю что мне надо с компонентом. Пока все работает smile 

Критика, советы приветствуются

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