Ir para conteúdo

POWERED BY:

Arquivado

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

DiegoWebdesigner

[Resolvido] Carregando swf externo em um mc dentro de um mc

Recommended Posts

Bom galera minha dulvida é a seguinte:

tenho um swf que é o principal com palco de 990 x 550

no swf principal tenho 7 botões que ao serem clicados chamam um movie clipe instânciado (painel), só que este muvie clipe instanciado de painel é composto por 7 movieclipes dentro dele, tipo: coloquei os 7 movie clipes um ao lado do outro e criei um movie clipe só que instanciei de painel, e quando clico em algum botão no palco, ele chama o vovie clipe painel para uma determinada localização no palco, x: e y:, tipo desliza no palco para a posição que programei, usei a action abaixo para os botões, até ai tudo bem.

 

on (release)

{

objetivoX = 0;

objetivoY = 0;

codigo.gotoAndPlay("mover");

getURL("", "_level5");

}

então ai vai a minha dulvida:

 

quero carregar swfs externos dentro destes movie clipes dentro do movie clipe painel, os exemplos que encontrei na net

nenhum funcionou, eles carregam o swf externo, mais quando clico em algum botão no palco, ele chama o movie clipe normalmente para a posição que programei, mais o swf externo carregado no inicio continua no palco, abaixo esta a action que usei dentro do movie clipe inicio que fica dentro do movie clipe painel.

 

_root.createEmptyMovieClip("news", _root.getNextHighestDepth());

/*defini a posição do mc criado acima */

_root["news"]._x = 794.8;

_root["news"]._y = 65.5;

/* carrega um determinado arquivo no mc que criamos na primeira linha */

_root["news"].loadMovie("mc_dicas_novo.swf");

 

queria carregar o swf externo dentro do proprio mc que fica a pagina inicio dentro do mc painel, abaixo esta o site pra vcs verem como ta, aguardo respostar, obg galera.

 

http://users.cjb.net/diegocavalcante/index.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro que vai continuar no palco......

 

Você ta carrengando um movie Externo sem ser em MovieClip você ta carregando diretamente no root.

 

Tente carregar ele em um alvo... crie um clip vazio e instancie de alvo e faça assim

 

_root["news"].loadMovie("mc_dicas_novo.swf", alvo);

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

não deu certo, coloquei um novo movie clipe no palco e instanciei de alvo e talz, mais o swf externo continua no palco, pesquisei mais na net e achei uma action que resolvel meu problema, ta aki pra que estiver com a mesma dulvida.

 

createEmptyMovieClip("chamar", 0);

chamar._x = posição desejada;

chamar._y = posição desejada;

loadMovie("arquivo.swf", chamar);

 

é só colocar sua posição em x e y e colocar o nome do seu swf externo, bem simples.

só que me apareceu outra dulvida, como chamar 2 swfs externos em diferentes posições?

obg pela ajuda berseck. pode me ajudar agora com esta dulvida, vlw cara.

 

ahh olha como ficou a action aki.

 

createEmptyMovieClip("chamar", 0);

chamar._x = 794.5;

chamar._y = 65.5;

loadMovie("externo_inicio_dicas_novo.swf", chamar);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom você fez exatamente como eu falei rs :)

 

Só que de outra maneira ;) que bom que achou a solução.

 

 

Para colocar mais de um clip basta criar outros uai

 

var mc1:MovieClip = _root.createEmptyMovieClip("mc1", 1);
var mc2:MovieClip = _root.createEmptyMovieClip("mc2", 2);

mc1._x = 20;
mc1._y = 20;
mc2._x = 80;
mc2._y = 80;

mc1.loadMovie("foto1");
mc2.loadMovie("foto2");

Se não quiser manualmente leia sobre a classe DuplicateMovie()

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo berseck, sua dica resolveu meu problema totalmente, muito obrigado, mais pra funcionar direito tive que adapta-lo.

 

var mc1:MovieClip = createEmptyMovieClip("mc1", 1);

