Foros del Web » Creando para Internet » Flash y Actionscript »

intercambiar botones con condicional(propiedad visible) As3

Estas en el tema de intercambiar botones con condicional(propiedad visible) As3 en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/05/2011, 11:51
 
Fecha de Ingreso: septiembre-2006
Mensajes: 22
Antigüedad: 18 años, 2 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.
  #2 (permalink)  
Antiguo 11/05/2011, 17:31
Avatar de esdebon  
Fecha de Ingreso: agosto-2008
Ubicación: México
Mensajes: 167
Antigüedad: 16 años, 3 meses
Puntos: 18
Respuesta: intercambiar botones con condicional(propiedad visible) As3

Le agregue unas cosas al código y le puse comentarios.

En escencia la condicion que hace visibles o no los botones sólo se ejecutaba una vez al cargar y necesitas ejecutarla cada vez que das clic en los botones

el método stop() para sound no existe, es close()

Código actionscript:
Ver original
  1. package{
  2.     import flash.display.MovieClip;
  3.     import flash.net.URLRequest;
  4.     import flash.display.Loader;
  5.     import flash.events.MouseEvent;
  6.     import flash.media.Sound;
  7.     import flash.media.SoundChannel;
  8.     public class ejercicio1 extends MovieClip{
  9.             var playing:Boolean = false;
  10.             var sound:Sound;
  11.             var channel:SoundChannel;
  12.             public function ejercicio1(){              
  13.             var ldr1:Loader = new Loader();
  14.                 ldr1.x=50;
  15.                 ldr1.y=100;
  16.                 ldr1.scaleX=.5
  17.                 ldr1.scaleY=.5
  18.             var url1:URLRequest = new URLRequest("play.jpg");
  19.             ldr1.load(url1);
  20.             addChild(ldr1);
  21.             var ldr2:Loader = new Loader();
  22.                 ldr2.x=150;
  23.                 ldr2.y=100;
  24.                 ldr2.scaleX=.5
  25.                 ldr2.scaleY=.5
  26.             var url2:URLRequest = new URLRequest("pause.jpg");
  27.             ldr2.load(url2);
  28.             addChild(ldr2);
  29.             var ldr3:Loader = new Loader();
  30.                 ldr3.x=315;
  31.                 ldr3.y=162;
  32.                 ldr3.scaleX=.52
  33.                 ldr3.scaleY=.52
  34.                 ldr3.rotation=180
  35.             var url3:URLRequest = new URLRequest("next.jpg");
  36.             ldr3.load(url3);
  37.             addChild(ldr3);
  38.             var ldr4:Loader = new Loader();
  39.                 ldr4.x=340;
  40.                 ldr4.y=102;
  41.                 ldr4.scaleX=.52
  42.                 ldr4.scaleY=.52
  43.                 var url4:URLRequest = new URLRequest("next.jpg");
  44.             ldr4.load(url4);
  45.             addChild(ldr4);
  46.             var ldrPlayOn:Loader = new Loader();
  47.                 ldrPlayOn.x=420;
  48.                 ldrPlayOn.y=106;
  49.             var urlPlayOn:URLRequest = new URLRequest("sound_on.png");
  50.             ldrPlayOn.load(urlPlayOn);
  51.             addChild(ldrPlayOn);
  52.             var ldrPlayOff:Loader = new Loader();
  53.                 ldrPlayOff.x=420;
  54.                 ldrPlayOff.y=106;
  55.             var urlPlayOff:URLRequest = new URLRequest("sound_off.png");
  56.             ldrPlayOff.load(urlPlayOff);
  57.             addChild(ldrPlayOff);          
  58.             ldrPlayOff.addEventListener(MouseEvent.CLICK,detenerReproduccion);
  59.             ldrPlayOn.addEventListener(MouseEvent.CLICK,iniciarReproduccion);                  
  60.             //---Condicion
  61.             checaEstadoBoton();
  62.            
  63.         }//fin del cargador    
  64.        
  65.        
  66.         ///////////////////////////////////////Esto sólo se ejecutaba al cargar y nunca mas.
  67.         function checaEstadoBoton(){   
  68.             if(playing==false){
  69.                 ldrPlayOff.visible=false;
  70.                 ldrPlayOn.visible=true;        
  71.             }
  72.             if(playing==true){
  73.                 ldrPlayOff.visible=true;
  74.                 ldrPlayOn.visible=false;
  75.             }
  76.         }
  77.        
  78.         function iniciarReproduccion(e:MouseEvent){
  79.             sound = new Sound(new URLRequest("song1.mp3"));
  80.             channel = sound.play();
  81.             playing=true;
  82.             checaEstadoBoton();
  83.         }
  84.         function detenerReproduccion(e:MouseEvent){
  85.             playing=false;
  86.             checaEstadoBoton();
  87.             sound.close();   // no hay stop es close().
  88.         }
  89.        
  90.     }//fin de la clase
  91. }//fin del programa



__________________
Mi sitio: http://www.fluocode.com

Etiquetas: as3, botones, intercambiar, visible
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:12.