Código:
el tema es que los botones no tienen acciones designadas (on(release) etc), sino que el código base tiene unos Listeneres que esperan la acción del componente button y ejecuta el avance o el retroceso de las imágenes.//Importamos las clases import mx.containers.ScrollPane import mx.controls.ProgressBar import mx.controls.Loader //Declaramos variables var imagenes_lv:LoadVars = new LoadVars(); var i:Number = new Number(1); var x:Number = new Number(0); var y:Number = new Number(0); var nFot:Number = new Number(1); var fotAct:Number = new Number(0); var nPag:Number = new Number(1); var elTope:Number = new Number(1); var final:Boolean = new Boolean(false); var alClicar:Object = new Object(); var alCargar:Object = new Object(); var cargando:Object = new Object(); //Atacheamos los objetos que necesitamos attachMovie("ProgressBar", "barra", 9998); attachMovie("ProgressBar", "barraThumbs", 9999); //Puedes cambiar la forma de mostrar las imágenes, poniendo en vez de un Loader un ScrollPane //No olvides añadirlo a tu biblioteca attachMovie("Loader", "imgGrande", _root.getNextHighestDepth()); //attachMovie("ScrollPane", "imgGrande", _root.getNextHighestDepth()); //Empezamos cargando por la primera imagen imagenes_lv.dirurl = "motos_modelosTB/" + i + ".jpg"; imagenes_lv.parent = this; imagenes_lv.load(imagenes_lv.dirurl); //Propiedades del Loader/ScrollPane imgGrande.setSize(570, 350); imgGrande.move(232, 4); imgGrande.addEventListener("complete", alCargar); imgGrande.addEventListener("progress", cargando); //Propiedades de la barra de carga barra._visible = false; barra.move(216, 141); barra.label = "Cargando %3%"; barra.mode = "manual"; //Propiedades de la barra de carga de los thumbnails barraThumbs._visible = false; barraThumbs.setSize(125, 44); barraThumbs.move(85, 313); barraThumbs.indeterminate = true; barraThumbs.labelPlacement = "up"; //******************************** FUNCIONES ***********************************// //Función para ir pasando de imagen en imagen function siguienteImg (i){ barraThumbs._visible = true; barraThumbs.label = "Cargando imagen " + (i-1); if (i < 10){ imagenes_lv.dirurl = "motos_modelosTB/" + i + ".jpg"; imagenes_lv.load(imagenes_lv.dirurl); } else if (i >= 10){ imagenes_lv.dirurl = "motos_modelosTB/" + i + ".jpg"; imagenes_lv.load(imagenes_lv.dirurl); } } //Función para hacer grande la imagen function agrandarImg(id){ //Asignamos que vamos a cargar y ponemos la barra de preload if (id < 10){ imgGrande.contentPath = "motos_modelos/" + id + ".jpg"; } else if (id >= 10){ imgGrande.contentPath = "motos_modelos/" + id + ".jpg"; } //Mostramos la barra de carga barra._visible = true; fotAct = id; } //Función para pasar de página hacia adelante function paginaAde(){ //Quitamos las imagenes anteriores for (n=1; n<i; n++){ removeMovieClip(["loader"+n]); } //Inicializamos variables y nos situamos en la page siguiente nPag++; nFot = 1; x = 0; y = 0; siguienteImg(i); } //Función para pasar de página hacia atrás function paginaAtr(){ //Quitamos las imagenes anteriores for (n=1; n<i; n++){ removeMovieClip(["loader"+n]); } //Inicializamos variables y nos situamos en la page anterior nPag--; nFot = 1; x = 0; y = 0; //El índice de la imagen es igual a: //12 --> Número de imágenes mostradas //(nPag-1) --> multiplicado por el número de página actual - 1 //más 1, que dará como resultado //i = (12 * (1-1)) + 1 --> 1 [Nos situamos en imagen 1 si la página es la 1] //i = (12 * (2-1)) + 1 --> 13 [Nos situamos en imagen 13 si la página es la 2] //i = (12 * (3-1)) + 1 --> 25 [Nos situamos en imagen 25 si la página es la 3] //etc... i = (6 * (nPag-1)) + 1; siguienteImg(i); } //********************************** EVENTOS *********************************// //Cuando se ha cargado del todo la imagen alCargar.complete = function(objeto){ barra._visible = false; imgGrande.setSize(398, 299); imgGrande.refreshPane(); } //Monitorizamos la descarga de la imagen cargando.progress = function(){ barra.setProgress(imgGrande.getBytesLoaded(), imgGrande.getBytesTotal()); } //Cargamos las thumbnails imagenes_lv.onLoad = function() { if (imagenes_lv.loaded == true) { if (nFot < 7){ //cantidad de imagenes a mostrar -1 //Existe la imagen attachMovie("Loader", "loader" + i, i); eval("loader"+i).setSize(48, 36); eval("loader"+i).move((60 * x + 15), (50 * y + 5)); eval("loader"+i).id = i; trace(this.dirurl + " / " + eval("loader"+i)); eval("loader"+i).contentPath = this.dirurl; //Cargamos la imagen en grande y le pasamos el id de la thumbnail eval("loader"+i).onPress = function(){ agrandarImg(this.id); } i++; nFot++; //Si no hemos llegado al final seguimos sumando para llegar al tope if (final == false){ elTope++; } //Posiciones de las imagenes x++; if (x > 0){ //cantidad de imagenes por fila + 1 y++; x = 0; } siguienteImg(i); } else{ //Cuando hemos cargado todas las thumbs quitamos la barra de carga barraThumbs._visible = false; } } else{ //Si llegamos al final, restamos uno al tope para que no se puedan seguir cargando //imagenes if (final == false){ elTope--; } final = true; barraThumbs._visible = false; } } alClicar.click = function(objeto){ if (objeto.target == sigPage_btn){ //Si la imagen actual es menor o igual que el tope, podemos seguir avanzando if (i <= elTope){ paginaAde(); } } else if (objeto.target == antPage_btn){ if (nPag > 1){ paginaAtr(); } } else if(objeto.target == sigImg_btn){ //Mientras no lleguemos a la última foto podemos seguir pasando trace(fotAct + " < " + elTope); if (fotAct < elTope){ fotAct++; agrandarImg(fotAct); } //Desactivamos el botón si hemos llegado al final if (fotAct == elTope && final == true){ objeto.target.enabled = false; } //Activamos el botón de siguiente imagen antImg_btn.enabled = true; //Cambiamos de página si ya hemos visto todas las fotos de la pagina actual if (fotAct == (nPag * 6 + 1)){ paginaAde(); } } else if(objeto.target == antImg_btn){ if (fotAct > 1){ fotAct--; agrandarImg(fotAct); } //Desactivamos el botón si hemos llegado al principio if (fotAct == 1){ objeto.target.enabled = false; } //Activamos el botón de siguiente imagen sigImg_btn.enabled = true; //Cambiamos de página si ya hemos visto todas las fotos de la pagina actual if (fotAct == (nPag-1) * 6){ paginaAtr(); } } } //******************************** LISTENERS ***********************************// sigPage_btn.addEventListener("click", alClicar); antPage_btn.addEventListener("click", alClicar); sigImg_btn.addEventListener("click", alClicar); antImg_btn.addEventListener("click", alClicar);
Ya probé creando un botón animado, poniendo el mismo nombre de instancia (sigImg_btn o antImg_btn) pero no logro que listener oiga el click de mi botón, es mas, me pasa lo mismo con en el progressbar, tampoco pude hacer funcionar uno personalizado.
Si alguien me puede orientar un poco se los voy agradecer mucho.