Comunidad de diseño web y desarrollo en internet online

[AYUDA] Extraño Error

Citar            
MensajeEscrito el 08 Jul 2008 04:13 pm
Hola a todos.
Cada vez que busco algo sobre flash lo primero que me aparece e Cristalab asi que posteo mi problema porque hasta ahora nadie lo ha experimentado.

He utilizado varios códigos, en especial una de aquí para crear un efecto de album en el cual tengo muchas pequeñas fotos y cuando paso el click encima se agranda la imagen superponiéndose a las demás sin importar de qué forma las haya organizado.

Hasta aquí toda va bien.

El problema es que tengo dos páginas del album. la primera tiene 9 fotos y la segunda 7. Cuando paso el click sobre una imagen de la segunda página la imagen se agranda y cuando quito el click vuelve a quedarse pequeña. Luego hago click en Siguiente (siguiente página) y la última imagen que vi de la primera página queda en la segunda y también en el resto de las secciones de la web.

Esta es la web del swf: http://www.zonasafaritv.com/papo

Si todavía no entienden con solo ver el swf aquí les dejo el link del fla: http://www.zonasafaritv.com/papo/index.fla

Espero una pronta respuesta.

Desde ya mcuhas gracias.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2008 04:34 pm
Pregunta:

EL albúm de fotos utiliza carga de movieclips dinpamicos?

Por miliciano

50 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 08 Jul 2008 04:35 pm
En el botón de siguiente tendrás que limipiar el clip que se ha agrandado, como hacerlo dependerá del mecanismo que tenga la galería. Conviene que pongas el código relevante, porque si pones el fla alguien puede llegar a pensar en Baja y arregla mi archivo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Jul 2008 04:40 pm
No sé a qué te refieres con dinámicos. Cualquier dudas que tengas dejé el link del .fla. Cada movie clip tiene el siguiente código:
onClipEvent (load) {stop();} //Con esto hago que el cilp no se reproduzca
on (rollOver) {
this.swapDepths(0); //con esto lo envío al frente
this.onEnterFrame = function () {
if (this._currentframe != 6) {
this.nextFrame();
}
else {
this.stop();
delete this["onEnterFrame"];
}
};
}
on (rollOut) {
this.onEnterFrame = function () {
if (this._currentframe != 1) {
this.prevFrame();
}
else {
this.stop();
delete this["onEnterFrame"];
}
};
}


El resto del código que no está explicado lo saqué de esta web.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2008 04:45 pm

solisarg escribió:

En el botón de siguiente tendrás que limipiar el clip que se ha agrandado, como hacerlo dependerá del mecanismo que tenga la galería. Conviene que pongas el código relevante, porque si pones el fla alguien puede llegar a pensar en Baja y arregla mi archivo

Jorge


Muchas disculpas si parece un Baja y arregla mi archivo. Ahora que me lo advertiste aviso que ese archivo es solo por si no entienden lo que digo o como lo explico, nada más.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2008 04:50 pm
Aparentemente queda una foto de la galería anterior porque en la segunda galería tienes menos fotos. Casi aseguraría que si fuera al revés no pasaría (aunque si al volver) Debes tener por ahí algún loop de inicialización (con attachMovie o duplicateMovieClip) para poner las fotos, antes de irse hay que repetirlo quitando todo lo que se creó

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Jul 2008 04:59 pm

solisarg escribió:

Aparentemente queda una foto de la galería anterior porque en la segunda galería tienes menos fotos. Casi aseguraría que si fuera al revés no pasaría (aunque si al volver) Debes tener por ahí algún loop de inicialización (con attachMovie o duplicateMovieClip) para poner las fotos, antes de irse hay que repetirlo quitando todo lo que se creó

Jorge


No entiendo mucho lo que me acabas de decir.
Lo voy a explicar mejor.
Cada sección de la web es un fotograma diferente.
En el fotograma donde están las fotos solo tiene un stop();
Cada foto (movie clip) tiene en su último fotograma un stop();
Cada movie clip tiene el código que ya especifiqué.

Lo de attachMovie y duplicateMovieClip no sabría como usarlo ni donde ponerlo.
Y por último: el boton siguiente tiene:
on (release) {
gotoAndStop(7);
}

Y el boton anterior tiene:
on (release){
gotoAndStop(4);
}


Espero no ser muy molesto, el problema es que estoy un poquito apurado con librarme de este trabajo.

