PDA

Просмотр полной версии : Текст на кнопках


zxcv
18.05.2011, 17:42
Очередной, видимо, нехитрый вопрос )
Создаю класс кнопки Key (я так понимаю, он наследуется от SimpleButton?) с отрисованными состояниями Up, Down & Over, прогоняю ролик - все работает, кнопка нажимается. Далее пытаюсь добавить на кнопку текст с помощью TextField. Итого у меня есть мувиклип KeyBackground и текстовое поле txt на нем, запакованные в кнопку Key. вроде все ОК. Теперь кидаю несколько кнопок на stage и пытаюсь каждой присвоить свой текст, но при изменении текста в одной из них текст в других автоматически меняется на такой же - почему?? это же разные инстансы одного класса Key, разве нет? Такая же фигня с базовыми кнопками. Кто-нибудь может мне подсказать как быть с кнопками? ))

Nemez
18.05.2011, 18:08
Или помещать в библиотеку необходимое число мувиклипов с разными надписями, KeyBackground1, KeyBackground2 и т.д, или в коде
keyBackground1.textField.text = "text1";
keyBackground2.textField.text = "text2";
...

zxcv
18.05.2011, 18:17
и до того и до того я, в принципе, догадался... но как-то это... неправильно штоли? почему один инстанс влияет на другой?
и как быть с готовыми кнопками в таком случае? как программно добраться до текста? есть какое-то общее правило, типа btn.text = "text" или у каждой кнопки по-своему?

alatar
18.05.2011, 18:48
Судя по-всему, вы это проделываете во Flash IDE и пытаетесь редактировать кнопки, просто сделав двойной клик по ним. Соответственно, редактируете вы не инстансы, а базовый компонент.

zxcv
18.05.2011, 18:57
агаа... т.е. кроме как программно их отредактировать никак нельзя? и как все же программно отредактировать стандартные кнопки?

alatar
18.05.2011, 19:00
Стандартные, это какие? Button из пакета fl? Ну так про них все в справке написано.

zxcv
18.05.2011, 19:05
эмм... "стандартные" - это те, што лежат по адресу "Окно-Общие библиотеки-Кнопки" в CS5

Добавлено через 17 часов 41 минуту
аааа... я што-то совсем запутался... вроде программно до самодельных кнопок достучаться получалось, потом што-то изменил в них - в результате при попытке обратиться к тексту trace(myButton.txt.text), где myButton - собственно, кнопка, txt - TextField в ней, пишет, што txt - null... почему?? я уже замучал эту кнопку по-всякому ))
И насчет стандартных кнопок... нашел я тот самый Button из пакета fl - не совсем то, што хотелось, но хоть бы так штоли... можно ли менять размер шрифта, сам шрифт и т.п. в такой кнопке?

Добавлено через 18 часов 3 минуты
ога, я понял: это связано было связано с добавлением состояний кнопки (Up, Down, Over, Hit). Не понял только почему и как быть? )

missbraun86
19.05.2011, 18:00
да, я че-то тоже с кнопками не поняла ниче... как самой сделать кнопку???

zxcv
23.05.2011, 15:22
В общем создаем кнопку, редактируем ее состояния (Up, Down, Over, Hit) и после эти состояния доступны нам:
trace(myButton.upState);
Доступ же к элементам кнопки можно получить след образом:
trace(Sprite(myButton.upState).getChildAt(1));
В моем случае под индексом 1 в кнопке хранится как раз TextField.
Такая же фигня с уже готовыми кнопками.

alatar
23.05.2011, 15:33
Такая же фигня с уже готовыми кнопками.
zxcv, ну неужели было так трудно заглянуть в документацию (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/fl/controls/Button.html#propertySummary), убедиться, что у "стандартной" ("готовой") кнопки, есть свойство label, что бы задать текст. А если уж очень хочется добраться до его TextField, то есть возможность воспользоваться свойством textField, а не дергать детей, в надежде попасть на нужный.

zxcv
23.05.2011, 15:53
эмм... "стандартные" - это те, што лежат по адресу "Окно-Общие библиотеки-Кнопки" в CS5
alatar, ну неужели у этих кнопок есть и label и textField?

Max360
14.06.2011, 19:24
Не знаю, что там у вас работает. И в документацию я также заглядывал. Такая же проблема, создал кнопку возможностями СS5 поместил на слой TLFTextField и не могу к нему получить доступ - никак. Пробовал всеми обговоренными выше вариантами!!!