Lanzar una animación, justo después de que acabe otra
Hola amigos,
Estoy intentando hacer una navegación que emul e el efecto de estar viendo cartas o tarjetas o fotos..
las tarjetas estan escalonadas hacia el lado derecho y cuando haces click en una pestaña, las que hay por encima han de desplazarse hacia la izquierda y desvanecerse.
Esto.. lo he logrado.. pero no de una forma escalonada...
Cuando hago click en la tercera pestaña, la primera y la segunda se mueven a la vez hacia la izquierda, y yo lo que quiero es que primero se mueva la primera, y cuando la primera esté en la posición donde empieza a desvanecerse, que se mueva la segúnda hacia esa posición...
Pues no lo consigo! me estoy liando!!! grrr!!! a ver si alguien le puede hechar un visual a este code. Gracias de ante mano!!
<code>#include "lmc_tween.as"
//Variables de entorno
var primerPlano:String = cards[0]; //Variable donde almacenamos el nombre del MC's que se encuentra en primer plano.
var StageWidth:Number = Stage.width; //Ancho del Stage.
var StageHeight:Number = Stage.height; //Alto del Stage.
var proof:Number = 0; //Control de profundidades.
var anchoSolapas:Number = 20; //ancho de la solapa, para hacer click en una sección.
//Arrays
var secciones:Array = new Array('empresa','contacto','galeria','trabajos'); //secciones del site.
var cards:Array = new Array(); //Se almacenará el nombre de los MC's de las secciones que se attachean.
//***********************************************************************************
initialize = function(arr_secciones:Array, arr_cards:Array):Void{
var tmp_nameMC;
for(var i=0;i<arr_secciones.length;i++){
tmp_nameMC = arr_secciones[i]+'_mc';
arr_cards.push(tmp_nameMC);
_root.attachMovie(arr_secciones[i], tmp_nameMC, proof--);
tmp_nameMC = this[tmp_nameMC];
tmp_nameMC._x = (StageWidth/2)+(i*anchoSolapas);
tmp_nameMC._y = (StageHeight/2);
tmp_nameMC.onRelease = function(){
main(this._name);
}
}
delete tmp_nameMC;
}
main = function(nameMC){
//encontramos el elemento que hay que traer al frente en el array.
var index:Number = 0;
for (var i=0;i<cards.length;i++){
if (cards[i]==nameMC){
index = i;
break;
}else{
moveCardsToLeft(this[cards[i]]);
}
}
//trace(nombreMC + ' - posición: ' + index);
}
moveCardsToLeft = function(mcToMove){
this.seguir = false;
trace("MC to move: " + mcToMove);
mcToMove.tween(['_x','_y'],[100,null],2,'easeOutExpo');
mcToMove.tween('_alpha',0,2,'',.6);
mcToMove.onEnterFrame = function(){
if(this.isTweening()){
}else{
this.seguir = true;
delete this.onEnterFrame;
}
}
}
initialize(secciones,cards);
trace("\n\nArray con los MC's --> " + cards);
//Funciones
stop();
</code>
En la función main es donde estoy intentando recrear el movimiento, con ayuda de la función moveCardsToLeft.
Os dejo un link con el .fla.. para que lo podais ver in-action..
http://www.gainmw.com/afh/navegacion03.fla
Mil gracias! ;)
markshock
pero debería iniciar el movimiento usando la clse tween de Macromedia.. no la librería de laco que estoy usando no?
Creo que a parte de ese matiz del onMotionFinished, el code no esta bien planteado...
Seguiré provando.. gracias almost ;)
almostDesign
Échale un ojo a esto:
Tween.onMotionFinished