![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+6 16.03.11]
Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
|
На сцене лежит кнопка backBtn, внутри этой кнопки тектовое поле textBox (все нарисовано вручную). Почему вызывает ошибку следующая строка:
Ошибка: обращение к возможно неопределенному методу getChildByName через ссылку со статическим типом flash.display: SimpleButton Как мне изменить текст в поле? |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 20
|
класс SimpleButton не наследуется от DisplayObjectContainer, поэтому у него нет такого метода, как getChildByName. А нельзя написать проще, например так
|
|
|||||
|
[+6 16.03.11]
Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
|
ReferenceError: Error #1069: Property textBox not found on flash.display.SimpleButton and there is no default value.
at code::Rules$iinit() at code::MainDocumentClass/showRules() at code::TheGame/onRulesBtnClicked() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не пользуйтесь SimpleButton
![]() |
|
|||||
|
[+6 16.03.11]
Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
|
я тогда должен повторить все стандартные поведения кнопки?
![]() |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 20
|
А использовать просто Button нельзя чтоли?
Добавлено через 1 минуту Как вариант можно написать свой класс, который наследуется от SimpleButton, а уже в нем добавить свойство public var textBox:TextField; Вот так ![]() |
|
|||||
|
[+6 16.03.11]
Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
|
Оригинальный вариант подсказали:
package code { import flash.display.*; import flash.events.MouseEvent; import flash.text.*; public class Rules extends Sprite { public function Rules() { buttonText(backToGameBtn, "Back to the level "); } private function buttonText(simBtn:SimpleButton, strBtn:String):void { var txtArr:Array = []; txtArr[0] = (simBtn.upState as DisplayObjectContainer).getChildAt(1) as TextField; txtArr[1] = (simBtn.downState as DisplayObjectContainer).getChildAt(1) as TextField; txtArr[2] = (simBtn.overState as DisplayObjectContainer).getChildAt(1) as TextField; txtArr[0].text = txtArr[1].text = txtArr[2].text = strBtn; } } } |
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
Если в состояния кнопки добавить клипы или графику, то текстовое поле может уже и не быть на глубине 1
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|