Comunidad de diseño web y desarrollo en internet online

retardo en precarga

Citar            
MensajeEscrito el 13 Dic 2006 02:04 pm
necesito alguna forma de retardar la precarga de imagenes con moviecliploader porque en la galería que estoy haciendo el orden es primordial, y una vez cargadas las imagenes en cache las coloca en orden inverso, en local ocurre lo mismo ...

_root.carga_mc.carga_cat._visible=false;
Obj1 = new LoadVars();
Obj1.load("swf/img/MOBILIARIO/DIRECCIONAL/imagenes.txt");
Obj1.onLoad = function() {
var numero = Obj1.numero;
hd=1;
for(i=1 ; i<=numero ; i++){
_root.carga_mc.carga_fotos.createEmptyMovieClip("MD_0"+i, i+50);


var my_mcl:MovieClipLoader = new MovieClipLoader();
// Cree un objeto detector:
var mclListener:Object = new Object();
varwid=0;
varxx=0;

mclListener.onLoadStart = function(target_mc) {
trace("Iniciando");
//Colocamos la barra de precarga en el escenario con el nombre "barra_mc"
trace(hd);
if(hd<=2){
_root.carga_mc.carga_bar.attachMovie("barra", "barra_mc", i+100);
hd = hd +1;
}
//Ubicamos la barra en la mitad del escenario
//Y nuestra barra esta lista para moverse en el evento onLoadProgress
};

//Función onLoadProgress, es la función clave, tiene tres parametros
//target_mc, quees igual que el anterior, loadedBytes, que nos dice la
//cantidad de bytes cargados y totalBytes que nos dice la cantidad total
//de bytes de la pelicula en proceso de descarga
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
trace("En progreso");
//Declaramos la variable de calculo de porcentaje
var porcentaje:Number;
//Calculamos el porcentaje con las variables que le llegan por parametro a la función
porcentaje = Math.round((loadedBytes*100)/totalBytes);
//Vamos al frame del porcentaje en nuestra barra de carga
_root.carga_mc.carga_bar.barra_mc.gotoAndStop(porcentaje);
//Ahora escondemos el objeto de la precarga y lo frenamos
//target_mc._visible=false;
};

//Función onLoadComplete
mclListener.onLoadComplete = function(target_mc) {
trace("ya");
//Como ya cargo completo, entonces quitamos la barra
_root.carga_mc.carga_bar.barra_mc.removeMovieClip();
//Y mostramos el objeto
//target_mc._visible=true;
};

mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String, status:Number) {
trace("Error loading image: " + errorCode + " [" + status + "]");
};


mclListener.onLoadInit = function(target_mc:MovieClip) {
var timerMS:Number = target_mc.completeTimer-target_mc.startTimer;
alto = target_mc._height;
target_mc._height=190;
porcen = target_mc._height/alto;
target_mc._width = target_mc._width * porcen;
target_mc._x = varxx + varwid + 10;
trace(porcen);
varxx=target_mc._x
varwid=target_mc._width;
my_str = target_mc._target;
var my_array= my_str.split("/");
trace(my_array[3]);
target_mc._y = target_mc._y + 6;
target_mc.createTextField("name_text",500,5,-45,Math.round(60/porcen),Math.round(21/porcen));
myformat = new TextFormat();
myformat.font = "Verdana"
myformat.size = Math.round(12/porcen);
myformat.color = 0xffffff
myformat.bold = true
target_mc.name_text.text= my_array[3];
target_mc.name_text.setTextFormat(myformat);
target_mc.name_text._y= Math.round(-18 / porcen);
target_mc.onRelease=function(){
_root.carga_mc.carga_cat.carga2.loadMovie("swf/img/MOBILIARIO/DIRECCIONAL/"+my_array[3]+".jpg");
_root.carga_mc.carga_cat._visible=true;
_root.carga_mc.carga_cat.name_text.text= my_array[3];
}
};

my_mcl.addListener(mclListener);
my_mcl.loadClip("swf/img/MOBILIARIO/DIRECCIONAL/MD_0"+i+".jpg", _root.carga_mc.carga_fotos["MD_0"+i]);
}
}
stop();


gracias ....

Por silverius

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Dic 2006 02:25 pm
Francamente, no me gusta leer código tan largo. Pero ese no es el punto.

Como no sé exactamente cuál es el error del código, te propongo una solución tonta. Si la última imagen aparece como primera, cambialas. Es decir, ponelas en orden inverso, por lo que, al cargarse en orden inverso por este script queden bien.

