Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2011, 11:51
kodaichi
 
Fecha de Ingreso: septiembre-2006
Mensajes: 22
Antigüedad: 17 años, 8 meses
Puntos: 0
intercambiar botones con condicional(propiedad visible) As3

Hola a todos nuevamente.

Bueno estoy trabajando con un boton que hara que se escuche o no el track que se este reproduciendo actualmente.

Antes de colocar el codigo explicare brevemente que es lo que hace.

Tengo dos condicionales que comprueban si la varible playing es true o false y segun eso muestran y ocultan un boton.

Tengo dos listeners uno para cada boton es decir un listener para el boton de audio reproduciendose, y otro listener para el audio silenciado, las funciones que son llamadas por estos listeners son : iniciarReproduccion y detenerReproduccion(ambas de tipo CLICK).

Bueno con esto ya deberia ser entendible el codigo. Al principio playing es false, cuando se le da click al boton ldrPlayOn se activa la funcion que cambiara playing a true, y por ende el condicional hara que me deje de mostrar el icono normal y me muestre el icono de audio tachado. Y viceversa cuando se le da click al boton ldrPlayOff.

Mi problema viene cuando pruebo la pelicula, al darle click el audio empieza a reproducirse pero lo que deberia pasar es que el icono de audio activo deberia desaparecer y mostrarse en ves el icono de audio tachado pero esto no pasa, el icono de audio activo se queda intacto.

No se si me explique bien, gracias de antemano.

Código:
package{
	import flash.display.MovieClip;
	import flash.net.URLRequest;
	import flash.display.Loader;
	import flash.events.MouseEvent;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	public class ejercicio1 extends MovieClip{
			var playing:Boolean = false;
			var sound:Sound;
			var channel:SoundChannel;
			public function ejercicio1(){				
			var ldr1:Loader = new Loader();
				ldr1.x=50;
				ldr1.y=100;
				ldr1.scaleX=.5
				ldr1.scaleY=.5
			var url1:URLRequest = new URLRequest("play.jpg");
			ldr1.load(url1);
			addChild(ldr1);
			var ldr2:Loader = new Loader();
				ldr2.x=150;
				ldr2.y=100;
				ldr2.scaleX=.5
				ldr2.scaleY=.5
			var url2:URLRequest = new URLRequest("pause.jpg");
			ldr2.load(url2);
			addChild(ldr2);
			var ldr3:Loader = new Loader();
				ldr3.x=315;
				ldr3.y=162;
				ldr3.scaleX=.52
				ldr3.scaleY=.52
				ldr3.rotation=180
			var url3:URLRequest = new URLRequest("next.jpg");
			ldr3.load(url3);
			addChild(ldr3);	
			var ldr4:Loader = new Loader();
				ldr4.x=340;
				ldr4.y=102;
				ldr4.scaleX=.52
				ldr4.scaleY=.52
				var url4:URLRequest = new URLRequest("next.jpg");
			ldr4.load(url4);
			addChild(ldr4);
			var ldrPlayOn:Loader = new Loader();
				ldrPlayOn.x=420;
				ldrPlayOn.y=106;
			var urlPlayOn:URLRequest = new URLRequest("sound_on.png");
			ldrPlayOn.load(urlPlayOn);
			addChild(ldrPlayOn);
			var ldrPlayOff:Loader = new Loader();
				ldrPlayOff.x=420;
				ldrPlayOff.y=106;
			var urlPlayOff:URLRequest = new URLRequest("sound_off.png");
			ldrPlayOff.load(urlPlayOff);
			addChild(ldrPlayOff);			
			ldrPlayOff.addEventListener(MouseEvent.CLICK,detenerReproduccion);
			ldrPlayOn.addEventListener(MouseEvent.CLICK,iniciarReproduccion);					
			//---Condicion
			if(playing==false){
				ldrPlayOff.visible=false;
				ldrPlayOn.visible=true;			
			}
			if(playing==true){
				ldrPlayOff.visible=true;
				ldrPlayOn.visible=false;
			}
		}//fin del cargador		
		function iniciarReproduccion(e:MouseEvent){
			sound = new Sound(new URLRequest("song1.mp3"));
			channel = sound.play();
			playing=true;
		}
		function detenerReproduccion(e:MouseEvent){
			playing=false;			
		}
		
	}//fin de la clase
}//fin del programa
PD: como veran la funcion detenerReproduccion basicamente no hace nada mas que cambiar la el valor de playing, bueno esto es porque no se hasta ahora como parar el sonido lo eh intentado con channel = sound.stop(); pero me bota este error:
Código:
E:\4to ciclo\Animacion 2D III\AD2DIII semana1Alumno\ejercicio1.as, Línea 77	1061: Llamada a un método stop posiblemente no definido mediante una referencia con tipo estático flash.media:Sound.
Salu2.