недопонимание кнопок и текстовых полей - PullRequest
0 голосов
/ 03 февраля 2010

Я немного растерялся. Я сделал символ кнопки, и я поместил текстовое поле под названием «butLabel». эта кнопка заключена в другой мувиклип под названием MainMenu. cbegin - это имя экземпляра, который я дал кнопке. Если я прослежу, как это ....

trace(menu.cbegin);

Он распознает, что cbegin является кнопкой. но если я прослежу это так

trace(menu.cbegin.butLabel);

там написано, что Label - ноль. Ниже показано, как я звоню в меню мувиклипа

var menu = new MainMenu();
trace(menu.cbegin.butLabel);
menu.x = sr.stageWidth/2;
menu.y = sr.stageHeight/2;

Опять же, кнопка работает, но метка внутри кнопки - нет. текстовое поле установлено на динамическое, и я скопировал и вставил имя, которое было в поле имени экземпляра, в мой код. поэтому они должны быть одинаковыми. Я также набирал слово «кнопка» в текстовое поле по умолчанию из библиотеки, и это, кажется, работает нормально, но если я изменяю текстовое поле с помощью кода, это не работает. Любые предложения о том, что происходит ?? Спасибо!

1 Ответ

1 голос
/ 03 февраля 2010

Вот что вы можете сделать, это что-то вроде хакерства.

ПРИМЕЧАНИЕ: Предполагается, что TextField находится на 2-м слое (т.е.слой, созданный при создании SimpleButton.

var menu:MainMenu = new MainMenu();
addChild(menu);

var upStateContainer:DisplayObjectContainer = menu.cbegin.upState as DisplayObjectContainer;
var butLableUp:TextField = upStateContainer.getChildAt(1) as TextField;
butLableUp.text = "Up State";

или в виде одного слоя:

((menu.cbegin.upState as DisplayObjectContainer).getChildAt(1) as TextField).text = "UP State";

Объяснение: Когда Flash компилируется из Flash IDE, всеэкземпляры SimpleButton и их дочерние элементы преобразуются в их базовые типы отображения, такие как Sprites.Даже если у вас есть одно текстовое поле на слое поверх состояний кнопки, которое охватывает все четыре кадра, будет текстовое поле, сгенерированное для каждого из 3 видимых состояний кнопки.Имя экземпляра текстового поля даже не имеет значения и никогда не используется.

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