Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/05/2006, 14:49
Avatar de nuevo
nuevo
 
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
Detener una descarga de audio... problema de acumulacion de descargas y sobrecarga

uso este codigo para cargar una lista xml con unos mp3...

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();
__________________
3w.valenciadjs.com
3w.laislatv.com