Доступ к SimpleButton TextField - PullRequest
2 голосов
/ 11 мая 2011

Я пытался изменить текст в экземпляре SimpleButton, используя это:

var drawButton:SimpleButton = main.drawButton;
var upButton:DisplayObjectContainer = drawButton.upState as DisplayObjectContainer;
var upButtonText:TextField = upButton.getChildAt(1) as TextField;
upButtonText.text = "Pause";

Я нашел это решение здесь: как я могу изменить тексты в динамических textFields в экземпляре SimpleButton(символ кнопки)?

К сожалению, upButtonText возвращается как ноль.Согласно отладке, upButton имеет 3 детей, поэтому я попытался getChildAt([0-2]), чтобы попытаться получить текст, но не получилось.Также пытался получить его по имени экземпляра, тоже не повезло.Кто-нибудь знает, почему это не работает?

Оцените помощь.

Ответы [ 3 ]

2 голосов
/ 11 мая 2011

Для чужой информации я в первую очередь установил текст TLF на Editable.

Затем я использовал этот код, чтобы получить строку внутри кнопки:

var upState:Sprite = Sprite(drawButton.upState);
var upText:String = TLFTextField(upState.getChildAt(2)).text;

и изменитьтекст: TLFTextField(upState.getChildAt(2)).text = "Paused";

Это определенно работает и проверено.

Спасибо пользователю elekwent за советы.

1 голос
/ 11 мая 2011
package
{
    import flash.display.SimpleButton;
    import flash.display.Sprite;
    import flash.text.TextField;

    public class Test extends Sprite
    {
        public function Test()
        {
            var t:TextField = new TextField();
            t.text = "Play";
            var b:SimpleButton = new SimpleButton(t);
            addChild(b);
            trace(TextField(b.upState).text);
        }
    }
}

Вывод трассировки отображает текстовое свойство TextField.

Ваш подход не работает, поскольку ни классы SimpleButton, ни TextField не наследуют класс DisplayObjectContainer и поэтому не могут использовать методы addChild (), addChildAt () или getChildAt ().

Приведите drawButton.upState к TextField, и вы можете получить доступ к его текстовому свойству следующим образом:

TextField(drawButton.upState).text
0 голосов
/ 06 июня 2011

Этот код работал для меня, когда я пытался добавить текст в SimpleButton: http://snipplr.com/view/8980/as3-creating-a-simplebutton-with-dynamic-text/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...