Las clases de XIXO (Vol.1)
Ha ha ha hoy vamos a cargar audio con ActionScript 3.0!
Primero creamos nuestro objeto para el sonido igual que se hacía en AS2.0 (o casi…)
var mi_cancioncilla:Sound = new Sound();
a continuación cargamos el audio que queramos… para ello usamos el metodo load() del objeto Sound()
mi_cancioncilla.load (“http://www.2ddepot.com/aduana/fifiproject/hardfucking.mp3”);
lo ideal es que si vamos a meter tanta mierda en nuestra línea de tiempo que al menos sea mierda que podamos reciclar, asi que vamos a hacer ese load() un poco más dinámico…
para empezar hagamos que el nombre del archivo sea una variable, asi nos será fácil pasar de cargar algo de Tenacious D a cargar algo de la Pantoja
var archivo:String = “http://www.2ddepot.com/aduana/fifiproject/hardfucking.mp3”;
y ahora terminamos por hacer dinámica la petición
var peticion:URLRequest = new URLRequest(archivo);
asi nos queda lo de arriba “niquelao”
mi_cancioncilla.load(peticion);
… pues YA ESTÁ hemos metido el audio en el objeto, ahora sólo queda controlar la descarga para que suene cuando deba, y claro está ( ^_^) hacer que suene!
Primero a por ese peacho de loading, aqui viene la locura juvenil ha ha ha ha hay que añadirle eventos a nuestro querido sonidillo, asin que añadimos uno de tipo Progress (que sirven para controlar las cargash)
mi_cancioncilla.addEventListener(ProgressEvent.PROGRESS, cargando_es_gerundio);
y ahora que diablos quereis que haga cuando se cumpla nuestro evento (en este caso cada vez que el objeto mi_cancioncilla reciba datox), pues nada… función al canto (que hemos usado al definir el EventHandler)
function cargando_es_gerundio(evento:ProgressEvent) {
trace(“cargando_es_gerundio: ” + evento);
}
si eso lo ejecutais tendreis una salida tal que asin en vuestro ouput:
cargando_es_gerundio: [ProgressEvent type=”progress” bubbles=false cancelable=false eventPhase=2 bytesLoaded=607077 bytesTotal=856474]
YESH! ahi teneis todo lo que necesitais! ( ^_^) ese bytesLoaded y ese bytesTotal, pues na… accedamos a ellos asin de sencillo
function cargando_es_gerundio(evento:ProgressEvent) {
trace(“cargando_es_gerundio CARGADO: ” + evento.bytesLoaded);
trace(“cargando_es_gerundio TOTAL: ” + evento.bytesTotal);
}
y con eso la regla de siempre para el percent, y el mi_barrota.scaleX = percent! y ya tendriamos un loading. Podeis controlar comprbando el cargado VS total cuando ha terminado… pero FLAXH ya viene preparado para eso, pues que se lo curre él, añadamos otro evento, esta vez del tipo COMPLETE
mi_cancioncilla.addEventListener(Event.COMPLETE, completado);
y su función de turno:
function completado(evento:Event): {
trace(“Completado YEAH!”);
}
asi que cuando termina de carga… te grita un Completado YEAH!, pero lo ideal ( ^.^) es que reproduzca la canción, pueeees sigamos ( @,@) que ya casi lo tenemos. Para eso necesitamos un… CANAL DE AUDIO! ( O_O) eso significa que flash ya no se hará la picha un lio reproduciendo varias cosas a la vez?¿? el tiempo lo dirá, por ahora pinta muy bien.
var canal1:SoundChannel;
( ^_^) yata… no es muy dificil. Y ahora le decimos que queremos hacer en ese canal… pues tocar nuestra canción!
canal1 = mi_cancioncilla.play();
yesh! ahora metemos está última línea de código para que la ejecute cuando termine la carga! que pa eso hemos hecho un loading
function completado(evento:Event): {
trace(“Completado YEAH!”);
canal1 = mi_cancioncilla.play();
}
Aún quedan muchas cosas como el vólumen, el pan, el stop, el evento ID3 y máx! pero todo a la vez no! CEPORRAS! NO LA MUERDAS BRUTA