Это немного зависит от внешнего класса.
Если он расширяет DisplayObject (или любого внука DisplayObject), вы сможете получить доступ к свойству stage, как только оно будет добавлено в список отображения (то есть когда оно добавлено на сцену или любой другой DisplayObjectContainer на дисплее список).
Для прослушивания этого используйте следующий код во внешнем классе:
addEventListener(Event.ADDED_TO_STAGE, AddedToStage);
//...
private function AddedToStage(e:Event):void
{
trace("TextField text" + TextField(stage["textfield"]).text);
}
Если это не displayObject или если он не будет в списке отображения, лучше всего было бы разумно предоставить ему объекты, к которым он должен получить доступ (например, TextField), либо в конструкторе, либо в отдельном вызове метода. ,
Вы можете дать ему ссылку на саму стадию, но это не будет очень общим, если, например, вам нужен класс для манипулирования TextField внутри MovieClip.
Вы могли бы дать при ссылке на TextField с этим кодом:
//In any DisplayObject on the display list (could be inside a MovieClip or on the Stage itself)
var manipulator:MyClass = new MyClass(TextField(stage["textfield"]));
//In the external class
public class MyClass
{
publich function MyClass(txt:TextField)
{
trace("TextField text" + txt.text);
}
}
Имейте в виду, что этот код не проверяет, действительно ли текстовое поле находится там. Вы должны сначала проверить это и выдать правильную ошибку, чтобы упростить отладку.