Foros del Web » Creando para Internet » Flash y Actionscript »

cargador

Estas en el tema de cargador en el foro de Flash y Actionscript en Foros del Web. ¡Hola! es simplemente una duda que me surguió, realizando mi sitio web, el tema es que el "preloader" o cargador en castellano como gusten, me ...
  #1 (permalink)  
Antiguo 23/10/2007, 20:11
Avatar de sergio87  
Fecha de Ingreso: octubre-2007
Ubicación: Buenos Aires
Mensajes: 323
Antigüedad: 10 años, 1 mes
Puntos: 8
cargador

¡Hola!
es simplemente una duda que me surguió, realizando mi sitio web, el tema es que el "preloader" o cargador en castellano como gusten, me carga rápido o sea, casi no se ve cuando carga mi página, y digamos que está para que el usuario pueda verlo también, mientras se carga la web...

hay forma o un código que pueda lograr hacer mas lenta de alguna forma mi precarga..

Gracias!
  #2 (permalink)  
Antiguo 23/10/2007, 20:46
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Re: cargador

Yo tengo un código que hice hace un tiempo que lo mismo te sirve, supongo que habrá otras formas de hacerlo, pero bueno ahí va:
Código:
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();

listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void 
{
	a=Math.ceil(( (bytesLoaded * 100 ) / bytesTotal));
}

listener.onLoadInit = function(target_mc:MovieClip) 
{
	beginInterval();
}



mcLoader.addListener(listener);
mcLoader.loadClip("indice.swf",clipDestino);

var actual:Number =0;
var a:Number =0;
var intervalId:Number;
var count:Number = 0;
var duration:Number = 50;

function executeCallback():Void {
	
	
	if(actual<a)
	{
		//aquí gestianariamos el progreso 'ficticio' de nuestro preloader
		actual++;		
	}
	if(actual>=100)
	{
		//aquí lo que ha de suceder cuando el clip está cargado
		clearInterval(intervalId);		
	}
}

function beginInterval():Void 
{
	if(intervalId != null) 
	{
		clearInterval(intervalId);
	}
 
	intervalId = setInterval(this, "executeCallback", duration);
}
La cosa está básicamente en que tenemos una variable ficticia de porcentage de carga ('actual') que se incrementa desde un intervalo y una variable con el porcentage real de carga del clip.

En el intervalo incrementamos nuestra variable ficticia cuando el porcentage 'ficticio' es menor que el 'real', pero como está en un intervalo pués tenemos la seguridad que tarda en incrementarse una unidad(o las que nosotros decidamos) cada paso del intervalo(o sea cada paso de x milisegundos que hayamos definido en el intervalo)

Si hay parón en la carga no pasaría nada, nuestro intervalo 'se espera' y por tanto nuestra variable ficticia también.

Y nada, tenemos dos 'ifs' uno para cuando el % de carga ficticia es menor que el real y otro para cuando es igual a 100 en cuyo caso el clip estaría cargado.

Se pueden hacer varias cosas, en el onLoadProgress es dónde está la variable que contiene el porcentage de carga, por tanto si por ejemplo te interesase que fuese del 0 a 20 pues usuariamos el porcentage, pero dividido por 5, y en tu intervalo usarías como tope de carga el 20.

Lo digo por si no te interesa que pase 100 veces por el intervalo.

Y bueno, para el intervalo, lo que debes hacer es definir en la variable 'duration' la duración de un paso en milisegundos.

El intervalo se destruye cuando la carga llega al 100%

No sé si te servirá de algo la idea pero ahí queda.

Yo lo use aquí y me funcionó bien(lo que quería era que la barra progresase aunque se hubiese cargado el clip con lo cual la situación debe de ser similar):

http://www.3wservicios.com/vistahermosa/

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 23/10/2007 a las 20:56
  #3 (permalink)  
Antiguo 24/10/2007, 08:48
Avatar de sergio87  
Fecha de Ingreso: octubre-2007
Ubicación: Buenos Aires
Mensajes: 323
Antigüedad: 10 años, 1 mes
Puntos: 8
Re: cargador

Gracias Yoseman por responder mi mensaje, lo voy a probar para ver si funciona, gracias otra vez
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 16:15.