Foros del Web » Creando para Internet » Flash y Actionscript »

MC dentro de MC

Estas en el tema de MC dentro de MC en el foro de Flash y Actionscript en Foros del Web. Hola banda... Ando botado intentando hacer que funcione una animación sencilla, que me funcionará para crear un menú desplegable... pero por más que lo intento ...
  #1 (permalink)  
Antiguo 24/09/2010, 13:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 13 años, 8 meses
Puntos: 0
Exclamación MC dentro de MC

Hola banda...

Ando botado intentando hacer que funcione una animación sencilla, que me funcionará para crear un menú desplegable... pero por más que lo intento y hago cambios en las rutas, no jala.

La cosa parece sencilla (y debe serlo), es así:

En un Movie Clip, mc1 tengo dos símbolos, b1 y mc2.
Por efecto de la animación b1 siempre está visible; mc2 se hace visible o se "esconde", con la animación, gracias a este código:
Código:
stop(); 
this.onEnterFrame = function(){
	if(rewind == true){
		prevFrame(); 
	}
}
this.onRollOver = function(){
	rewind = false; 
	play(); 
}
this.onRollOut = function(){
	rewind = true;  
}
(Aquí viene el problema)... En el mc2, tengo dos símbolos, un b2 y b3. El botón b3 debería hacerse visible o esconderse (según lo animé), con el mismo código anterior:

Código:
stop(); 
this.onEnterFrame = function(){
	if(rewind == true){
		prevFrame(); 
	}
}
this.onRollOver = function(){
	rewind = false; 
	play(); 
}
this.onRollOut = function(){
	rewind = true;  
}
pero simplemente no lo hace.

Repito, cambié las rutas ayudándome de "Insertar ruta de destino" en la ventana de código, para librar cualquier error, pero simplemente no funciona, no muestra la animación del segundo movie clip, mc2.

¿Alguna idea?
Gracias, de antemano. Saludos.
  #2 (permalink)  
Antiguo 24/09/2010, 13:24
Avatar de rusoftware  
Fecha de Ingreso: abril-2004
Ubicación: Rosario - Argentina
Mensajes: 1.083
Antigüedad: 20 años
Puntos: 2
Respuesta: MC dentro de MC

Por si acaso, dentro del codigo de b3, prueba poner esto: trace(rewind);
Si te da undefined, estas fallando en las rutas (que es lo mas probable).

Puedes probar definiendo la variable rewind como global, antes de ejecutar nada

sería algo como
var rewind:Boolean;
puedes hacerlo justo luego del stop();


Si eso no jala, pues manda el rewind a _root... de ese modo no tendrías más problemas con las rutas.


Por último, puedes intentar llamar con un _parent.mc2.rewind que parece que sería la ubicación correcta...

Prueba alguna de estas 3 y nos cuentas.

Saludos

Última edición por rusoftware; 24/09/2010 a las 13:30
  #3 (permalink)  
Antiguo 24/09/2010, 14:27
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: MC dentro de MC

Rusoftware, declaré así en el primer fotograma de toda el archivo:
Código:
var rewind:Boolean = true;
y nada... La animación del segundo movie clip, mc2, no se ejecuta.

¿Cómo mando el rewind a _root? ¿A qué te refieres? ¿Algo así?
Código:
_root.onEnterFrame = function(){
    if(rewind == true){
        prevFrame(); 
    }
}
o algo así:
Código:
_root.mc1.onRollOver = function(){
    rewind = false; 
    play(); 
}
No funcionó y la segunda opción de alguna forma trabaja, pero mal, de repente funciona, de repente se traba, no se ejecuta la animación correctamente... Intenté ya de muchas formas asignar las rutas y nada.

¿Me podrías ayudar revisando el archivo?
Subí el fla: http://www.boat-std.com/ejemplo.fla
Gracias.
  #4 (permalink)  
Antiguo 25/09/2010, 08:18
Avatar de rusoftware  
Fecha de Ingreso: abril-2004
Ubicación: Rosario - Argentina
Mensajes: 1.083
Antigüedad: 20 años
Puntos: 2
Respuesta: MC dentro de MC

yo lo que decía era que mandes la variable rewind a _root... No puedo abrir el fla, probablemente por la version, apenas tengo la CS3.

Todo el código completo quedaría así:

codigo de MC2
Código actionscript:
Ver original
  1. stop();
  2. this.onEnterFrame = function(){
  3.     if(_root.rewind == true){
  4.         prevFrame();
  5.     }
  6. }
  7. this.onRollOver = function(){
  8.     _root.rewind = false;
  9.     play();
  10. }
  11. this.onRollOut = function(){
  12.     _root.rewind = true;  
  13. }


Luego el código de b3 quedaría así:
Código actionscript:
Ver original
  1. stop();
  2. this.onEnterFrame = function(){
  3.     if(_root.rewind == true){
  4.         prevFrame();
  5.     }
  6. }
  7. this.onRollOver = function(){
  8.     _root.rewind = false;
  9.     play();
  10. }
  11. this.onRollOut = function(){
  12.     _root.rewind = true;  
  13. }


Prueba eso, y si quieres que mire el fla, por favor guardalo con compactibilidad para CS3
  #5 (permalink)  
Antiguo 26/09/2010, 12:44
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: MC dentro de MC

Hola VeryGrinch:
El problema que no funcione es que tú le haz puesto el código al MC mcServicios por lo tanto el MC mcServ3D que está anidado dentro del primer MC, sus códigos son anulados.
Lo que tienes que hacer es abrir el MC mcServicios y al botón que está en la el primer frame capa Servicios le pones como nombre de instancia: serv.
Crea una capa encima de la capa Servicios y dibuja un rectángulo de 248 x 7 pegado a la parte inferior de todos los MC anidados y lo conviertes en botón invisible y le pones como nombre de instancia: serv_1.
En la capa Acciones fotograma 1 y 30 solamente debe de haber un stop();
En el escenario en el frame 1 de la capa 15 que debería tener como título Acciones, escribe éste código:
Código actionscript:
Ver original
  1. mcServicios.onEnterFrame = function() {
  2.  if (varAction == true) {
  3.   this.prevFrame();
  4.  }
  5. };
  6. mcServicios.serv.onRollOver = function() {
  7.  varAction = false;
  8.  mcServicios.gotoAndPlay(1);
  9. };
  10. mcServicios.serv_1.onRollOut = function() {
  11.  varAction = true;
  12. };
Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #6 (permalink)  
Antiguo 04/10/2010, 11:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: MC dentro de MC

Bandit, gracias.
Ya había agradecido tu respuesta, pero algún error habré cometido en su momento, que no se posteo... Ahora que vuelvo a revisar, para liberar una duda, me doy cuenta.

Me dí cuenta del error trabajando el fin de semana pasado. Me ayudó mucho tu código para que trabajara mejor. Muchas gracias. Saludos.

Etiquetas: desplegable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:01.