var mc2:MovieClip = createEmptyMovieClip("mc2", 2);

 

mc1._x = 794.5;

mc1._y = 65.5;

mc2._x = 400.0;

mc2._y = 70.0;

 

mc1.loadMovie("externo_inicio_dicas_novo.swf");

mc2.loadMovie("externo_inicio_dicas_anterior.swf");

 

como você mostrou anteriormente a unica diferença é que tirei o _root. e funcionou direitinho,

tipo não sei que há com meu swf principal, eu posso estar em um mc, dentro de outro mc, e de outro mc, e de mais outro mc, mais se eu usar o _root. ele joga o sxf externo no palco.

obg amigo, você é o cara.

acho que agora da pra fechar o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei colocar um preload no proprio sxf externo, ele sozinho funciona, mais quando ele é chamado pela swf principal ele não mostra o preloader e abre logo a animação, como devo proceder?

tem como criar um preloader dentro do swf principal que carregue o swf externo?

aguardo resposta, obg.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Haha você não é o primeiro que me pergunta isso ;)

 

Ta aqui a resposta

link

 

Mas se quiser... da uma estudada na classe MovieClipLoader, loadClip(), onLoadInit(), onLoadProcess(), onLoadComplete() e onLoadStart().

 

Só ler no help do flash mesmo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom Berseck o help do flash é ótimo,

mais um pouco complicado, hehehehe

o link que você me mandou não ta funcionando.

 

tem algum outro link? para esclarecer minha dulvida?

agradeço, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

err sorry :P

 

link

 

é mania de pega permalink e não pega direito :X

 

Ai vai o código

 

Bom para fazer isso será necessária a classe MovieClipLoader();

Com ela podermos fazer o seguinte código:

/Crio minha classe que vai carregar tudo
	var mcl:MovieClipLoader = new MovieClipLoader();
	//Digo que meu campo de texto = 0
	campo = 0+"%";
	//Coloco no array tudo que ele vai carregar
	var fotos:Array = Array('imagens/foto0.jpg','imagens/foto1.jpg','imagens/foto2.jpg','imagens/foto3.jpg','imagens/foto4.jpg','imagens/foto5.jpg');
	//Aqui é o numero da porcentagem carregada
	var pct:Number = new Number();
	var i:Number = new Number();

	//Listener Object
	var listener:Object = new Object();
	//Faço um laço for para começar o carregamento
	function carregar(){
	mcl.loadClip(fotos[i], alvo);
	i++;
	}
	carregar();

	//Crio a função que ao iniciar o arquivo ele vai carregar os arquivos separadamente.
	listener.onLoadProgress = function(alvo:MovieClip,  bytesLoaded:Number, bytesTotal:Number):Void{
	pct = Math.floor((bytesLoaded/bytesTotal)*100);
	campo = pct+"%";
	}

	listener.onLoadInit = function(){
	if(i < fotos.length){
	carregar();
	}
	}

	//Adiciono o listener
	mcl.addListener(listener);
E pronto acabamos de criar um multi loader, ele vai carregar todas as imagens separadamente.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caraca tipo, sou meio iniciante em AS e muitas partes desse código ai pra mim parece grego, dksaodkasds

mais tipo, como adaptar este codigo que você mandou abaixo:

 

/Crio minha classe que vai carregar tudo

var mcl:MovieClipLoader = new MovieClipLoader();

//Digo que meu campo de texto = 0

campo = 0+"%";

//Coloco no array tudo que ele vai carregar

var fotos:Array = Array('imagens/foto0.jpg','imagens/foto1.jpg','imagens/foto2.jpg','imagens/foto3.jpg','imagens/foto4.jpg','imagens/foto5.jpg');

//Aqui é o numero da porcentagem carregada

var pct:Number = new Number();

var i:Number = new Number();

 

//Listener Object

var listener:Object = new Object();

//Faço um laço for para começar o carregamento

function carregar(){

mcl.loadClip(fotos, alvo);

i++;

}

carregar();

 

//Crio a função que ao iniciar o arquivo ele vai carregar os arquivos separadamente.

