Ir para conteúdo

POWERED BY:

Arquivado

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

janick

Transição de Imagens via AS

Recommended Posts

Olá,

 

iniciando um tópico sobre um assunto aparentemente já batido, mas que não consigo entender, e nem encontrar nada específico sobre transição de imagens via mudança de contraste.

 

Abri um tópico a muito tempo atrás no Kirupa e um cara me passou este código para estudo:

 

import flash.geom.*; import mx.transitions.easing.Strong; import mx.transitions.Tween;	    var my_ct:ColorTransform = new ColorTransform(1, 1, 1, 1, 255, 255, 255, 0);	    function initTransition(mc:MovieClip):Void {	 setTransform(image_mc); }  function doTransition(mc:MovieClip):Void {	 var redTween:Tween = new Tween(my_ct, "redOffset", Strong.easeOut, 255, 0, 2, true);	 var greenTween:Tween = new Tween(my_ct, "greenOffset", Strong.easeOut, 255, 0, 2, true);	 var blueTween:Tween = new Tween(my_ct, "blueOffset", Strong.easeOut, 255, 0, 2, true);	 	 mc._visible = true;	 	 blueTween.onMotionChanged = function() {				 setTransform(mc);	 }  }  function setTransform(mc):Void {	 var xform:Transform = new Transform(mc);	 xform.colorTransform = my_ct; }	    setTransform(image_mc);  this.onMouseDown = function() {	 doTransition(image_mc); }

Funciona perfeitamente quando se clica o mouse no MC.

 

Só que não estou conseguindo entender como faço para adapta-lo para uma transição de imagens (não precisa nem ser imagem dinâmica, as imagens estarão em MC), e com controle de tempo da exibição da imagem, usando setInterval ou coisa do tipo.

 

Coloquei um arquivo .fla como anexo aqui.

 

Bom é isso, se alguém puder me indicar mais ou menos como fazer, uma lógica para isso, valeu mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe postar novamente,estou estudando mas ainda não conseguindo pensar na lógica para o que quero fazer com o código acima, se alguém puder ajudar agradeço! valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o que você quer fazer exatamente?baixei seu fla, mas ele aparece a imagem e fica branco, só isso!abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe postar novamente,

 

estou estudando mas ainda não conseguindo pensar na lógica para o que quero fazer com o código acima, se alguém puder ajudar agradeço! valeu!

Bom.. demorei mas.. srsr

Faça assim, coloque todos as imagems que você quer que aparecam tudo num frame so.. dae você coloca esse codigo no frame:

 

ACTIONSCRIPT
//variaveis para editar

var myMCs:Array = new Array(image_mc1, image_mc2, image_mc3);

var fotoAtiva = 0;

var intervalo = 2;

//importando classes

import flash.geom.*;

import mx.transitions.easing.Strong;

import mx.transitions.Tween;

 

var my_ct:ColorTransform = new ColorTransform(1, 1, 1, 1, 255, 255, 255, 0);

function doTransition(mc:MovieClip):Void {

 mx.behaviors.DepthControl.bringToFront(mc);

 var redTween:Tween = new Tween(my_ct, "redOffset", Strong.easeOut, 255, 0, 2, true);

 var greenTween:Tween = new Tween(my_ct, "greenOffset", Strong.easeOut, 255, 0, 2, true);

 var blueTween:Tween = new Tween(my_ct, "blueOffset", Strong.easeOut, 255, 0, 2, true);

 mc._visible = true;

 blueTween.onMotionChanged = function() {

  setTransform(mc);

 };

}

function setTransform(mc):Void {

 var xform:Transform = new Transform(mc);

 xform.colorTransform = my_ct;

}

for (i=1; i<=myMCs.length; i++) {

 setTransform(myMCs[i-1]);

}

trocaFoto();

function trocaFoto() {

 if (fotoAtiva == myMCs.length) {

  trace("aa");

  fotoAtiva = 1;

 } else {

  fotoAtiva++;

 }

 trace(fotoAtiva);

 for (a=1; a<=myMCs.length; a++) {

  if (a == fotoAtiva) {

   doTransition(myMCs[a-1]);

  } else {

   setTransform(myMCs[a-1]);

  }

 }

}

id = setInterval(trocaFoto, _root.intervalo*1000);

 

 

Não se esqueça de editar esses valores:

//variaveis para editar

var myMCs:Array = new Array(image_mc1, image_mc2, image_mc3); //instancias dos mcs que vão participar da transição

var fotoAtiva = 0; //não mude isso

var intervalo = 2; //numero de segundos que você quer de intervalo.

 

Espero ter ajudado.

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.