Как получить доступ к динамическому текстовому полю на сцене из класса документа - PullRequest
0 голосов
/ 02 сентября 2010

Я пытаюсь получить доступ к текстовому вводу, который я уже разместил на сцене (внутри фрагмента ролика), но безуспешно.

Я определил имя экземпляра для этого динамического текстового поля, которое равно currentUserCount

У меня есть что-то вроде этого в файле действий скрипта класса документа:

package {

    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;

    public class myProject extends Sprite {

        public function myProject() {
            // Trying stuff like
            trace(currentUserCount);
            trace(movieClipName.currentUserCount);
            trace(root.currentUserCount);
        }
    }
}

Что мне не хватает?

Когда я запускаю это, я получаю:

1120: Access of undefined property currentUserCount.
1120: Access of undefined property movieClipName.
1119: Access of possibly undefined property movieClipName through a reference with static type flash.display:DisplayObject.
1120: Access of undefined property currentUserCount.

Ответы [ 3 ]

1 голос
/ 05 сентября 2010

Если у всех видеоклипов на сцене был один и тот же вложенный клип внутри, вы также можете просто ссылаться на внутренние клипы следующим образом:

for (var i=0; i<stage.numChildren; i++){
  var mc = stage.getChildAt(i)
  mc.subClip.play()
}
0 голосов
/ 03 сентября 2010

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

Я думал, что имена экземпляров являются частью глобального пространства имен.

Итак, я делал что-то вроде:

myMovieClip.play();

когда я должен был делать:

mainMovieClip.subMovieClip.myMovieClip.play();
0 голосов
/ 03 сентября 2010

Убедитесь, что у MovieClip и TextField есть имена экземпляров в вашем .fla файле.

// MovieClip instance name: mc;
// Textfield instance name: tf;

Тогда в вашем классе документов:

package {

    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;

    public class myProject extends Sprite {

        public function myProject() {
            mc.tf.text = "Text you wanna see";
            trace(mc.tf); // [Object TextField]
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...