Comunidad de diseño web y desarrollo en internet online

Preloader con delay

Citar            
MensajeEscrito el 20 Oct 2010 04:50 pm
Hola a todos, bueno pues primero presentarme, mi nombre es Julian, hace poco que empece a usar AS3 y bueno ya tengo un problema con el preloader, o precargador.

Pasa que cuando pongo mi precargador, este cuando lo subo recien aparece cuando el porcentaje esta en 90% osea tiene un delay de casi 1 minuto, y no se como podria hacer para que cuando entre aparezca de una vez! espero me puedan ayudar!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 05:06 pm
Si el preloader es parte del mismo archivo no va aparecer hasta que se cargue, lo que puedes hacer si tienes la opcion es separar los swf's uno con el preloader y otro con el contenido a cargar, asi pones el preloader en escena y una vez puesto comienzas la carga del contenido desde el preloader y asi lo visualizaras de 0 a 100%.

Cuando corres el swf en el menu view utiliza la parte de simular descarga para que visualices mejor los preloaders.

Saludos!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 05:12 pm
ok, creo que entendi, lo que me dices es que haga un swf preloader, y en otro swf la pagina? si es asi, ya lo hice, pero como puedo hacer que para cuando el preloader termine de cargar me aparezca el swf donde esta todo el contenido?

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 05:19 pm
Para ir haciendo la aniacion del preloader ya sea una barra o un texto con el porcentaje cachas un evento no es asi?? un ProgressEvent si no me equivoco, para saber cuando el contenido se completo puedes cachar un Event.Complete cuando ese evento se despacha ya agregas el contenido.

El contenido lo estas cargando con un loader y una ves cargado seria loader.content.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 05:26 pm
mm mira el preloader que yo hice el as es asi

stop()

addEventListener(Event.ENTER_FRAME, loaderF);

function loaderF(e:Event):void{
var toLoad:Number = loaderInfo.bytesTotal;
var loaded:Number = loaderInfo.bytesLoaded;
var total:Number = loaded/toLoad;
if(loaded == toLoad){
removeEventListener(Event.ENTER_FRAME, loaderF);
gotoAndStop(2);
} else {
preloader_mc.preloaderFill_mc.scaleX = total;
preloader_mc.percent_txt.text = Math.floor(total*100) + "%";
preloader_mc.ofBytes_txt.text = loaded + "bytes";
preloader_mc.totalBytes_txt.text = toLoad + "bytes";
}
}

el tema seria ahora como hago, para cuando termine me cargue el otro swf

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 05:37 pm
Pues tendrías que ser más prólijo, así no lo lograrás. Arma una función de precarga y luego llamala progresivamente.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 20 Oct 2010 05:42 pm
Que pena molestar tanto, pasa que como dije anteriormente soy nuevo en esto, y la unica forma que me salia el preloader era de esa forma, como me dices, no tengo idea, no sabes de algun tuto o algo asi para AS3 como me dices que haga el preloader? o explicarme un poco si no es mucha molestia!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 06:03 pm
En lugar de enterFrame usa algo como:

Código ActionScript :

loaderInfo.addEventListener(ProgressEvent.Progress,OnProgress);
function OnProgress(e:ProgressEvent){
//Haces tu mismo proceso para el preloader
}

//Para la parte de cuando se completa la carga
loaderInfo.addEventListener(Event.Complete,CargaCompleta);

function CargaCompleta(e:event){
//Aqui remueves el listener de progress y tmb el de complete ya que son innecesarios
//Ya pones tu gotoAndStop(2); o lo que quieras
}


Una vez que te funcione asi ya podemos hablar de que lo dividas en 2 archivos, de entrada espero qeu te funcione asi.

Saludos!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 07:05 pm
no me funciona, intente ya varias formas :s algo estare haciendo mal!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 07:10 pm
Postea tu codigo

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 07:15 pm
Esa fue la ultima con la que intente, las otras no me funcaron tampoco

loaderInfo.addEventListener(ProgressEvent.Progress,OnProgress);

function OnProgress(e:ProgressEvent){
var toLoad:Number = loaderInfo.bytesTotal;
var loaded:Number = loaderInfo.bytesLoaded;
var total:Number = loaded/toLoad;
if(loaded == toLoad){
loaderInfo.addEventListener(Event.Complete,CargaCompleta);
gotoAndStop(2);
} else {
preloader_mc.preloaderFill_mc.scaleX = total;
preloader_mc.percent_txt.text = Math.floor(total*100) + "%";
preloader_mc.ofBytes_txt.text = loaded + "bytes";
preloader_mc.totalBytes_txt.text = toLoad + "bytes";
}
}

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 07:44 pm
Que es lo que no funciona??

Antes que nada de la funcion OnProgress vas a quitar la comparacion de toLoad y el listener par ala funcion CargaCompleta lo pones junto con el listener de OnProgress

