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

Botones siguiente y anterior en Galería con Xml

Estas en el tema de Botones siguiente y anterior en Galería con Xml en el foro de Flash y Actionscript en Foros del Web. Hola, a ver si me podeis ayudar ya que soy un poco novato con el action script. Estoy haciendo una galería en flash que carga ...
  #1 (permalink)  
Antiguo 21/07/2009, 07:55
 
Fecha de Ingreso: noviembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Botones siguiente y anterior en Galería con Xml

Hola, a ver si me podeis ayudar ya que soy un poco novato con el action script.
Estoy haciendo una galería en flash que carga fotos de un xml a un mc que tengo en dos capas del escenario. El código es este:

Código actionscript:
Ver original
  1. //CREAMOS MOVIECLIPS CONTENEDORES DE IMAGENES/////////////////
  2. _root.createEmptyMovieClip("imagen1_mc",1);
  3. _root.createEmptyMovieClip("imagen2_mc",2);
  4. //////////////////////////////////////////////////////////////
  5. //ANALIZAMOS NODOS XML////////////////////////////////////////
  6. function analiza_xml() {
  7. direcciones = new Array();
  8. vinculos = new Array();
  9. duraciones = new Array();
  10. primer_nodo = imagenes_xml.childNodes;
  11. nodo_galeria = primer_nodo[0].childNodes;
  12. for (var j = 0; j<nodo_galeria.length; j++) {
  13. direcciones[j] = nodo_galeria[j].attributes.direccion;
  14. vinculos[j] = nodo_galeria[j].attributes.vinculo;
  15. duraciones[j] = nodo_galeria[j].attributes.duracion;
  16. }
  17. }
  18. ///////////////////////////////////////////////////////////////
  19. //FUNCION PRINCIPAL////////////////////////////////////////////
  20. function muestra_imagen(cual) {
  21. var mclListener:Object = new Object();
  22. mclListener.onLoadInit = function(objetivo_mc:MovieClip) {
  23. if (objetivo_mc == imagen1_mc) {
  24. objetivo_mc.swapDepths(imagen2_mc);
  25. alphaTween = new mx.transitions.Tween(_root.imagen2_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 100, 0, 2, true);
  26. alphaTween2 = new mx.transitions.Tween(_root.imagen1_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true);
  27. } else {
  28. objetivo_mc.swapDepths(imagen1_mc);
  29. alphaTween = new mx.transitions.Tween(_root.imagen1_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 100, 0, 2, true);
  30. alphaTween2 = new mx.transitions.Tween(_root.imagen2_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true);
  31. }
  32. if (vinculos[cual] != undefined) {
  33. objetivo_mc.onRelease = function() {
  34. getURL(vinculos[cual]);
  35. };
  36. } else {
  37. objetivo_mc.onRollOver = function() {
  38. objetivo_mc.useHandCursor = false;
  39. };
  40. }
  41. mi_duracion = duraciones[cual];
  42. objetivo_mc.onEnterFrame = function() {
  43. var mi_fecha:Date = new Date();
  44. milisegundos = mi_fecha.getTime();
  45. if (hito == undefined) {
  46. hito = milisegundos;
  47. }
  48. milisegundos_pasados = milisegundos-hito;
  49. if ((milisegundos_pasados>1000*mi_duracion) or( _root.avance_inmediato==1)) {
  50. _root.avance_inmediato=0;
  51. hito = milisegundos;
  52. siguiente_imagen();
  53. }
  54. };
  55. };
  56. var imagen_mcl:MovieClipLoader = new MovieClipLoader();
  57. imagen_mcl.addListener(mclListener);
  58. if (imagen1_mc.getDepth()<imagen2_mc.getDepth()) {
  59. imagen_mcl.loadClip(direcciones[cual],imagen1_mc);
  60. } else {
  61. imagen_mcl.loadClip(direcciones[cual],imagen2_mc);
  62. }
  63. }
  64. //////////////////////////////////////////////////////////////
  65. //SECUENCIA IMAGENES///////////////////////////////////////////
  66. function siguiente_imagen() {
  67. if (cual == undefined) {
  68. cual = 0;
  69. } else {
  70. cual++;
  71. }
  72. if (cual == nodo_galeria.length) {
  73. cual = 0;
  74. }
  75. muestra_imagen(cual);
  76. }
  77. //////////////////////////////////////////////////////////////
  78. //LEE XML//////////////////////////////////////////////////////
  79. var imagenes_xml:XML = new XML();
  80. imagenes_xml.ignoreWhite = true;
  81. imagenes_xml.onLoad = function(success) {
  82. analiza_xml();
  83. siguiente_imagen();
  84. };
  85. function lee_xml(que) {
  86. imagenes_xml.load(que);
  87. }
  88. lee_xml("pasefotos.xml");
  89. stop();
