Ir para conteúdo

POWERED BY:

Arquivado

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

_zeh_

Controlar SWF Principal por um swf Externo

Recommended Posts

Seguinte pessoal. Já revirei o GOOGLE e até o forum.

mas não achei nada, talvez por que não tenha nem idéia de qual termo utilizar!

Tenho procurado assim no google = swf externo controlar swf principal

enfim.

Tenho um Swf com um MovieClipe que carrega todo o resto do site.

Mas nos movie clipes tenho botoes, que tem que disparar ações no swf principal.

tudo que encontrei envolve _root e parece ser pra AS2.

 

AS que carrega os swf externos

var carrega:Loader =  new Loader();

/*carregando o arquivo na variavel carrega*/
carrega.load(MovieClip(root).link);


/*verificando os carregamentos*/
carrega.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,carregando);
carrega.contentLoaderInfo.addEventListener(Event.COMPLETE,completa);
/*funcoes de carregamento*/

function carregando(evt:ProgressEvent):void{
	var perc:Number = evt.bytesLoaded/evt.bytesTotal;
	barra.scaleX = perc;
	percentual.text = Math.floor(perc*100) + "%";		
}
function completa(evt:Event):void{
	MovieClip(root).container.removeChildAt(0);
	MovieClip(root).container.addChild(carrega);
	play();
	MovieClip(root).mcCarrega.visible = false;
}

e no meu externo quefoi carregado, to tentando acessar o principal assim?

 

agencia.addEventListener(MouseEvent.CLICK, tela);
function tela(e:MouseEvent):void{
	_level0.mcCarrega.visible = false;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque você ta procurando por AS 2.0 em vez de procurar no AS 3.0 ;)

 

no AS 3.0 você pode usar parent.parent que você acha o root :)

 

Ou faça seu script todo por classes... assim você não precisa se preucupar mto com isso... e vai ter só 1 timeline para controlar e vai poder usar o MovieClip(root) para tudo( que é o equivalente ao root)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque você ta procurando por AS 2.0 em vez de procurar no AS 3.0 ;)

 

no AS 3.0 você pode usar parent.parent que você acha o root :)

 

Ou faça seu script todo por classes... assim você não precisa se preucupar mto com isso... e vai ter só 1 timeline para controlar e vai poder usar o MovieClip(root) para tudo( que é o equivalente ao root)

 

Abraços

 

bom eu procurei para AS3 mas nao encontrei.

não estou querendo trabalhar neste projeto com OO.

 

você recomendar fazer no swqk externo algo como:

 

parent.parent.mcDoPalcoPrincipal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É mais ou menos isso :)

 

Depende muito de quantas camadas... você vai ter carregado antes... para chegar até a timeline...

root é a timeline do swf que você está... ou seja se você estiver na timeline de um clip carregado... se você usar root.parent.nome do clip a ser controlado...

Você deve conseguir voltar ao Loader que carregou esse swf... e por ai vai.

 

Como você quer trabalhar com OO recomendo que aprenda a usar CLASSES e faça tudo por elas... pois elas são as responsaveis pelo OOP :)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você quer trabalhar com OO recomendo que aprenda a usar CLASSES e faça tudo por elas... pois elas são as responsaveis pelo OOP :)

 

na verdade eu não quero trabalhar com OO neste projeto, conheço classe, métodos, atributos objetos pios programo em java e php orientado a objetos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou trabalhando assim:

function tela(e:MouseEvent):void{

//	   e.target.parent.parent.parent.link = new URLRequest("index.swf");
		e.target.parent.parent.parent.MovieClip(root).mcCarrega.gotoAndPlay(2);
}

não programo em actionScript, mas preciso resolver isto! Quem sabe depois desta aventura eu não me aventure em mais uma linguagem? Sou apenas um estagiário sem suporte que foi ordenado a fazer isto, sendo desconsiderado a minha falta de conhecimento na linguagem. Apenas mais um caso onde manda quem pode, e o estagiário tem de resolver tudo, só pq programa php acham que actionscript é igual (desculpa o desabafo)!

 

abaixo um link com os arquivos! (preciso aprender a pescar essa semana, a nadar já aprendi quando me jogaram no rio sem bóia!).

 

Arquivos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom ai você tem que fazer algo assim para carregar um arquivo externo:

var carrega:Loader = new Loader();
function tela(e:MouseEvent):void{
    carregar.load(new URLRequest('carrega.swf'));
    addChild(carregar);
}

Ai você vai carregar o swf externo como quer...

Se você quiser controlar desse swf o principal ai é com a historia do parent.parent que eu falei ;)

 

Abraços

*Obs: bacaninha seu projeto :)

*Obs2: "Manda quem pode, obedesce quem tem juizo e quer continuar recebendo salário no final do mês!"

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.