Non è il genere di sistema che uso per gestire i miei lavori, quindi non sono certo al 100% che sia come ti dico, ma... mi pare che root faccia riferimento di volta in volta alla timeline principale dell'swf a cui appartiene, quindi anche se questo viene caricato in un altro clip, avrà sempre la sua root, che non coinciderà con quella del clip principale.

Da un po' io uso una tecnica pressoché infallibile, che consiste nell'uso di una classe "singleton" in cui registro una serie di variabili che mi servono nel corso del filmato. In questo modo, una volta che ho registrato la root principale, non dovrò fare altro che richiamarla dove voglio semplicemente con il nome che ho stabilito.

La classe è molto semplice:

Codice PHP:
package {
    
dynamic public class Register {
        private static var 
instance:Register;
        private static var 
allowInstantiation:Boolean;
        public function 
Register ():void {
            if (!
allowInstantiation) throw new Error("La classe è di tipo singleton, usare il metodo statico Register.getInstance() per ottenerne l'istanza");
        }
        public static function 
getInstance ():Register {
            if (!
instance) {
                
allowInstantiation true;
                
instance = new Register();
                
allowInstantiation false;
            }
            return 
instance;
        }
    }

Va inserita in un file che si deve chiamare "Register.as", da mettere nella stessa cartella del fla che ne fa uso.

All'interno di flash poi la richiameremo in questo modo nel filmato principale:

Codice PHP:
Register.getInstance().main this
E troveremo quella stessa proprietà in ogni filmato che richiameremo dall'esterno:

codice:
import caurina.transitions.*;
gallery.buttonMode = true; 
gallery.mouseChildren = false; 

gallery.addEventListener(MouseEvent.CLICK, carica_foto); 

var main:MovieClip = Register.getInstance().main as MovieClip;
function carica_foto(e:MouseEvent){ 
Tweener.addTween(main.InstanceName_3,{alpha:0,time:1,transition:"easeOutExpo"}) 
}