Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago Retondar

[Resolvido] Transição de imagens bem simples

Recommended Posts

Olá, pessoal, tudo certo? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Seguinte, comecei meus estudos de ActionScript, mas não estou conseguindo fazer uma transição simples de imagens.

 

Criei um retângulo, transformei em MovieClip e instanciei de mc_palco.

E fiz isso com dois botões, também, chamando-os de btn_voltar e btn_avancar.

 

Com isso, fiz esse código:

 

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
mc_palco = new MovieClipLoader();
mc_palco.MovieClipLoader.loadClip("imagens");

btn_voltar = function(){
	if(imagens = [0]){
		imagens[3];
	} else{
		imagens--;
	}
}
btn_avancar = function(){
	if(imagens = [3]){
		imagens[0];
	} else{
		imagens++;
	}
}

O que eu quero que faça é o seguinte: carregar a imagem no mc_palco, a princípio não precisa redimensionar, e fazer com que os botões funcionem com seus respectivos comandos.

 

Já verifiquei instancia, pasta, nome das imagens e está tudo "certo". http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

Abraços.

 

----

Edit

----

 

Acho que corrigi alguns erros, mas mesmo assim não funciona.

 

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;
mc_palco = new MovieClipLoader();
mc_palco.loadClip("imagens");

btn_voltar = function(){
	if(imagens = array[0]){
		array[3];
	} else{
		array[i--];
	}
}
btn_avancar = function(){
	if(imagens = array[3]){
		array[0];
	} else{
		array[i++];
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza Thiago

 

tenta assim:

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;
var loader:MovieClipLoader = new MovieClipLoader();
_root.createEmptyMovieClip("mc_palco",9);
loader.loadClip(imagens[i],mc_palco);
btn_voltar = function () {
	if (i>0) {
		i--;
		loader.loadClip(imagens[i],mc_palco);
	}
};
btn_avancar = function () {
	if (i<5) {
		i++;
		loader.loadClip(imagens[i],mc_palco);
	}
};

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom se você tem um movie clip... você tem que indicar o caminho dele...

 

mc_palco.loadClip não funciona sem um MovieClipLoader por trás...

 

E se você tiver um movie clip o caminho teria de ser

 

mcl.mc_palco.loadClip("bla bla", alvo);

 

onde mcl = moviecliploader carregado anterior mente como o Jhony mostrou e o alvo seria um clip alvo dentro do mc_palco...

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pessoal, não deu certo não. http://forum.imasters.com.br/public/style_emoticons/default/cry.gif http://forum.imasters.com.br/public/style_emoticons/default/cry.gif http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

 

Não estou entendo a lógica.

 

Cheguei nisso aqui:

 

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;

mc_palco.loadMovie(imagens[i]);
btn_voltar = function(){
	if(i < imagens.length){		
		mc_palco.loadMovie(imagens[3]);
	} else{
		i--;
	};
};

btn_avancar = function(){
	if(i > imagens.length){		
		mc_palco.loadMovie(imagens[0]);
	} else{
		i++;
	};
};

O "layout" está assim:

 

Imagem Postada

 

Queria que a imagem aparecesse dentro do mc_palco. E os botões com suas respectivas funções.

 

Agradeço desde já a ajuda de vocês. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Forte abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu já disse... pra voce

 

mc_palco é onde você quer que fique um clip dentro

Então trasnforme-o em um movieclip... de um duplo clic dentro dele

crie uma camada e coloque um movie clip vazio instanciado de alvo...

 

Ai la no palco você vai colocar o seguinte código

 

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;

mc_palco.loadMovie(imagens[i]);
btn_voltar = function(){
	if(i < imagens.length){		
		mc_palco.loadMovie(imagens[i],alvo);
	} else{
		i--;
	};
};

btn_avancar = function(){
	if(i > imagens.length){		
		mc_palco.loadMovie(imagens[i],alvo);
	} else{
		i++;
	};
};

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, fiz tudo certinho e mesmo assim não funciona. :angry: Já refiz desde o início, e nada. :blink:

 

Hospedei as imagens e o .fla no RapidShare para darem uma olhada http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://rapidshare.com/files/239023249/ActionScript.rar.html.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

consegui carregar a imagem no mc_palco mas agora não estou conseguindo fazer os botões funcionarem.

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;

mc_palco.alvo.loadMovie(imagens[i]);
btn_voltar = function(){
	if(i < imagens.length){		
		mc_palco.loadMovie(imagens[i],mc_palco.alvo);
	} else{
		i--;
	};
};

btn_avancar = function(){
	if(i > imagens.length){		
		mc_palco.alvo.loadMovie(imagens[i],mc_palco.alvo);
	} else{
		i++;
	};
};

Já tentei de várias maneiras e nada. Vou continuar tentando aqui. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque você ta fazendo errado :)

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;

mc_palco.alvo.loadMovie(imagens[i]);// <----------- aqui você fez correto
btn_voltar = function(){
	if(i < imagens.length){		
		mc_palco.loadMovie(imagens[i],mc_palco.alvo); // <----------- pq aqui você quis inventa e não repetiu la de cima?
	} else{
		i--;
	};
};

btn_avancar = function(){
	if(i > imagens.length){		
		mc_palco.alvo.loadMovie(imagens[i],mc_palco.alvo);// <----------- pq aqui você quis inventa e não repetiu la de cima?
	} else{
		i++;
	};
};

correto é mc_palco.alvo.loadMovie(imagens)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué...

 

Não deu certo.

 

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;

mc_palco.alvo.loadMovie(imagens[i]);
btn_voltar = function(){
	if(i < imagens.length){		
		mc_palco.alvo.loadMovie(imagens[3]);
	} else{
		i--;
	};
};

btn_avancar = function(){
	if(i > imagens.length){		
		mc_palco.alvo.loadMovie(imagens[0]);
	} else{
		i++;
	};
};

Estou tentando aqui, mas nada. :angry:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos aos problemas então :)

 

