la lista la meto en un paginado y la paso por un menu de botones....
la musica se lanza con una condicion... que en el 60% haga un fader-out y se detenga...
ahora bien... si yo pulso otra cancion mientras escucho 1... como son canciones gordas va lento,,, ademas de que se acumulan hasta 3 descargas a la ves......
hay alguna forma de deterner la descarga de audio cuando pulso el boton de otra cancion.,.. ya que lo normal es ir saltado de cancion en cancion... por si no te gusta...
Código:
var menuXml:XML = new XML(); menuXml.ignoreWhite = true; menuXml.onLoad = function(success) { if(success) mostrar_items(1); } menuXml.load("xml/chr.xml"); var radio:Sound = new Sound(); //----------------------------------------> //bien esta funcion muestra los items, se le pasa como parametro el nro de página var mostrar_items:Function = function(pagina:Number):Void{ var lista_menu:Array = menuXml.firstChild.childNodes; //definimos las variables var cuantos_x_pagina:Number = 33; var total_paginas:Number = Math.ceil(lista_menu.length/cuantos_x_pagina); var desde:Number = (pagina-1)*cuantos_x_pagina; var hasta:Number = desde+cuantos_x_pagina; //eliminamos los items previos (porsiaca) for(var i in this) if(i.substr(0,3)=='btn') this[i].removeMovieClip(); this.controles.removeMovieClip(); //agregamos el menu de control var control_ref:MovieClip = this.attachMovie('controles','controles',this.getNextHighestDepth()); control_ref.texto.text = 'Página de resultados: '+pagina+'/'+total_paginas; if(pagina==1) control_ref.anterior.enabled = false; if(pagina==total_paginas) control_ref.siguiente.enabled = false; control_ref.anterior.onRelease = function(){ mostrar_items(pagina-1); } control_ref.siguiente.onRelease = function(){ mostrar_items(pagina+1); } for(n=desde;n<hasta;n++){ if(n<lista_menu.length){ var item_ref:MovieClip = this.attachMovie('item_mc','btn'+n,this.getNextHighestDepth(),{_y:(n-desde)*20+20}); item_ref.miURL = lista_menu[n].attributes.url; //guardamos la url como variable de cada item_ref item_ref.miNAME = lista_menu[n].firstChild.nodeValue; //le ponemos texto item_ref.etiqueta_txt.text = lista_menu[n].firstChild.nodeValue; //le ponemos texto item_ref.Rectangulo_btn.onRelease = function(){ _root.menu_mc_audio_1.removeMovieClip(); this._parent.reproducir();} //y le damos accion al botón } } } stop();
Código:
var controlador:MovieClip = this; var porcentaje_salto:Number = 60;//formato 60%, algo mas de la mitad... var reproducir:Function = function():Void { var radio:Sound = new Sound(); radio.stop(); radio.loadSound(miURL, true); _root.etiqueta_name_txt.text = miNAME; controlador.vol = 100; controlador.onEnterFrame = function(){ if(radio.getBytesLoaded() > 4){ var limite:Number = Math.floor(radio.duration*(porcentaje_salto/100)); if(radio.position>=limite){ radio.setVolume(this.vol--); if(this.vol<=0){ delete this.onEnterFrame; radio.stop(); } } } } }; stop();