listener.onLoadProgress = function(alvo:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void{

pct = Math.floor((bytesLoaded/bytesTotal)*100);

campo = pct+"%";

}

 

listener.onLoadInit = function(){

if(i < fotos.length){

carregar();

}

}

 

//Adiciono o listener

mcl.addListener(listener);

 

 

e adapta-lo ao que usei para carregar os meus swfs externos abaixo:

 

var mc1:MovieClip = createEmptyMovieClip("mc1", 1);

var mc2:MovieClip = createEmptyMovieClip("mc2", 2);

 

mc1._x = 794.5;

mc1._y = 65.5;

mc2._x = 400.0;

mc2._y = 70.0;

 

mc1.loadMovie("externo_inicio_dicas_novo.swf");

mc2.loadMovie("externo_inicio_dicas_anterior.swf");

 

 

essa é a minha dulvida, vi outros foruns na web e percebi que todos falam nessa classe MovieClipLoader();

só que to viajando nisso ainda, não sei nem por onde começar.

HELLLLLLLLP.

abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca esses loadMovie ai por Movieclip loader....

 

Pega todo meu código

 

E adiciona o seu... mas em vez de chamar loadMovie("arquivo.jpg", alvo) você vai usar mcl.loadClip("arquivo.jpg", alvo)

 

Onde o mcl é o MovieClipLoader como eu chamo lá

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda não consegui, o preloader não aparece, é o que tenho que fazer realmente, tenho que criar um dinamic text para a porcentagem de carregamento? e um mc vazio pra ser o alvo de onde será carregado o swf externo?

to meio perdido, me ajudemmmmmmmmmmmm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim você precisa de um alvo... MC vazio para chamar os arquivos dentro dele ;)

E tbm precisa de um dynamic text para fazer isso...

 

Bom vou dar uma colaborada ;)

 

//Crio minha classe que vai carregar tudo
	var mcl:MovieClipLoader = new MovieClipLoader();
	//Crio o clip dinamicamente
	var alvo:MovieClip = _root.createEmptyMovieClip("alvo", -1);//O negativo é para que ele fique a baixo das coisas no palco
	//Crio o campo de texto dinamicamente
	var campo:TextField = _root.createTextField("campo", -2, Stage.width/2, Stage.height/2, 30,20);
	//Explicando o código acima, campo é a instancia, -2 o depth, Stage.width/2 é o x centralizado no centro do palco, Stage.height/2 é o y centralizado no centro do palco, 30 é o width do campo de texto e 20 é o height do campo de texto.
	//Digo que meu campo de texto = 0
	campo = 0+"%";
	//Coloco no array tudo que ele vai carregar
	var fotos:Array = Array('imagens/foto0.jpg','imagens/foto1.jpg','imagens/foto2.jpg','imagens/foto3.jpg','imagens/foto4.jpg','imagens/foto5.jpg');
	//Aqui é o numero da porcentagem carregada
	var pct:Number = new Number();
	var i:Number = new Number();

	//Listener Object
	var listener:Object = new Object();
	//Faço um laço for para começar o carregamento
	function carregar(){
	mcl.loadClip(fotos[i], alvo);
	i++;
	}
	carregar();

	//Crio a função que ao iniciar o arquivo ele vai carregar os arquivos separadamente.
	listener.onLoadProgress = function(alvo:MovieClip,  bytesLoaded:Number, bytesTotal:Number):Void{
	pct = Math.floor((bytesLoaded/bytesTotal)*100);
	campo = pct+"%";
	}

	listener.onLoadInit = function(){
	if(i < fotos.length){
	carregar();
	}
	}

	//Adiciono o listener
	mcl.addListener(listener);

Pronto agora criei para você tanto o MovieClip dinamico como o campo de texto.

 

Espero que funcione ;) ai.

 

Para testar, basta colocar em uma pasta imagens o nome das fotos acima... e colocar essa pasta no mesmo lugar onde se encontra o SWF salvo.

 

Abraços

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.