![]() |
Сделать собственную кнопку
Чёрт, я весь на нервах. Замучали глупые непонятные нелогичные ошибки в этом проклятом AS3! Я нарисовал собственную кнопку, расширение SimpleButton. Задача до боли простая, нужно реализовать кроме самой картинки кнопки, надпись на ней по типу стандартного button.label="тралала"; Я пытаюсь это решить вставив в свой объект кнопки поверх картинки обычный textField, и потом с помощью собственного метода менять свойство text. и естесственно нихрена не получается!
Код AS3:
тут некоторое закоментировано, это я уже испробовал 10001 способ, которые все не дали никакого результата. сами кнопки я руками размещаю на сцене, задача - просто сделать надпись на них. Поначалу вообще чтото непонятное творилось, я вписывал в textField кнопки какой то текст, а при запуске программы кнопка была пустая(без текста), сам не понял что я сделал, но когда в классе кнопки я написал пару методов, стандартный текст начал появляться при запуске, но изменить его никакими способами не получается. Может есть какой то более простой способ сделать надпись на моей кнопке? но желательно конечно сделать так, как я задумал, но ПОЧЕМУ не получается то ? |
а что покажет trace(lbl);
у вас же эти TextField находятся как я понял, в разных кадрах? вот он и будет null, вероятнее всего Их нужно именно три штуки? или достаточно одного? |
Выкиньте SimpleButton в мусорку. Наследуйте свою кнопку от Sprite.
|
да, они находятся в разных кадрах. lbl - в кадре UP, lbl2 - OVER, lbl3 - DOWN. Не обязательно 3 штуки. Просто в каждом кадре у этих текстовых полей разные стили и координаты. я иду по пути наименьшего сопротивления и что бы минимизировать кол-во строк кода максимум делаю на сцене. т.е. я не хочу писать лишних 20 строк что бы задавать стили для текста на кнопке для всех положений кнопки. поэтому я создать заранее 3 поля с разными стилями, задача просто поменять текст в этих полях. И поэтому я пока что хочу сделать всё при помощь SimpleButton а не Sprite, что бы было минимум кода. использование MovieClip и Sprite это уже самый последний безвыходный вариант.
|
Вы мне, а в результате и себе - так и не ответили:
Цитата:
пробуйте так: [IMG]http://i28.***********/big/2011/1112/ed/37b28f0b984fe226089de0f79441eeed.png[/IMG] Добавлено через 3 минуты Если вам и так не устроит, тогда Bgg дело говорит, Sprite будет получше. |
да, trace(lbl) выдаёт null. но в тоже время я не понимаю почему не работает эта конструкция
Код AS3:
|
Потому что иницализации не будет.
это кадры. А кадры зло. Какой результат, если сделать текст одним кадром. Как на картинке выше? |
теперь он ругается Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
|
а я надеюсь имя instance вы указали?
вообще, снова же. Разбираемся в догадках. Дайте код, там и посмотрим. |
да, указал.
Код AS3:
|
| Часовой пояс GMT +4, время: 09:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.