Всё как раз продумано, у кнопки есть доступ к дисплей-объектам, реализующим каждое состояние, например
Код AS3:
button.overState// тип DisplayObject
По-идее, если вы туда текст влепили можно скастовать к Sprite, найти там текст-филд и поменять текст
Не уверен, правда, что при переходе между состояниями текст сохранится. Если программно эти состояния назначаешь - всё нормально.
Код AS3:
(button.upState as Sprite).getChildByName("tf").text = "Button";
(button.overState as Sprite).getChildByName("tf").text = "Button";
(button.downState as Sprite).getChildByName("tf").text = "Button";
Update
На самом деле все несколько по-другому:
Код AS3:
button.addEventListener(MouseEvent.CLICK, onButtonClick);
var numClicks:int = 0;
function onButtonClick(event:MouseEvent):void
{
numClicks++;
var newText:String = "Clicks:" + numClicks;
((button.upState as Sprite).getChildAt(1) as TextField).text = newText;
((button.overState as Sprite).getChildAt(1) as TextField).text = newText;
((button.downState as Sprite).getChildAt(1) as TextField).text = newText;
}
Пример (как обратиться к текст-филду по имени, а не по индексу - так и не понял):
button_text_change_example.zip