Comunidad de diseño web y desarrollo en internet online

Cargar un MC al Finalizar una animacion a la inversa

Citar            
MensajeEscrito el 23 Oct 2007 10:35 pm
Saludines, mi poblema esta en que tengo un menu con 6 botones, cada uno de ellos carga de un solo MC un swf correspondiente. La cosa esta en que quiero hacer una transicion entre cada swf cargado al hacer click en su btn correspondiente aplicando un script que me reprodusca el swf actual de manera inversa. Cuando la animacion inversa termine, entonces carga el swf correspondiente al ultimo click hecho en uno de los btns.

///////////////////////////////////////////////////////////////////////////////////////
este es el script colocado dentro de la instancia "menu_mc":
#include "as/mover_frames.as"
var defaultPage = "";
var contenido = 0;
//var miframe = 1;

function loadPage(defaultPage) {


switch (defaultPage) {


case "INICIO" :
contenido = "inicio";
inicio.gotoAndStop(2);
quienes_somos.gotoAndStop(1);
servicios.gotoAndStop(1);
productos.gotoAndStop(1);
nuestros_trabajos.gotoAndStop(1);
contacto.gotoAndStop(1);

break;

case "QUIENES_SOMOS" :
contenido = "quienes_somos";
inicio.gotoAndStop(1);
quienes_somos.gotoAndStop(2);
servicios.gotoAndStop(1);
productos.gotoAndStop(1);
nuestros_trabajos.gotoAndStop(1);
contacto.gotoAndStop(1);
break;

case "SERVICIOS" :
contenido = "servicios";
inicio.gotoAndStop(1);
quienes_somos.gotoAndStop(1);
servicios.gotoAndStop(2);
productos.gotoAndStop(1);
nuestros_trabajos.gotoAndStop(1);
contacto.gotoAndStop(1);
break;

case "PRODUCTOS" :
contenido = "productos";
inicio.gotoAndStop(1);
quienes_somos.gotoAndStop(1);
servicios.gotoAndStop(1);
productos.gotoAndStop(2);
nuestros_trabajos.gotoAndStop(1);
contacto.gotoAndStop(1);
break;

case "NUESTROS_TRABAJOS" :
contenido = "nuestros_trabajos";
inicio.gotoAndStop(1);
quienes_somos.gotoAndStop(1);
servicios.gotoAndStop(1);
productos.gotoAndStop(1);
nuestros_trabajos.gotoAndStop(2);
contacto.gotoAndStop(1);
break;

case "CONTACTO" :
contenido = "contacto";
inicio.gotoAndStop(1);
quienes_somos.gotoAndStop(1);
servicios.gotoAndStop(1);
productos.gotoAndStop(1);
nuestros_trabajos.gotoAndStop(1);
contacto.gotoAndStop(2);
//mover(miframe);
break;

default :
break;
}
trace("frame = "+miframe);
//mover(miframe);
_root.contenido_mc.loadMovie(contenido+".swf");
trace("frame = "+miframe);
trace("Cargando: "+contenido);

}


///////////////////////////////////////////////////////////////
y este es el del #include as/mover_frames.as

function mover(frame) {
frame = Number(frame);
if (frame>_currentframe) {
lado = "der";
} else {
lado = "izq";
}
function mueve() {
if (frame<>_currentframe) {
if (lado == "izq") {
prevFrame();
} else {
nextFrame();
}
} else {
clearInterval(inte);
}
updateAfterEvent();
}
inte = setInterval(mueve, 10);
}

/////////////////////////////////////////////////////////////////
dentro de cada btn tengo algo como esto segun sea su caso:
on (release){
_parent.loadPage ("INICIO");
}



como notaran soy mal programador, aun asi si hay alguien q pueda sugerirme algo se lo agradesco de antemano. Saludines

Por nikesyntes

5 de clabLevel



Genero:Masculino  

Merida Yucatan

firefox
Citar            
MensajeEscrito el 24 Oct 2007 04:14 pm
Lo que yo te sugiero es que tires a la basura todo tu codigo, y lo sustituyas por este, colocandolo en el primer fotograma de tu pelicula principal (o mejor dicho, en el primer fotograma donde se encuentren los botones y el movieclip contenido_mc):

Código :

_global.NuevoClip = null;
arrBtns = [inicio, quienes_somos, servicios, productos, nuestros_trabajos, contacto]; // sin comillas
//--------------------------------------------------------------------------------------
ReproduccionInversa = function () {
   Fotograma = _root.contenido_mc._currentframe - 1;
   if (Fotograma < 1) {
      // cuando termina la reproducción inversa, carga el nuevo SWF
      _root.onEnterFrame = null;
      _root.contenido_mc.loadMovie(_global.NuevoClip + ".swf");
   } else {
      // si no ha terminado la reproducción inversa, sigue regresando un fotograma
      _root.contenido_mc.gotoAndStop(Fotograma);
   }
}
//--------------------------------------------------------------------------------------
ClickBtn = function () {
   _global.NuevoClip = this._name; // guarda el nombre del ultimo boton presionado
   // desmarca todos los botones
   for (i=0; i < arrBtns.length; i++ ) _root.arrBtns[i].gotoAndStop(1);
   this.gotoAndStop(2); // marca el boton presionado
   // inicia reproducción inversa del clip cargado actualmente
   _root.onEnterFrame = ReproduccionInversa;
}

//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
for (i=0; i < arrBtns.length; i++ ) {
   arrBtns[i].onPress = ClickBtn;
}


Ademas, a los SWFs que cargados no les pongas stop() en cada fotograma (si es que lo tienen) solo en el fotograma final para que se reprodusca normalmente la animación de cada SWF cuando se cargue.

Y nos cuentas como te fue. :D

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.