1) Você colocou as instancias dos botões mas esqueceu de dizer em que ação eles devem ser executados .onPress, .onRelease, .onRollOver, onRollOut... etc

2) Você tem um if else onde deveria ter só um if, pois if valor > 0 decrementa 1 e muda a foto, e if < length - 1 incrementa 1 e muda a foto.

3) Como você ta trabalhando com clips... não recomendo o loadMovie, e já que você ta começando já indico logo o MovieClipLoader() e o loadClip que é bem melhor para trabalhar.

 

Então o resultado das modificações seria assim o código final:

var mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object;

mcl.addListener(listener);

var imagens:Array = new Array("images/img01.jpg", "images/img02.jpg", "images/img03.jpg", "images/img04.jpg");
var i:Number = 0;

mcl.loadClip(imagens[i], mc_palco.alvo);
btn_voltar.onPress = function(){
	if(i > 0){
		i--;
		mcl.loadClip(imagens[i], mc_palco.alvo);
	};
};

btn_avancar.onPress = function(){
	if(i < (imagens.length - 1)){  
		i++;
		mcl.loadClip(imagens[i], mc_palco.alvo);
	}
 };

listener.onLoadInit = function(){
	//trace(mc_palco.alvo._width);
	mc_palco.alvo._x = -mc_palco.alvo._width/2;
	mc_palco.alvo._y = -mc_palco.alvo._height/2;
}

Abraços

 

PS:Veja que tem um trace comentado, quando não conseguir encontrar os erros utilize o trace, para encontrar os problemas com mais fácilidade :) se ele não responder é pq não entrou na função, ou o caminho ta errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, berseck.

 

1) Você colocou as instancias dos botões mas esqueceu de dizer em que ação eles devem ser executados .onPress, .onRelease, .onRollOver, onRollOut... etc

AhoAIhOaihsOAIshOIAhsoIAHsoAIhsoIAHoHSOIasoshoAHo... foi falta de atenção...

 

Vou estudar o código, qualquer dúvida volto a postar.

 

Abraços e valeu pessoal.

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.