Desde ya mcuhas gracias a los que me ayuden.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2008 05:38 pm
¿Los contenedores de los fotos (MovieClips) los has puesto manualmente en la escena?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Jul 2008 05:41 pm
Exactamente.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2008 05:47 pm
Entonces si las galerías estan puestas en un keyframe diferente y no tienen el mismo nombre de instancia, no hay motivo para que permanezcan en escena.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Jul 2008 06:02 pm
No sé si ayudaría pero están en una misma capa.
Yo lo llamo album pero en verdad es que tiene el primer frame tiene diferentes movies clips con sus respectivos códigos y un boton que te lleva al siguiente frame que es el de la segunda parte del "album" que es lo mismo, contienen movie clips con sus códigos y un botón que te lleva al frame anterior (al primer "album").
Intenté utilizar clip.unloadovie(); y funcionó, el problema es que luego de quitar el mouse de encima se achica la imagen y desaparece y no se vuelve a cargar.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2008 06:19 pm
Hola,

Revisando el código he encontrado el problema:

cuando utilizas:

Código :

this.swapDepths(0);


Trae la foto por encima de todo. La solución es volver la imágen a la profuncidad que estaba así:

Código :

onClipEvent (load) { 
this.depth = getDepth();  
stop();
} //Con esto hago que el cilp no se reproduzca
on (rollOver) {
this.swapDepths(0); //con esto lo envío al frente
this.onEnterFrame = function () {
if (this._currentframe != 6) {
this.nextFrame();
}
else {
this.stop();
delete this["onEnterFrame"];
}
};
}
on (rollOut) {
this.swapDepths(this.depth);
this.onEnterFrame = function () {
if (this._currentframe != 1) {
this.prevFrame();
}
else {
this.stop();
delete this["onEnterFrame"];
}
};
} 


Si definitivamente esto no fucniona, es necesario remover los movielcips contenedores de imágenes, una vez ya no los necesitamos más.

así:

Código :

for(var i=1;i<10;i++)
{
   mc = this["img"+i];
   removeMovieClip(mc);
}



Los movieclips contenedores tiene como nombre img1, img2, etc...


Ok proba esta alternativas y nos contas que tal...

Suerte

Por miliciano

50 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 08 Jul 2008 06:33 pm
Sos un genio miliciano. El primer código funcionó a la perfección del 95 %

Muchísimas gracias.

Digo el 95 % porque cuando la imagen se está haciendo pequeña ya se pone detrás de todo y no cuando termina la animación.
De todos modos es un grandísimo avance.

Gracias.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2008 06:53 pm
Ok, MauXXI.

Me alegra ayudarte.

Nos contas cuando tengas listo el ajuste para verlo funcionar.

Suerte

Por miliciano

50 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 09 Jul 2008 10:48 pm
Hola a todos. :):):):):)

Este es el trabajo terminado.

Es la primera vez que hago una página web compleamente en flash.

Muchas gracias a miliciano por su gran aporte.^^^^^^^^

Aquí está el link de la web: http://www.zonasafaritv.com/papo

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Jul 2008 10:58 pm
Ok, quedó bacano el sitio.

Tengo un comentario:

Cuando se quita el mouse de la imagen, se ve como vuelve a ganar la profuncidad la foto, y queda por debajo de otras pequeñas. Para que no pase esto, podes asignar la profundidad inicial, sólo si el efecto de out a terminado para que se vea un poco mejor.

De resto esta muy bien implementada la solución.

Suerte

Por miliciano

50 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 11 Jul 2008 11:47 pm

miliciano escribió:

Para que no pase esto, podes asignar la profundidad inicial, sólo si el efecto de out a terminado para que se vea un poco mejor.


¿Y cómo hago eso?

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2008 12:48 am

MauXXI escribió:

miliciano escribió:

Para que no pase esto, podes asignar la profundidad inicial, sólo si el efecto de out a terminado para que se vea un poco mejor.


¿Y cómo hago eso?