Código ActionScript :

loaderInfo.addEventListener(ProgressEvent.Progress,OnProgress);
loaderInfo.addEventListener(Event.Complete,CargaCompleta);

function OnProgress(e:ProgressEvent){
var toLoad:Number = loaderInfo.bytesTotal;
var loaded:Number = loaderInfo.bytesLoaded;
var total:Number = loaded/toLoad;
preloader_mc.preloaderFill_mc.scaleX = total;
preloader_mc.percent_txt.text = Math.floor(total*100) + "%";
preloader_mc.ofBytes_txt.text = loaded + "bytes";
preloader_mc.totalBytes_txt.text = toLoad + "bytes";
} 

//Te falto agregar la funcion CargaCompleta

function CargaCompleta(e:Event){
gotoAndStop(2);
}

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 08:03 pm
me saca el error en estas dos lineas

loaderInfo.addEventListener(ProgressEvent.Progress,OnProgress);
loaderInfo.addEventListener(Event.Complete,CargaCompleta);

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 09:03 pm
El codigo que te pongo es todo de memoria ais que lleva sus fallas, el error te lo debe marcar diciendo que Complete y que Progress son desconocidos o algo parecido es porq la sintaxys correcta seria.

Código ActionScript :

loaderInfo.addEventListener(Event.COMPLETE,OnComplete);
loaderInfo.addEventListener(ProgressEvent.PROGRESS,OnProgress);



Trata de no copiar y pegar y si lo haces verificar la sintaxys, la documentacion es muy extensa y auqne mucha gente no la aprecia mucho es muy util.

Saludos!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 09:04 pm
Si copias y pegas el codigo no te funcionara porque yo le puse otras funciones nada mas cambialas por las tuyas

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 09:21 pm
listo ahi ya me funciono, y ya copie el preloader a otro swf, ahora como proseguiria?

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 09:27 pm
Ahora usaras un loader para hacer la carga, en el swf del preloader haras la carga con un objeto Loader busca en la documentacion sobre el no es muy complicado cualquier duda me avisas.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 09:38 pm
No te entendi muy bien lo que quisiste decir, es que te explico, yo de programacion lo poco que se lo aprendi a la fuerza en estas ultimas semanas, ya que con un amigo estamos abriendo un restaurante y no teniamos para pagarle a un diseñador web o algo asi, asi que fui yo quien me meti a hacer la pagina con unos templates y demas que me pasaron, pero quedo muy pesada la pag por eso ahora le tengo que hacer ese preloader, pero osea algo entiendo, jajaja disculpame por mi ignorancia y por molestarte tanto!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Oct 2010 11:17 pm
trata de bajarle la calidad a tus imagenes para que no pese tanto y me imagino que no haces ninguna carga externa y ps tener todo alli aumenta mucho el peso.

Tu tienes que ver hasta donde va llegar tu incursion en la programacion de la pagina porq obviamente entre mas te metas mas complicado sera (eso ya lo decidiras tu).

En tu swf preloader crea un objeto Loader.

Código ActionScript :

var loader:Loader = new Loader();


Los listeners se los agregas a tu loader:

Código ActionScript :

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,OnProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,OnComplete);


Mandas cargar tu swf de contenido con la ruta del mismo

Código ActionScript :

loader.load(new URLLoader("contenido.swf"));


En tu funcion de carga completa remueves el preloader y agregas el contenido

Código ActionScript :

function CargaCompleta(e:Event){
stage.removeChild(DisplayObject(this));
stage.addChild(MovieClip(loader.content));
}


Espero que te funcione puedes buscar ya sea aqui mismo o en google algo sobre precargas externas en flash para algo mas explicito.

Y ntp no es molestia para eso esta Cristalab.

Saludos!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2010 11:55 pm
no me sale, a ver si entendi bien, en el de preloader creo un objeto MC en un nuevo frame? y ahi le pongo en el as

var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,OnProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,OnComplete);

loader.load(new URLRequest("content.swf"));

function OnComplete(e:Event){
stage.removeChild(DisplayObject(this));
stage.addChild(MovieClip(loader.content));
}

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 21 Oct 2010 02:15 am
Ya encontre una solucion mas sensilla, de igual manera te agradezco por el tiempo y la dedicacion, aca va mi solucion:

como tenia el preloader y mi contenido en si en el mismo sfw, todos los classes se esportaban en el frame 1 donde tenia el preloader, lo que tive que hacer es ir a publish settings y en la pestaña de flash cambiar el frame a 2 y listo mi preloader aparece desde el 1%

Igualmente les agradezco por su gran ayuda! la verdad que unos genios uds con esto de la programacion!!!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 21 Oct 2010 03:01 am
Jejejeje siempre hay una forma alternativa.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox

 

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