Luego tengo dos botones en otra capa con este otro código:

Código actionscript:
Ver original
  1. on (press) {
  2.     _root.avance_inmediato = 1;
  3.     _root.cual = 0;
  4.     _root.carga_imagen(cual);
  5. }

Con esto consigo ir a una foto determinada, pero ¿como podría decirle que vaya a la foto siguiente o anterior, simplemente?

Espero que me podais ayudar.
Saludos

Última edición por keibolblack; 21/07/2009 a las 11:24
  #2 (permalink)  
Antiguo 21/07/2009, 10:39
 
Fecha de Ingreso: mayo-2008
Ubicación: Murcia, España
Mensajes: 313
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Botones siguiente y anterior en Galería con Xml

Vamos a esforzarnos un poco y a tabular el código y a meterlo dentro de su hightlight correspondiente, eso es ilegible macho
  #3 (permalink)  
Antiguo 21/07/2009, 11:25
 
Fecha de Ingreso: noviembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Botones siguiente y anterior en Galería con Xml

Cita:
Iniciado por eSSeneX Ver Mensaje
Vamos a esforzarnos un poco y a tabular el código y a meterlo dentro de su hightlight correspondiente, eso es ilegible macho
Ahora mejor??, no se si te refieres a eso. La verdad es que las cosas se pueden decir mejor, que todos no andamos en los foros todos los días...
  #4 (permalink)  
Antiguo 21/07/2009, 11:49
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 5 meses
Puntos: 67
Respuesta: Botones siguiente y anterior en Galería con Xml

Si se supone que inmediato

Cita:
1.
on (press) {

_root.avance_inmediato = 1;
_root.cual = 0;

_root.carga_imagen(cual);

}
es la variable que va a una foto numero 1, entonces podrias poner un contador:



Cita:

c=0
on (press) {
c++

_root.avance_inmediato = c;
_root.cual = 0;

_root.carga_imagen(cual);

}
__________________
{ Flash }
  #5 (permalink)  
Antiguo 22/07/2009, 01:45
 
Fecha de Ingreso: noviembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Botones siguiente y anterior en Galería con Xml

Gracias Diego azul,

al final lo he medio solucionado de esta manera, en los botones

Código actionscript:
Ver original
  1. on (press) {
  2.     load = siguiente_imagen()
  3.     }


Código actionscript:
Ver original
  1. on (press) {
  2.     load = anterior_imagen()
  3.     }

y luego en el primer fotograma:

Código actionscript:
Ver original
  1. //////////////////////////////////////////////////////////////
  2. //SECUENCIA IMAGENES///////////////////////////////////////////
  3. function siguiente_imagen() {
  4. if (cual == undefined) {
  5. cual = 0;
  6. }
  7. else {
  8. cual++;
  9. }
  10. if (cual == nodo_galeria.length) {
  11. cual = 0;
  12. }
  13. muestra_imagen(cual);
  14. }
  15.  
  16. function anterior_imagen() {
  17. if (dual == undefined) {
  18. dual = nodo_galeria.length;
  19. }
  20. else {
  21.     dual--;
  22. }
  23. if (dual == -1) {
  24. dual = nodo_galeria.length;
  25. }
  26. muestra_imagen(dual);
  27. }

Lo que debe haber algún error porque hay ocasiones en las que falla, como al volver de la foto 2 ala 1 ...
  #6 (permalink)  
Antiguo 24/07/2009, 01:43
 
Fecha de Ingreso: noviembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Botones siguiente y anterior en Galería con Xml

Nadie sabe el problema que tengo en el segundo código??

No lo consigo solucionar :(
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 17:20.