Tengo una pregunta que seguramente a muchos les va a molestar porque se trata de AS1.
Creanme que a mi tampoco me agradó hacer el sitio para Flash6 pero necesitaba máxima compatibilidad.
El problema es que tengo una galería, con un movieclip llamado "imagen" donde cargo un .jpg con LaodMovie.
Tengo 4 instancias de este MovieClip imagen (en realidad de un movicliep contenedor llamado Galeria => Galeria1.imagen, Galeria2.imagen, Galeria3.imagen, Galeria4.imagen)
La carga por lo general anda bien, si se espera a que la imagen cargue por completo.
Pero si por ejemplo mientras esta cargando el JPG con LoadMovie dentro de alguna instancia de "imagen", seleccionamos otra foto, entonces empieza a haber problemas.
El jpg que estaba cargando no se detiene, es como que carga los 2 JPG, y en paralelo, sin un orden, entonces en "imagen" termina quedando al final el ultimo JPG cargado.
Asi, si por ejemplo clickeamos una imagen, no dejamos que termine y clckeamos otra, tampoco la dejamos terminar y clickeamos otra, y seguimos haciendo esto, revienta todo.
Se ve como en el movieclip "imagen" van apareciendo y desapareciendo todos los JPGs... y al final es probable que quede cualquiera en lugar del ultimo clckeado.
Espero haberme explicado bien.
Mi duda es si esto es un problema común y si hay forma de evitarlo.
Este es mi codigo para cargar la imagen:
Código :
this.CargarImagen = function(LinkImagen) { delete this.fondo.onEnterFrame; delete this.imagen.onRollOver; delete this.imagen.onRollOut; delete this.imagen.onReleaseOutside; delete this.imagen.onRelease; //this.imagen.unloadMovie(); this.imagen._visible = false; this.imagen.loadMovie(LinkImagen); this.barrita._xscale = 0; //barra de progreso this.contador = 0; this.fondo.onEnterFrame=function(){ //usamos a "fondo" como enterframe para que no se superponga con otro var bl=this._parent.imagen.getBytesLoaded(); var bt=this._parent.imagen.getBytesTotal(); if (bl>=bt and bl>20){ this.contador = this.contador +1; //lo uso para asegurarme que la imagen cargó bien,chequeo 3 veces this._parent.barrita._visible=false; this._parent.porcentaje._visible=false; this._parent.kb._visible=false; if(this.contador>3){ //Si ya cargó muestro, dimensiono, y asigno eventos a la imagen this._parent.imagen._visible = true; this._parent.imagen._width = 136; this._parent.imagen._height = 84; this._parent.imagen.onRollOver = ROLLOVERIMAGEN; this._parent.imagen.onRollOut = ROLLOUTIMAGEN; this._parent.imagen.onReleaseOutside = ROLLOUTIMAGEN; this._parent.imagen.onRelease = RELEASEIMAGEN; updateAfterEvent(); delete this.onEnterFrame; } }else{ //si no cargó, muestro la barra de progreso. this._parent.barrita._visible=true; this._parent.porcentaje._visible=true; this._parent.kb._visible=true; this._parent.kb.text = Math.floor(bl/1024) + " de " + Math.floor(bt/1024) + " kb"; this._parent.barrita._xscale=(100*bl/bt)*0.7; this._parent.porcentaje.text=(bt>0)?(Math.floor(bl*100/bt)+"%"):"0%"; } } };
Este metodo se llama cada vez que se selecciona una imagen.
Y antes de llamarlo hago un unloadMovie.
Código :
this.imagen.unloadMovie(); this.CargarImagen(Casa.preview_image);
Espero alguien pueda ayudarme, ya probé de todo y nada me lo resuelve (incluso a veces desaparece el movieclip "imagen" en una de las galerias, como que se hace invisible porque la barrita de descarga del JPG se ve...)