blz?
Se alguem souber de mais coisa que possa acrescentar(ou corrigir),...
O _root no AS2 era a referência da timeline principal. Podemos considerar o _root no AS2 como um "MovieClip".
A estrutura de visualização mudou no AS3. E consequentemente muda o escopo do código.
O root ainda existe no AS3, mas não é mais referência da timeline principal como faz no AS2.
Agora o
root é agora uma propriedade da classe
DisplayObject e ele passa a ser a raiz(o topo) de um objeto visual que está sendo referenciado no momento do acesso.
Em outra palavras, cada objeto visual(ex: MC, Sprite, TextField, Video, Stage etc) tem agora a sua propriedade
root, e conseguimos recuperar a raiz de cada objeto visual.
http://help.adobe.com/en_US/AS3LCR/Flash_1...bject.html#rootUm teste. Coloque esse código no 1° frame e teste:
AS3CÓDIGO
trace( MovieClip(root) ); //retorna [object MainTimeline]
trace( this.root ); //retorna [object MainTimeline]
Agora no exemplo que você passou. Ele declara a variavel privada do tipo Object pra receber qualquer conteúdo, nesse caso ele quer simbolizar a main timeline(o "Stage").
CÓDIGO
var _root:Object;//this will symbolize the main timeline
Depois ele cadastra nessa variavel
_root a raiz do Objeto, que nesse caso é o "stage", a main timeline.
CÓDIGO
_root = MovieClip(root);
Então, toda vez que ele chamar a variavel
_root que ele criou, agora essa variável passa a tar o escopo do stage.
Como essa variável é do tipo Object, ele pode criar propriedades(variaveis) e cadastrar valores.
E pra chamar a propriedade de um variavel do tipo Object, nesse exemplo é:
CÓDIGO
_root.minhaPropriedade
Parece confuso no inicio essa estrutura do AS3, mas com tempo isso faz bastante sentido. Você tem mais controle dos objetos visuais.
O que eu penso que ele parece ter feito no código visualmente falando, é como se ele tivesse simulando a maneira como o AS2 agisse pra fazer escopo com _root mas ainda sim é AS3.
E o mais interessante é que no AS2, tem esse mesmo conceito pra simularmos algo parecido que o root do AS3 faz.
Ex. AS2:CÓDIGO
var root:MovieClip = this; //cadastro minha variavel o "this" pra simular raiz(root) do meu objeto visual
trace(root); //retorna level0
Mas nesse caso o
this é usado pra referir ao objeto atual em questão, pra ser o escopo do código mais "flexível", sendo que o escopo do
_root do AS2 é "travado" apenas para referenciar timeline principal.
Abraço.