Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elektra

[Resolvido]Referência ao stage sem usar 'root'

Recommended Posts

Code de um vídeo tutorial para fazer uma transição simples com preloader para arquivo externo.

 

Um movie clip com o efeito (mc_Carrega), frame 1 > alpha 0, frame 10 > preloader e alpha 70, frame 20 alpha 0. Em uma layer abaixo o movie clip container.

 

Action no mc_Carrega:

 

stop();

var carrega:Loader = new Loader();

carrega.load(MovieClip(root).link);

carrega.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, carregando);
carrega.contentLoaderInfo.addEventListener(Event.COMPLETE, completo);

function carregando(evt:ProgressEvent):void {
	var perc:Number = evt.bytesLoaded/evt.bytesTotal;
	barra.scaleX = perc;
	percentual.text = Math.floor(perc*100) + "%";
}

function completo(evt:Event):void {
	MovieClip(root).container.removeChildAt(0);
	MovieClip(root).container.addChild(carrega);
	play();
}

Alguma outra opção para substituir o 'MovieClip(root)' no code?

 

Não aprendi transições de página no curso básico de AS3, nem ouvi falar de root, é o primeiro contato com esse termo bem conhecido no AS2 e em algumas "gambis" no AS3 (mesmo sem saber usar, já vi comentários).

 

Sim, eu li o Help da Adobe para AS3 sobre o root (ainda em grande parte inteligíveis para quem está começando, mesmo em pt_BR).

 

 

A dúvida específica é sobre estas linhas:

 

MovieClip(root).container.removeChildAt(0);
MovieClip(root).container.addChild(carrega);

Serve unicamente para informar que o arquivo anterior foi removido e um novo adicionado ao stage?

 

Alguma outra opção de sintaxe? Possibilidades de transição com preloader sem usar timeline?

Compartilhar este post


Link para o post
Compartilhar em outros sites

MovieClip(root) unicamente faz referência ao stage principal, do mesmo modo que você acessa variáveis e objetos dentro de qualquer outro movieclip, exemplo:

trace(movieTest.texto1);
, imprimindo a variável texto1 que está presente no movieclip "movieTest", do mesmo mode se faz,
trace(MovieClip(root).texto1);
com este você imprime a variável texto1 que está presente no stage principal, outra forma útil é
trace((parent as MovieClip).texto1);
com isso você imprime na tela uma variável que está um movieclip acima. Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigada SSantos. :D

 

Fiz um curso recente de AS3, aprendemos o básico da sintaxe e alguns exemplos (ainda vou ralar pra caramba, com muito amor).

 

Fiz um exercício com carregamento em um Sprite usando uma Classe :

 

recipiente.addChildAt(loader, 0);

 

Em outros exercícios simples sempre usei o "." (ponto) para indicar o caminho dos objetos. Quanto ao carregamento de páginas, dispensava o removeChild.

 

No vídeo tutorial o swf externo é carregado direto no stage, e o action que mencionei fica na timeline interna.

 

Daí a dúvida.

 

Meu interesse é compreender o que estou fazendo. Você ajudou muito. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

 

Grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.