Обновление Flash-текста с помощью ActionScript - PullRequest
1 голос
/ 29 марта 2012

Я хочу иметь счет в нижнем углу моей игры.Я сделал новый слой с именем Score, перетащил текстовую область, преобразовал его в символ и назвал его Score.Затем я установил имя его экземпляра на Score.

Основной класс моей флеш игры называется Main.as.Однако я не могу получить доступ к текстовой области Score, которую я создал в коде.Я получаю эту ошибку:

1046: Тип не был найден или не был постоянной времени компиляции: Score.

Что я пропустил?Как я могу обновить текст в текстовых областях из моего кода?

Редактировать: Забыл упомянуть, что я нажал на кнопку «Экспорт для ActionScript», когда преобразовал его в символ.И это типа MovieClip, если это имеет значение.

Ответы [ 3 ]

2 голосов
/ 29 марта 2012

Когда вы экспортируете символ для ActionScript 3, Flash создает для него класс с заданным именем (то же имя, которое вы использовали и для определения класса, и для экземпляра).

  • Вы получаете этоошибка, потому что вы используете одно и то же имя для class и instace.
  • Вы должны проверить их и использовать разные имена.
  • Я обычно называю свои экземпляры, заканчивающиеся _mc

например, в вашем случае вы должны иметь Score в качестве класса и назвать свой экземпляр score_mc (или просто score строчными буквами S.

0 голосов
/ 29 марта 2012

Не экспортируйте для ActionScript, если вы не собираетесь создавать дополнительную логику для текстового поля (поскольку оно будет иметь свой собственный класс) или хотите динамически добавить его на сцену (через addChild()).

С именем экземпляра Score, попробуйте:

Score.text = "822";

Я предлагаю использовать имена экземпляров в нижнем регистре, чтобы отличаться от CamelCase, используемого для классов.Вышесказанное будет читать более опытным разработчикам как обновление свойства static text в классе Score.

0 голосов
/ 29 марта 2012

Название слоя не имеет значения. Вам нужно установить имя экземпляра вашего динамического текстового поля, а не клип, содержащий его. Также нет необходимости конвертировать его в MovieClip. Создайте текстовое поле на сцене, убедитесь, что оно не статично, присвойте ему имя экземпляра, который вы можете использовать для доступа к нему.

Пример, я сделал мои текстовые поля с именем scoreText_txt

//inside main.as
scoreText_txt.text="new text";

Если вы хотите поместить текстовый файл внутри мувиклипа, вам нужно дать имя как клипу, так и текстовому полю. Затем вы получите к нему доступ, используя.

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