Alguien tiene alguna respuesta? :(

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2008 03:15 pm
Se podría hacer guardando la variable de la profundidad de la imagen inicial al hacer rollOver, pero la solución a esto no está ahí me parece, si pones la imagen que se le ha hecho rollOver por encima de todas cuando hagas rollOut debería seguir por encima de todas, no hace falta regresarla a su profundidad inicial.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Jul 2008 06:18 pm

elchininet escribió:

Se podría hacer guardando la variable de la profundidad de la imagen inicial al hacer rollOver, pero la solución a esto no está ahí me parece, si pones la imagen que se le ha hecho rollOver por encima de todas cuando hagas rollOut debería seguir por encima de todas, no hace falta regresarla a su profundidad inicial.


El problema a lo que me dices es que si no le devuelvo a la profundidad inicial aparecerá en todos los frames y capas posibles dentro del .fla.
La solución de miliciano es correcta a un 95%.
Lo que estoy pidiendo es cómo hacer lo que miliciano me comentó:

miliciano escribió:

Cuando se quita el mouse de la imagen, se ve como vuelve a ganar la profuncidad la foto, y queda por debajo de otras pequeñas. Para que no pase esto, podes asignar la profundidad inicial, sólo si el efecto de out a terminado para que se vea un poco mejor.


Desde ya muchas gracias.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2008 08:36 pm
Puedes hacerlo guardando la profundidad inicial en el rollOver

Código :

on (rollOver) {

    this.profInicial = this.getDepth();
    this.swapDepths(this._parent.getNextHighestDepth());

}

on (rollOut) {

    this.swapDepths(this.profInicial );

}


Pero si lo que quieres es que no se te vean en los demás frames con tenerlas todas dentro de un movieClip y cambiar sus profundidades dentro de este, no se te verán en los frames donde este movieClip no esté.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 14 Jul 2008 05:39 am
Funcionó.
Este era mi código:

Código :

onClipEvent (load) {
   stop();
}
on (press) {
   this.swapDepths(0);
   this.onEnterFrame = function () {
      if (this._currentframe != 6) {
         this.nextFrame();
         }
      else {
         this.stop();
         delete this["onEnterFrame"];
         }
      };
}
on (release) {
   this.swapDepths(this.depth);
   this.onEnterFrame = function () {
      if (this._currentframe != 1) {
         this.prevFrame();
         }
      else {
         this.stop();
         delete this["onEnterFrame"];
         }
      };
}
onClipEvent (load) {
   this.depth = getDepth();
}


Y lo que hice fue poner todos los MC dentro de otro MC y borrar las última tres línes del código.
Asunto solucionado.
Tema cerrado (seo creo).

Adios.

Por MauXXI

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 Jul 2008 06:27 pm
No es la primera vez que entro en este foro, y, aunque no he contestado nunca, creo que es necesario daros las gracias por lo utiles que habeis sido pra mi. Tenía el mismo problema aquí expuesto, aunque en mi caso se trata de un conjunto de MC dragables. Con vuestra ayuda he encontrado la solución. Este es el código:
onClipEvent (load) {
this.depth = getDepth();
stop();
}
//He introducido las modificaciones oportunas para cargar un MC "dragable"
on (press) {
startDrag("");
this.swapDepths(0);
//con esto lo envío al frente
this.onEnterFrame = function() {
if (this._currentframe != 6) {
this.nextFrame();
} else {
this.stop();
delete this["onEnterFrame"];
}
};
}
//aquí descargo el clip
on (release) {
stopDrag();
//Añado una evaluación que cuando se cumple la condición...
//pasan a otro frame del MC
//recolocan el MC en la posicion que quiero
if (eval(this._droptarget) == (_root.zona1)) {
_root.contenedor1.nombre1.gotoAndPlay("2");
_root.contenedor1._x = 85.4;
_root.contenedor1._y = 83.0;
_root.contenedor1.gotoAndPlay("2");
//después continúo con el código de control de niveles
this.swapDepths(this.depth);
this.onEnterFrame = function() {
if (this._currentframe != 1) {
this.prevFrame();
} else {
this.stop();
delete this["onEnterFrame"];
}
//aquí añado una serie de hitTest para atachar unos botones en el caso de que se cumplan todos
if ((_root.contenedor1.nombre1.hitTest(_root.zona1)) && (_root.contenedor2.nombre2.hitTest(_root.zona2)) && (_root.contenedor3.nombre3.hitTest(_root.zona3)) && (_root.contenedor4.nombre4.hitTest(_root.zona4)) && (_root.contenedor5.nombre5.hitTest(_root.zona5)) && (_root.contenedor6.nombre6.hitTest(_root.zona6)) && (_root.contenedor7.nombre7.hitTest(_root.zona7)) && (_root.contenedor8.nombre8.hitTest(_root.zona8)) && (_root.contenedor9.nombre9.hitTest(_root.zona9))) {
_root.attachMovie("botonC", "nuevoboton", 500, {_x:50, _y:380});
_root.attachMovie("botonCsalida", "nuevoboton2", 501, {_x:400, _y:380});
}
};
}
}
[/code]

Por cincopatas

3 de clabLevel



Genero:Masculino  

msie7

 

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