Ir para conteúdo

Arquivado

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

Quinhone

[Resolvido] Acessando o root do SWF principal com AS3

Recommended Posts

Pessoal, estou com um problema aqui, já pesquisei tentei e nada.

Tenho um swf principal chamado index.swf e tenho outro swf chamado produtos.swf

 

o produtos.swf é carregado dentro de um alvo, load_mc, que fica no index.swf.

 

no produtos.swf tenho um mc que ao clicar deve dar play na timeline principal do index.swf, ou seja no root do index.swf, mas não estou conseguindo isso.

 

vejam o código:

 

pra carregar o produtos.swf uso esse código:


var load3:Loader = new Loader();
var produtos:URLRequest = new URLRequest("produtos.swf");
load3.load(produtos);

load3.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, pgProdutos );
load3.contentLoaderInfo.addEventListener( Event.COMPLETE, mostraSWF3 );

function pgProdutos( evento:ProgressEvent ):void{
	var carregado = evento.target.bytesLoaded;
	var total = evento.target.bytesTotal;
	var porcentagem = Math.round( carregado / total * 100 );
	perc.text = porcentagem+"% CARREGADOS";
	loader_mc.scaleX = porcentagem / 100;
}

function mostraSWF3( evento:Event ):void{
	produtos_mc.addChild(load3);
	perc.text = "";
	loader_mc.scaleX = 0;
}
stop();

no mc do produtos.swf eu tenho esse código:

 

fluxo_mc.buttonMode = true;
fluxo_mc.mouseChildren = false;

fluxo_mc.addEventListener(MouseEvent.MOUSE_OVER, over);
fluxo_mc.addEventListener(MouseEvent.MOUSE_OUT, out);
fluxo_mc.addEventListener(MouseEvent.CLICK, gotoFluxo);

function over(e:MouseEvent){
	Tweener.addTween(e.target.fundo_mc, {alpha:1, time:.5, transition:"easeOutSine"});
}
function out(e:MouseEvent){
	Tweener.addTween(e.target.fundo_mc, {alpha:0, time:.5, transition:"easeOutSine"});
}

//AQUI NESSA FUNÇÃO QUE É O PROBLEMA /////////////////////////

function gotoFluxo(e:MouseEvent){
	MovieClip(root).pagina = 4;
	MovieClip(root).play();
}
stop();

se eu coloco MovieClip(root).play(); ele dá o play no root do produtos.swf e não no root do index.swf e eu preciso que seja dado o play no root do index.swf

alguém pode me ajudar?

 

Att

 

luis Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que lembro de você, você tb participou da 1º turma de flex+video da egenial? eu tava lá tb =)

 

 

bem sobre o seu problema

 

o ideal seria você usar eventos

 

no produtos.swf, você usaria:

 

 

function gotoFluxo(e:MouseEvent){
     dispatchEvent(new Event("ON_CHAMAR_FLUXO", true))
}
// o 'true' server exatamenta para o evento ser ouvido até chegar no ultimo swf "pai"

e no index.swf:

 

addEventListener("ON_CHAMAR_FLUXO", mostrar );

function mostrar(evento:Event):void{
      pagina = 4;
      play();
}

 

testa ai

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou eu mesmo...

 

Cara não é que funcionou. achei que eu ia sofrer com eventos só no Flex, mas acho que vou sofrer no Flash também hehehe.

 

Meus olhos até lacrimejaram de tanta felicidade.

 

Valeu mesmo Eder... e já vi no google tanta gente sofrendo com esse root.. agora é só felicidade.

 

Att

 

Luis Carlos

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.