Установка динамического TextField.text из родительского MovieClip в ActionScript 3 - PullRequest
2 голосов
/ 05 марта 2010

Простой вопрос, который я не могу быстро найти ответ на онлайн - кажется, что это будет в учебниках везде - и, вероятно, это ...

У меня есть MovieClip с динамическим TextField: давайте назовем экземпляр поля txtName. Я хочу на лету установить текстовое поле для txtName, поэтому добавляю небольшой ActionScript (3!), Который делает это легко и просто: txtName.text = "Foo";

Отлично. Теперь, почему это не работает, когда я пытаюсь сделать то же самое из родительского MovieClip, который содержит MovieClip с динамическим текстом? Пример:

Дочерний видеоклип с TextField ActionScript 3 в кадре № 1:

//------
function SetText(str:String):void {
   txtName.text = str;
}
//------

Родительский MovieClip содержит вышеуказанный MovieClip (экземпляр называется movieChild) имеет следующий код ActionScript 3 в кадре № 1:

//------
movieChild.SetText("Hello Child"); // Doesn't work
movieChild.txtName.text = "Hello Child"; // Doesn't work
MovieClip(movieChild).txtName.text = "Blah"; // Doesn't work

Какую простую вещь мне не хватает? Я знаю, что текст в TextField на самом деле устанавливается путем проверки его с помощью трассировки, но на самом деле отображение не меняется.

Готов к смущающему и унизительному ответу.

Эдди

Ответы [ 2 ]

1 голос
/ 05 марта 2010

Простите за глупый вопрос. Я столкнулся с простой проблемой неправильного именования. Не было никакой ошибки, и все следы, которые я сделал, казались правильными, но ничего не менялось.

Корень проблемы заключался в том, что я решил добавить ролловер ролика «HotSpot» и в итоге назвал его тем же, что и текстовый мувиклип. Должен был посмотреть на это немного ближе, прежде чем отправлять.

Я все еще не уверен, почему, хотя это не выдало ошибку. Что касается использования «public», разве это не работает, только когда вы используете внешний файл Actionscript, т. Е. Не действия, непосредственно связанные с временной линией?

Спасибо за ввод!

1 голос
/ 05 марта 2010

Возможно, ваша функция SetText не является общедоступной. Вставьте 'public' перед 'function' и попробуйте еще раз, должно получиться:)

Может быть та же проблема для второй строки, где вы пытаетесь установить ее напрямую; если объявление переменной для вашего текстового поля не является публичным.

...