_root
è il prefisso che si usa nella sintassi dell'ActionScript, per indicare la timeline principale di un filmato. Per capire il significato, basta fare un parallelo con la struttura del disco fisso di un computer. Se per indicare la posizione della cartella Documenti, il percorso completo è: c:Documenti così per indicare il percorso completo del movieclip "mc" contenuto nella timeline principale, si scrive:
_root.mc
_root
è quindi la radice del filmato, il punto primitivo della gerarchia dei percorsi.
Se due oggetti sono al livello della stessa timeline, che sia quella principale o una secondaria, faranno riferimento l'uno all'altro anche solo con i percorsi relativi. Ma se sono su timeline diverse, è preferibile che si riferiscano l'uno all'altro tramite il percorso completo, che parte appunto dalla _root
Ad esempio: sullo stage ho un movieclip, il cui nome di istanza è "mc", e un pulsante. Per arrestare la riproduzione del movieclip, posso inserire nel pulsante:
on(release){
mc.stop();
}
ma supponiamo ora che il pulsante sia all'interno di un altro movieclip. Il comando precedente non avrà alcun effetto. Per riferirmi a "mc", dovrò scrivere:
on(release){
_root.mc.stop();
}
Quindi, l'utilizzo del percorso completo, con l'indicazione della _root
, mi permette di identificare un oggetto in qualunque posizione si trovi all'interno del filmato.
Ogni filmato ha la sua _root
, e questo su qualunque livello venga caricato. Quindi, la presenza di più livelli, caricati con un loadMovieNum
su un filmato principale, implica la presenza di tante _root
quanti sono i filmati. Per distinguere le _root
, a questo punto, si usa un altro prefisso, _level più il numero del livello.
Se mi voglio riferire al movieclip "mc" che è nella timeline principale di un filmato caricato sul livello 1, il percorso completo sarà:
_level1.mc
Questo tipo di indicazione vale per qualunque livello. Ma se il comando che ha come target "mc", si trova sul livello 1, mi basterà anche scrivere:
_root.mc
Ogni filmato può allora continuare ad usare i comandi riferiti alla propria timeline, tramite il prefisso _root
. Quindi _level0 e _root
coincidono, se siamo sul livello 0. _level1 e _root
coincidono, se siamo sul livello 1.
Un altro esempio per chiarire il concetto. Se voglio sapere quali sono le dimensioni in bytes di un filmato, scriverò, ad esempio:
dimensioni = _root.getBytesTotal();
Se scrivo questo comando nel primo frame di un filmato, "dimensioni" sarà il numero dei bytes totali del filmato stesso. Posso ora caricare questo filmato su qualunque livello, "dimensioni" sarà sempre e comunque i bytes di quel filmato. Se invece scrivo:
dimensione = _level1.getBytestotal();
"dimensione" sarà i bytes del filmato caricato sul livello1, qualunque filmato vi venga caricato, perché _level1 non si riferisce a se stesso, ma al livello 1, indipendentemente dal suo contenuto.
Questa indicazione dimostra la sua utilità, perché rende possibile sviluppare il progetto di un filmato a se stante, per poi poterlo inserire in qualunque livello, senza che i percorsi debbano essere modificati.