Eso es lo más simple que se me ocurre.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 13 Dic 2006 02:31 pm
lose ... pero fallaria en la primera carga ....

Por silverius

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Dic 2006 04:03 pm
Puedes cargar las sucesivas fotos una tras otra. Cuando se termina de cargar una se carga la siguiente.
También puedes hacer para que no se visualice el clip que contiene a la foto inicialmente hasta que todas se hayan cargado, y es entonces cuando recorres el listado de fotos y las vas volviendo visibles sucesivamente. Esto último tiene el problema de que las fotos no están sincronizadas con la precarga.
Ten en cuenta que una vez que se inicia una comunicación http no es posible saber cuándo nos va a devolver los datos ni controlar la velocidad en que son devueltos los mismos por parte de flash, así que no vas a tener más remedio que acogerte a una de las opciones anteriores, a menos que a alguien se le ocurra otra cosa. :lol:

Salu2

Por Pachi

8 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 Dic 2006 04:19 pm
Puedes cargar las sucesivas fotos una tras otra. Cuando se termina de cargar una se carga la siguiente. .... esto me gusta .. pero :

Como lo hago ?¿?¿?¿?¿

Por silverius

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Dic 2006 04:21 pm
por cierto fijaros en :

http://cyomobiliario.es/prueba/

el catalogo la primera carga de imagenes la hace correctamente, despues, al estar en cache la imagen , no lo hace bien, q horrooooooooooor.

:D

Por silverius

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Dic 2006 06:06 am
1º Metes todo el codigo en una función que tenga como parámetros el número de foto actual y el número de foto tope
2º Mediante esta función carga sólo la primera foto
3º En el objeto mclListener metes tanto el número de foto que quieres cargar como el número de la última foto (pasada por parámetros a la función)
[...]
var mclListener:Object = new Object();
mclListener.ultima=numUltFoto; //pasado por parámetro numUltFoto a la función
mclListener.actual=numFotoActual; //pasado por parámetro numFotoActual a la función
[...]

4º En el onLoadComplete lo que tienes que hacer es llamar a la función con los parámetros de la siguiente foto a cargar, si es que la hay, es decir

[...]
//Función onLoadComplete
mclListener.onLoadComplete = function(target_mc) {
trace("ya");
//Como ya cargo completo, entonces quitamos la barra
_root.carga_mc.carga_bar.barra_mc.removeMovieClip();
//Y mostramos el objeto
//target_mc._visible=true;
if (this.actual>=this.ultima) {
//no hay más fotos
mostrarFotos();
} else {
cargaFoto(this.actual+1, this.ultima);
}
};
[...]

5º Has de modificar el cargador de las fotos para que por defecto esté invisible cuando aparece
6º Has de crear una función que muestre (vía onEnterFrame con un _alpha, por ejemplo) las fotos que ya están cargadas (mostrarFotos)

Y ya estaría.

Un saludo

Por Pachi

8 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 15 Dic 2006 01:21 pm
Pachiiiiiiiiiiiii gracias graciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgraciasgracias

jajaja lo he logrado :D

gracias

chau

Por silverius

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Abr 2008 01:39 am
Uia... estoy con algo parecido. Estoy intentando cargar una película con MovieClipLoader y me estoy dando cuenta que todo funciona a la perfección, incluso el cargador con porcentaje... pero el archivo cargado (en mi caso, un SWF) se empieza a mostrar mientras se carga. Y no es la idea. Podría hacer lo que dijiste, Pachi, lo de esconderlo dandole false a _visible y con onLoadInit darle true... pero en el Frame 1 del SWF ya hay código. Es decir, no se mostraría el SWF, pero ya se estaría corriendo el código.

La solución que le doy es ponerle un Frame vacío al SWF con stop();. Y darle play en el onLoadInit... pero no me gusta esa solución. Tendría que hacerlo con todos los SWF que cargue.

¿Hay otra solución?

Por Mario Mey

40 de clabLevel



 

Castelar, Argentina

firefox
Citar            
MensajeEscrito el 11 Abr 2008 12:37 pm
Ami tmb me pasaba eso, y al final acabe haciendo lo mismo,

stop() en cada swf a cargar y un play en el loadcomplete del preloader...

Por sebasstian

50 de clabLevel



Genero:Masculino  

Barcelona

firefox

 

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