Comunidad de diseño web y desarrollo en internet online

Precargar sonido! y luego avanzar

Citar            
MensajeEscrito el 23 Ene 2009 09:49 pm
Hola que tal estaria buscando alguien que pueda ayudarme con un script sencillo que precarge un sonido mp3 que se encuentra fuera del .fla
Tengo un script pero no funciona les paso a mostrar.

Código :

SonidoPres = new Sound();
SonidoPres.loadSound("sonidoPres.mp3",false);

this.onEnterFrame = function() {
   total = SonidoPres.getBytesTotal();
   cargado = SonidoPres.getBytesLoaded();
   this.porcent.text = "Cargando " + Math.round((cargado/total)*100)+"%";
   if (cargado == total && total>0) {
      delete this.onEnterFrame;}
      nextFrame();
      };


En verdad no funciona, pues cuando pruebo el .swf en mi pc el sonido por supuesto lo carga. Pero cuando lo subo a la web reproduce la animacion y pasa por alto la carga del sonido, aparece un valor NaN apenas unos milisegundos y luego comienza la animacion sin el sonido cargado por lo que no se escucha.
Les dejo el link
www.labellezadelasalud.com.ar

Les aclaro que antes tengo la precarga del sitio global, luego una vez cargado pasa a la precarga del sonido, alli da ese valor NaN y comienza la animacion.

Desde ya muchas gracias a quienes puedan ayudarme.[/url]

Por Victoross

5 de clabLevel



Genero:Masculino  

Corrientes - Argentina

firefox
Citar            
MensajeEscrito el 24 Ene 2009 12:52 am
Victoross, por lo que se ve, intuitivamente te diria que cuando entra el menu el sonido sufre algun desajuste en sus funciones, ivestiga por esa parte del script.
Saludos

Por carolinaspanesi

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Ene 2009 02:13 am
Hola, prueba con esto. Suerte.

Código ActionScript :

var SonidoPres:Sound = new Sound();
SonidoPres.onLoad = function(success:Boolean) {
    if (success) {
    this.start();
    porcent.text = "Cargado";
    }
};
SonidoPres.onSoundComplete = function() {
    porcent.text = "Completo";
    clearInterval(my_interval);
    nextFrame();
};

SonidoPres.loadSound("sonidoPres.mp3",false);
var my_interval:Number;
my_interval = setInterval(checkProgress, 100, SonidoPres);
function checkProgress(the_sound:Sound):Void {
    var pct:Number = Math.round(the_sound.getBytesLoaded()/the_sound.getBytesTotal() * 100);
    porcent.text = "Cargando " + pct + "%";
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 24 Ene 2009 06:34 am
Hola, muchas gracias a ambos por su respuesta.
LongeVie, tu código cumple la funcion que necesitaba, la de precargar el sonido antes de avanzar en la linea de tiempo, para que asi una vez requerido el sonido ya este cargado y se reproduzca en el momento indicado...
Ahora bien, te comento un poco mejor mi animacion.
Yo tengo que cargar dos sonidos. El primero se reproduce con la intro, y el segundo es un "loop" que utilizo para lo que seria la web cargada. (SonidoPres = sonido de la intro)
Lo que sucede, y lo puedes comprobar entrando a www.labellezadelasalud.com.ar es que cuando termina de cargar el sonido lo reproduce una vez en ese frame, y luego avanza a la sigiente escena (aclaro que modifique el codigo, lo actualize a nextScene para que funcione como necesito)
Osea que reproduce una vez el sonido sin mostrar la intro, luego muestra la intro y reproduce el sonido correctamente, pero cuando termina el sonido (dura 2 segundos mas que la intro, para este momento se esta mostrando la web principal) retrocede mi linea de tiempo hasta el inicio de la intro y lo hace asi sucesivamente, osea vuelve a arrancar el sonido con la animacion de intro.

Para que me ayudes a resolver el problema, si eres tan amable, adjunto el codigo que me pasaste con la minima modificacion que le hise del nextScene, y ademas adjunto el codigo que utilizo para llamar a SonidoPres cuando comienza la intro.

Codigo segundo fotograma de la Escena 1.

Código :

stop();
var SonidoPres:Sound = new Sound();
SonidoPres.onLoad = function(success:Boolean) {
   if (success) {
      this.start();
      porcent.text = "Cargado";
   }
};
SonidoPres.onSoundComplete = function() {
   porcent.text = "Completo";
   clearInterval(my_interval);
   nextScene();
};
SonidoPres.loadSound("sonidoPres.mp3", false);
var my_interval:Number;
my_interval = setInterval(checkProgress, 100, SonidoPres);
function checkProgress(the_sound:Sound):Void {
   var pct:Number = Math.round(the_sound.getBytesLoaded()/the_sound.getBytesTotal()*100);
   porcent.text = "Cargando "+pct+"%";
}


Codigo de primer fotograma de la Escena 2

Código :

play();
SonidoPres.start(0,1);


Ademas te aclaro que la escena 3 vendria a ser la web cargada y alli se deberia reproducir el segundo sonido (esto lo hago solo a modo de observacion para que puedas comprenden mejor la estructura del sitio)

Por Victoross

5 de clabLevel



Genero:Masculino  

Corrientes - Argentina

firefox
Citar            
MensajeEscrito el 25 Ene 2009 09:27 pm
Invesitgando un poco a mano alzada logre mi objetivo.
Posteo este código por si alguna vez alguien tambien lo necesita.
Entonces, para precargar un sonido y tenerlo para usarlo en el momento que se lo llame el codigo debe ser el siguiente.

Código :

var Sonido:Sound = new Sound();
Sonido.onLoad = function(success:Boolean) {
   if (success) {
      nextFrame();
      porcentaje.text = "Cargado";
   }
};
Sonido.onSoundComplete = function() {
   porcentaje.text = "Completo";
   clearInterval(my_interval);
};

Sonido.loadSound("sonido_externo.mp3", false);
var my_interval:Number;
my_interval = setInterval(checkProgress, 100, Sonido);
function checkProgress(the_sound:Sound):Void {
   var pct:Number = Math.round(the_sound.getBytesLoaded()/the_sound.getBytesTotal()*100);
   porcentaje.text = "Cargando "+pct+"%";
}


Saludos y gracias por ayudarme.

Por Victoross

5 de clabLevel



Genero:Masculino  

Corrientes - Argentina

firefox

 

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