Lo ideal es hacer una carga externa de las miniaturas, pero como cuando estaba todo programado no funcionaba, decidí ir por partes, para localizar el error, cambiando la carga externa de las miniaturas por una imagen de fondo de todas ellas y botones encima de ellas con las acciones cargadas dinámicamente dependiendo del nombre del botón.
Así pues, la estructura de la película es la siguiente:
_root.pas1 , donde se enclaustra todo el menú, y aplicando una mascara, limito la zona visible.
_root.pas1.galeria , donde reside una imagen de fondo.
_root.pas1.galeria.BXX , sobre esta película se aplicará el efecto alfa y las acciones, siendo el número de nodo del xml.
_root.fotoV , pelicula donde se cargarán las imágenes en grande, de orientación vertical.
_root.fotoH , pelicula donde se cargarán las imágenes en grande, de orientación horizontal.
Código en el primer frame de pas1:
Código ActionScript :
var Omega:Object; var Boton:Object; var url; var ort; var i:Boolean = false; var f:Boolean; var j; var q:Number; miXML = new XML(); miXML.ignoreWhite = true; miXML.onLoad = function(succes) { if (succes) { for (q = 0; q<this.firstChild.childNodes.length; q++) { //url de las fotos en grande url = "fot/"+this.firstChild.childNodes[q].attributes.ca+"/"+this.firstChild.childNodes[q].attributes.id+".jpg"; //Orientacion de las fotos (H o V) ort = this.firstChild.childNodes[q].attributes.ad; if(q<10){ j = "0"+(q+1); } else { j = q+1; } //Designación del botón Boton = galeria["B"+j]; //Designacion de si utilizará la película vertical u horizontal //dependiendo de la orientación de la imagen Omega = _root["foto"+ort]; } } } miXML.load("var/fotos.xml"); //Definicion de las funciones que harán el desvanecimiento y acciones function mentira(){ f = false; } function verdad(){ if(f){ Boton._alpha --; if (Boton._alpha <90) { Boton.onRelease = function(){ //Quita cualquier imagen que hubiese cargada con anterioridad unloadMovie(_root.fotoV); unloadMovie(_root.fotoH); Omega.loadMovie(url); } } } else { Boton._alpha ++; if (Boton._alpha >= 100){ Boton._alpha = 100; } } } Boton.onRollOver = function(){ f = true; } setInterval(verdad, 1); Boton.onRollOut = mentira; //Definicion de las funciones que crearan el movimiento segun la posicion del puntero. function Falso(){ i = false; } function revisar(){ if(i){ pos = _ymouse - 196; vel = pos / 10; galeria._y -= vel; if (galeria._y>0){ galeria._y = 0; } else if (galeria._y< -143){ galeria._y = -143; } } } galeria.onRollOver = function(){ i = true; } setInterval(revisar, 50); galeria.onRollOut = Falso;
Pienso que puede ser un problema de variables, al ser utilizadas fuera de la función donde se definieron lo las reconoce, he probado con el parámetro _global sin éxito.
Alguien me puede echar un cable?
