возможно, вы получите неопределенную ошибку, потому что root не тот, что был раньше.корень теперь является программной основой структуры, этап занял свое место в качестве держателя экранных объектов, и поэтому на него следует ссылаться для добавления дочерних объектов и т. д.
Стадия - это динамическое свойство, которое присваивается только объектам, которыенаходятся в списке отображения.поэтому, если вы создаете этот класс программно, это может вернуть нулевую ошибку, если вы просто измените корень для stage, потому что ему еще не дали ссылку на stage, потому что он не был добавлен в список.попробуйте использовать прослушиватель Event.ADDED_TO_STAGE
, если он не подключен, чтобы быть уверенным, что stage не будет нулевым.
Еще более важно то, почему вы планируете прикреплять вещи к сцене таким образом.как правило, это не замечательная идея, так как сама сцена не будет иметь прямой ссылки на дочерний элемент (хотя вы можете использовать getChildByName или getChildAt) и может вызвать проблемы с потерей ссылок в дальнейшем.попробуйте подумать о добавлении дочернего элемента к текущему пользовательскому интерфейсу или добавлении функции, которая назначит какое-то значение передаваемому ролику, например:
public static const PLAY_THIS:String = "the event to play the mc";
public function RPUserInterface(){
var np:nowplaying = new nowplaying();
addEventListener(Event.ADDED_TO_STAGE, init);
}
public function getClip():nowplaying{
return np;
}
private function init(ev:Event):void{
//If you want it to play immediately, else use mouseEvent etc
dispatchEvent(new Event(PLAY_THIS));
}
на основной временной шкале:
var userInt:RPUserInterface = new RPUserInterface();
userInt.addEventListener(RPUserInterface.PLAY_THIS, addFromThis);
addChild(userInt);
private function addFromThis(ev:Event){
//add a global var ref here if needed.
var clip = (ev.target as RPUserInterface).getClip();
addChild(clip);
}
это может показаться более сложным и бесполезной тратой пространства, но это хорошая практика и намного проще заставить классы взаимодействовать таким образом.Кроме того, гораздо легче изменить на лету позже.