Foros del Web » Programando para Internet » Javascript »

Demasiado rapido?

Estas en el tema de Demasiado rapido? en el foro de Javascript en Foros del Web. Alguien sabe porque esta funcion Código PHP: function  ImgR  ( Name ) {      imagen  = new  Image ();      imagen . src  =  'images/'  +  Name  ...
  #1 (permalink)  
Antiguo 29/01/2010, 16:22
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Busqueda Demasiado rapido?

Alguien sabe porque esta funcion

Código PHP:
function ImgR (Name) {
    
imagen = new Image();
    
imagen.src 'images/' Name '.png'
                return 
imagen.height;

No me carga correctamente el alto de la imagen? en cambio si le meto un segundo de retraso, me la carga correctamente, incluso si la lanzo 2 veces, a la segunda me la carga correctamente...
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por mdk; 29/01/2010 a las 19:22
  #2 (permalink)  
Antiguo 29/01/2010, 16:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: Demasiado rapido?

Hola:

El título del mensaje es la respuesta...

La asignación es mejor hacerla programando la carga...

imagen.src = 'images/' + Name + '.png';
imagen.onload = function() {donde_lo_quieras = this.height;

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 29/01/2010, 19:22
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Demasiado rapido?

en lo de imagen.onload ¿podría asignarse a un array de fotos, en vez de a una sola?, es decir, ¿se puede hacer que cargue todo el array de imagenes antes de realizar la funcion? Por ejemplo en este código:

Código PHP:
function LoadImas() { 
    var 
imas = new Array("ag.jpg","abuttonoff.png","abuttonon.png","abuttontmp.png","buttonoff.png","buttonon.png","buttontmp.png","fondo.png","fondo4.png","fr1.png","fr2.png","fr3.png","fr4.png","fr5.png","fr6.png","fr7.png","fr8.png","loading.gif","logo.png","map.png","pixels.png"); 
    var 
ar = new Array(); 
    for (var 
0imas.lengthi++) { 
        
ar[i] = new Image(); 
        
ar[i].src imas[i]; 
    } 

Para que no continue, lanzando funciones, hasta que termine esta. porque actualmente lo tengo puesto asi.

LoadImas(); funcion2(); funcion3();

y me carga todas seguidas, idependientemente de que se haya terminado de cargar la funcion LoadImas.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por mdk; 29/01/2010 a las 19:32
  #4 (permalink)  
Antiguo 29/01/2010, 21:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: Demasiado rapido?

Hola:

Me parece que lo que quieres lo tenemos en nuestras FAQs: ¿Cómo hacer una precarga viendo el porcentaje de carga?

Por cierto, es fácil programar una variante del script para que funcione con el evento de carga.

Si buscas otra cosa, danos el aviso...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 30/01/2010, 09:18
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Demasiado rapido?

El link ese no se encuentra, supongo que querias decir este http://www.forosdelweb.com/f13/faqs-...tml#post633305 lo mirare cuando tenga un rato.

Gracias
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #6 (permalink)  
Antiguo 30/01/2010, 11:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: Demasiado rapido?

Hola:

¡Je, je!... sí, ese era el tema... me falló el copy&paste.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 30/01/2010, 13:20
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Demasiado rapido?

Vale, ya lo he probado, y sigue pasando lo mismo de siempre, en IE8 no funciona.... en otros navegadores me sale el "Ok." pero en IE8 aun estoy esperando...
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #8 (permalink)  
Antiguo 30/01/2010, 14:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: Demasiado rapido?

Hola:

Pues acabo de probar en esta página: Probador de scripts, con este código:

Código:
<html>
	<head>
		<title>
			precarga de imagenes (con barra de progreso)
		</title>
		<script>
			function precargar()	{
				var dibujos = new Array(precargar.arguments.length);
				for (var i = 0; i < dibujos.length; i ++)	{
					dibujos[i] = new Image();
					dibujos[i].src = precargar.arguments[i]
				}
				return dibujos;
			}

			function precargados(dibujos)	{
				var parciales = true;
				for (var i = 0; i < dibujos.length; i ++)
					parciales = (parciales && dibujos[i].complete);
				return parciales;
			}

			function porciento(dibujos)	{
				var parciales = 0;
				for (var i = 0; i < dibujos.length; i ++)
					parciales += (dibujos[i].complete) ? 1 : 0;
				return parseInt(100 * parciales / dibujos.length);
			}
			var imagenes;
			function continuar()	{
				alert("Ok.");
			}

			function cargando()	{
				document.getElementById("estado").style.width = porciento(imagenes) + "%";
				if (precargados(imagenes))
					continuar();
				else
					setTimeout("cargando()", 100);
			}

			function ini()	{
				imagenes = new precargar(
					"http://www.sucaricatura.com/2004/fotos/20040000.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040001.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040002.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040003.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040004.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040005.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040006.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040007.jpg",
					"http://www.sucaricatura.com/2004/fotos/20040008.jpg"
				);
				cargando();
			}
		</script>
	</head>
	<body onload="ini()">
		<div style="position:relative; width: 100px; height: 20px; border: 1px" >
			<div style="position:absolute; top: 0; left: 0; width:100%; height: 100%; background-color: blue" >
			</div>
			<div id="estado"
style="position:absolute; top: 0; left: 0; width: 1%; height: 100%; background-color: aqua" >
			</div>
		</div>
	</body>
</html>
Y funciona bien en IE8...

Saludois
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: rapido
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 01:02.