Si cualquier child es "visible" (no es el termino correcto, pero para que te des una idea, agregado al stage) puede ser accedido.
cualquierDisplayObject.stage (si esta agregado al displayList va a devolver una referencia al stage, si es null, significa que el child no esta agregado)
cualquierDisplayObject.root (referencia, en tu caso, al timeline principal, pero tenes que hacer casting a MovieClip, para poder trabajar con el):
MovieClip(cualquierDisplayObject.root)
cualquierDisplayObject.root as MovieClip
O sea, siempre podes acceder al root o al stage desde cualquier DisplayObject:
cualquierDisplayObject.root.stage
cualquierDisplayObject.stage.root
// esta referencia ciclica apunta siempre al mismo objeto
cualquierDisplayObject.stage.stage.stage.stage.stage.stage /// Esto no tiene sentido practico alguno, pero es para que veas las relaciones entre objetos, y las dependencias.
De esto podes deducir que todos esos objetos son o extienden DisplayObject.
DisplayObject es la clase BASE de cualquier objeto que pueda ser agregado al stage (addChild).
----
Entonces, con respecto a tu pregunta, tenes facilmente 2 opciones:
- Usar el DocumentClass, con la clase base que va a "reemplazar" el root timeline principal (necesita extender MovieClip)
- Instanciar alguna clase que sirva como "Manager" (administradora) del timeline en el frame 1.
Código ActionScript :
package{
import flash.display.MovieClip;
public class PlayerTimelineManager extends MovieClip {
public function PlayerTimelineManager(){
trace( this.stage )
addEventListener( Event.ADDED_TO_STAGE, onAdded )
}
private function onAdded(e:Event):void {
// ya tenemos acceso al stage.
trace( this.stage )
/// vamos al frame 3.
this.gotoAndStop(3);
this.play_btn.alpha = 0.5 ;
}
}
Por ejemplo:
Código ActionScript :
// en el FLA, frame 1
var playerTimelineManager = new PlayerTimelineManager( this );
// class PlayerTimelineManager (ponerla en el mismo directorio que el FLA)
package{
import flash.display.MovieClip;
public class PlayerTimelineManager {
public function PlayerTimelineManager( p_mainTimeline:MovieClip ){
_mc = p_mainTimeline ;
// _mc.stage
// _mc.root
// _mc.play_btn.alpha = 0.5 ; // en caso de que tengas un boton con nombre de instancia play_btn, en el frame 1...
// tambien podes moverte por la linea de tiempo, quizas play_btn esta en el frame 3....
_mc.gotoAndStop(3);
_mc.play_btn.y = 10
}
}
}