Comunidad de diseño web y desarrollo en internet online

Bug en Preloader usando ActioScript3.0

Citar            
MensajeEscrito el 14 Jul 2009 10:42 pm
¡Hola amigos de Cristalab! :D

Como dice Soda Stereo: ¡Gracias totales!

He aprendido mucho en la sección de tutoriales y en los foros. Y ahora me ha llegado el momento de contribuir. Como diseñador ha sido una verdadera "tortura china" aprender Actionscrip 3.0. Y bueno, les comparto que estoy remodelando mi página web. El próximo lunes 20 de julio estaré estrenando. El asunto que me tiene aquí es que encontré, lo que creo es un bug, me explico:

Compré el libro Flash CS3 Classroom In A Book, y utilicé el código que ahí aparece para los siguientes sitios:
http://www.rayacosta.com/clientes/sector/index0_01.php
http://www.rayacosta.com/clientes/ivan/beta2.0.00/index0_01.php

1. Éstos usan una "película contenedora" que tiene el AS de precarga y un símbolo en el escenario que es el preloader.
2. Al finalizar la descarga dicho preloader es reemplazado por la "película home". Todo funciona bien, pero...
3. Si se fijan con atención, antes de que funcione el el preloader podemos ver el logotipo tanto de Sector como de Iván Ramírez 100% opaco y después lo vemos como debería estar: semitransparente.
4. Lo que hice fue poner una máscara (MC) que es el que actua como loadingBar y dos símbolos, uno opaco y uno con el alpha para se vea "como se va llenando". La cosa es que aunque tiene un alpha, por alguna razón no funciona.

Incluso, en el sitio de Iván, hice unos preloaders para los audios, que son una barras rojas e igual, les pongo alpha 0 pero hacen como "un flashazo" y luego comienzan a descargarse.

¿Alguna idea?
¿Dónde debo colgar los FLA y los códigos?

Muchas gracias a todos, por adelantado.

Ray

Por ray_acosta

1 de clabLevel



 

Zapoopan, México

firefox
Citar            
MensajeEscrito el 15 Jul 2009 04:04 am
Yo los preloader los ago asi, un ej:
http://www.flashcreativa.com.ar/proyecto4.html

Yo creo un swf, que cera el preloader y ese swf, carga otro swf que es la pag.
El swf preloader tiene un MC que actuara como un preloader.

Aqui el codigo

var direccion:URLRequest = new URLRequest("web5.swf");
var contenedor:Loader = new Loader();
contenedor.load(direccion);
addChildAt(contenedor,0);
preloader.visible = false;
contenedor.contentLoaderInfo.addEventListener(Event.OPEN, onempezar);
contenedor.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onprogreso);
contenedor.contentLoaderInfo.addEventListener(Event.COMPLETE, oncompletado);
function onempezar(event:Event):void{
preloader.visible = true;
}
function onprogreso(event:ProgressEvent):void{
var cuenta:Number = Math.round((event.bytesLoaded*100)/event.bytesTotal);
preloader.preloader.porcentaje.text = cuenta+"%";
}
function oncompletado(event:Event):void{
preloader.visible = false;
}
Me anda 100% exelente. Espero te sirva.

Por venecia

Claber

134 de clabLevel



 

2007

safari
Citar            
MensajeEscrito el 15 Jul 2009 06:23 pm
Muchas gracias Sodyack.

Voy a probar el código y te aviso en breve.

Por cierto, ayer, después de postear se me ocurrió hacer algo, fíjate que en: www.rayacosta.com/enConstruccion/ agregé una línea de código al principio, haciendo el preloader "invisible". Y es que antes de eso, creí solamente usando un if que revisara la cantidad de bytes cargados igual a cero entonces ese movieclip no se vería y no funcionó. Así que agregué la línea

Código ActionScript :

prealoder_mc.alpha=0;
al inicio y parece que funciona.

En ésta variante de preloader utilicé el componente UILoader y dos MC: El texto y stroke en loader y la barra de Loading.

Pueden bajar el archivo FLA de:
www.rayacosta.com/cristalab/
Éste es el código:

Código ActionScript :

/*
RayAcosta.com
Prelaoder cargando un SWF externo usando el UILoader
Versión 2.0
Julio 14, 2009
*/
/*
-- Solución:
-- En la línea 11 declaré la propiedad alpha de mi prelaoder como cero
*/
prealoder_mc.alpha=0;
loader_mc.addEventListener(ProgressEvent.PROGRESS, onProgress);
loader_mc.addEventListener(Event.COMPLETE, onComplete);

function onProgress (e:ProgressEvent):void 
{
   var loaded:Number = loader_mc.bytesLoaded;
   var total:Number = loader_mc.bytesTotal;
   prealoder_mc.scaleX = loaded / total;
   // BUG: Si no utilizo la línea 11 de código entonces el MC prelaoder_mc
   // "Flashea" es decir, aparece un segundo, se hace invisible y después
   // "empieza a cargarse"
   if (loaded === 0) 
   {
      prealoder_mc.alpha=0;
   } 
      prealoder_mc.alpha=1;
}

function onComplete (e:Event):void 
{
   removeChild(prealoder_mc);
   removeChild(outline_mc);
}


Gracias de nuevo.

Por ray_acosta

1 de clabLevel



 

Zapoopan, México

firefox

 

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