2012-03-29 4 views
1

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

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

1046: Type was not found or was not a compile-time constant: Score.

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

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

+1

Мне интересно узнать, что вы делали в течение всего дня со всеми вопросами и т. Д. :) – Marty

+0

Ха-ха, это задание для одного из моих классов, которое я, по общему признанию, ушел слишком поздно, потому что я был слишком занят, делая свой Проект разработки программного обеспечения 100% совершенен. В основном игра-змея в Flash :) –

ответ

2

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

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

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

0

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

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

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

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

MyMovieClip.MyText.text="new text" 
0

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

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

Score.text = "822"; 

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

Смежные вопросы