Я делаю экран выбора уровня, и мне нужно текстовое поле для отображения разных номеров уровней для каждого уровня. Я действительно не понимаю, что я делаю неправильно здесь, но я перейду к тому, что сделал, и разместил соответствующий код.Изменение текстового поля кнопки для цикла
У меня есть класс кнопки (связанный) и внутри символа У меня есть динамическое текстовое поле. У меня есть два класса релевантности: LevelSelectScreen
и LevelSelectButtons
(довольно понятно, что это такое). Я подумал, что было бы очень легко изменить текст, если бы я сделал это внутри класса LevelSelectButtons
, просто сделав levelText.text = "Wanted Text"
, где levelText
- это имя экземпляра для моей кнопки (только текстовое поле поверх моей графики для кнопки). К сожалению, это дает такую общую и досадную ошибку: TypeError: Error # 1009: Не удается получить доступ к свойству или методу ссылки на нулевой объект.
Я пробовал делать то же самое в классе LevelSelectScreen
во время моей петли, но у меня такая же ошибка. Помощь в том, как получить этот levelText для работы, очень ценится! Вот соответствующий код.
LevelSelectScreen
public class LevelSelectButtons extends SimpleButton {
public var levelNumber:int;
public var levelSelectScreen:LevelSelectScreen;
public function LevelSelectButtons(i) {
x = 200;
y = 100 + 50*i;
addEventListener(MouseEvent.CLICK,LevelSelectClicked,false,0,true)
levelNumber = i;
levelText.text = "Level" + i;
}
}
LevelSelectScreen
public class LevelSelectScreen extends MovieClip {
public var levelSelectButtons:LevelSelectButtons;
public var mainMenuButton:MainMenuButton;
public function LevelSelectScreen() {
for (var i:int = 1; i<=2; i++)
{
levelSelectButtons = new LevelSelectButtons(i);
addChild(levelSelectButtons);
}
}
}
Чтобы добавить к этому ответу, SimpleButton - это DisplayObject, но не DisplayObjectContainer и, следовательно, не может содержать другие объекты DisplayObject (например, TextField). Я считаю, что текстовое поле «нарисовано» на th e SimpleButton вместо добавления к нему в качестве дочернего элемента. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/SimpleButton.html – Ohas
Отличный ответ, отлично работает благодаря =) – spaderdabomb