se usi mx 2004 puoi fare
codice:
this._lockroot = true;
da manuale
codice:
Specificazione di una linea temporale principale per i file SWF caricati
La proprietà ActionScript _root specifica o restituisce un riferimento alla linea temporale principale di un file SWF. Se un file SWF ha più livelli, la linea temporale principale si trova sul livello contenente lo script in esecuzione. Ad esempio, se uno script nel livello 1 valuta _root, viene restituito _level1. Tuttavia, la linea temporale specificata da _root può cambiare se un file SWF viene eseguito indipendentemente (nel proprio livello) oppure è stato caricato in un'istanza di clip filmato da una chiamata loadMovie().
Ad esempio, un file denominato container.swf ha un'istanza clip filmato denominata target_mc nella propria linea temporale principale. Il file container.swf dichiara una variabile denominata userName nella propria linea temporale principale; lo stesso script carica quindi un altro file denominato contents.swf nell'istanza target_mc del clip filmato.
// In container.swf:
_root.userName = "Tim";
target_mc.loadMovie("contents.swf");
Il file SWF caricato, contents.swf, dichiara inoltre una variabile denominata userName nella propria linea temporale principale.
// In content.swf:
_root.userName = "Mary";
Quando il file contents.swf viene caricato nel clip filmato in container.swf, il valore userName associato alla linea temporale principale del file SWF contenitore (container.swf) viene impostata su "Mary". In questo caso può verificarsi un malfunzionamento del codice in container.swf (e contents.swf).
Per imporre a _root la valutazione della linea temporale del file SWF caricato e non dell'effettiva linea temporale principale, usare la proprietà _lockroot. Questa proprietà può essere impostata dal caricamento del file SWF o dal file SWF caricato. Quando la proprietà _lockroot è impostata su true in un'istanza clip filmato, il relativo clip filmato agisce come _root per tutti i file SWF in esso caricati. Quando _lockroot è impostata su true in un file SWF, tale file agisce come proprio elemento principale, indipendentemente da qualsiasi altro file che viene caricato. Qualsiasi clip filmato e qualsiasi numero di clip filmato può impostare _lockroot su true. Per impostazione predefinita, questa proprietà è false.
Ad esempio, l'autore di container.swf può associare il seguente codice al clip filmato target_mc:
// Associato al clip filmato target_mc:
onClipEvent (load) {
this._lockroot = true;
}
In questo modo si garantisce che i riferimenti a _root in contents.swf, o qualsiasi file SWF caricato in target_mc, saranno riferiti alla propria linea temporale e non alla linea temporale effettiva principale di container.swf.
In alternativa, l'autore di contents.swf può aggiungere il seguente codice alla propria linea temporale principale.
// In contents.swf:
this._lockroot = true;
In questo modo si garantisce che indipendentemente dalla posizione in cui viene caricato contents.swf, qualsiasi riferimento a _root punta alla propria linea temporale e non a quella del file SWF contenitore.
Per ulteriori informazioni, vedere MovieClip._lockroot.