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

Problema para controlar AS3

Estas en el tema de Problema para controlar AS3 en el foro de Flash y Actionscript en Foros del Web. Os cuento, nose que hago exactamente mal o porque no funciona, pero tengo declarada una clase, dicha clase tienes dos metodos que me hacen dos ...
  #1 (permalink)  
Antiguo 01/05/2009, 05:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 194
Antigüedad: 16 años, 11 meses
Puntos: 5
Pregunta Problema para controlar AS3

Os cuento, nose que hago exactamente mal o porque no funciona, pero tengo declarada una clase, dicha clase tienes dos metodos que me hacen dos funciones, uno funciona correctamente, pero el otro, que lo unico que tiene que hacer es modificar el "alpha" de un MovieClip que le paso no consigo controlarlo, deberia de empezar a modificar el "alpha" del MC cuando la variable estado este a "true", pero tengo algun problema de concepto con lo del codigo en el fotograma1 que no me deja hacerlo funcionar correctamente. ¿Como lo soluciono?

Aqui teneis el codigo del fotograma1 del fla y de la clase del .as

.fla
Código:
import Presentacion; 
var prt:Presentacion = new Presentacion();

var cjBasico:Basico = new Basico();
var miTexto:String = campoTexto.text;
campoTexto.text = "";

prt.escribir(miTexto, campoTexto, 30);
cjBasico.width = 100;
cjBasico.height = 100;
cjBasico.x = 80;
cjBasico.y = 140;
cjBasico.alpha = 0;
addChild(cjBasico);
prt.setEstado(true);
prt.mostrarCajas(cjBasico);
//prt.setEstado(false);
.as
Código:
package {

	import flash.text.TextField;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.display.MovieClip;

	public class Presentacion {

		var estado:Boolean = false;

		function Presentacion() {
		}
		
		public function setEstado(estado:Boolean):void{
			this.estado = estado;
		}

		public function escribir(texto:String, campo:TextField, intervalo:Number):void {

			function escribeLetra(Event:TimerEvent):void {
				if (campo.length<texto.length) {
					campo.appendText(texto.charAt(campo.length));
				}
			}

			var miTimer:Timer=new Timer(intervalo,texto.length);
			miTimer.addEventListener(TimerEvent.TIMER, escribeLetra);
			miTimer.start();
		}

		public function mostrarCajas(caja:MovieClip):void {
			function cambiarAlpha(Event:TimerEvent):void {
				if (caja.alpha<1 && estado) {
					caja.alpha+=0.10;
				}
			}

				var miTimer:Timer=new Timer(50,0);
				miTimer.addEventListener(TimerEvent.TIMER, cambiarAlpha);
				miTimer.start();
		}
	}

}
Gracias y un saludo!
  #2 (permalink)  
Antiguo 01/05/2009, 11:58
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Problema para controlar AS3

Hola MiLLeN !

Esas funciones internas que se encuentran dentro de los métodos deberías pasarlas a métodos privados de clase:

Código actionscript:
Ver original
  1. package
  2. {
  3.  
  4.     import flash.text.TextField;
  5.     import flash.utils.Timer;
  6.     import flash.events.TimerEvent;
  7.     import flash.display.MovieClip;
  8.  
  9.     public class Presentacion
  10.     {
  11.  
  12.         private var estado:Boolean = false;
  13.         private var caja:MovieClip;
  14.         private var campo:TextField;
  15.         private var texto:String;
  16.  
  17.         function Presentacion()
  18.         {
  19.         }
  20.        
  21.         public function setEstado(estado:Boolean):void
  22.         {
  23.             this.estado = estado;
  24.         }
  25.  
  26.         public function escribir(texto:String, campo:TextField, intervalo:Number):void
  27.         {
  28.             this.campo = campo;
  29.             this.texto = texto;
  30.             var miTimer:Timer=new Timer(intervalo,texto.length);
  31.             miTimer.addEventListener(TimerEvent.TIMER, escribeLetra);
  32.             miTimer.start();
  33.         }
  34.  
  35.         private function escribeLetra(Event:TimerEvent):void
  36.         {
  37.             if (campo.length<texto.length) {
  38.                 campo.appendText(texto.charAt(campo.length));
  39.             }
  40.         }
  41.  
  42.         public function mostrarCajas(caja:MovieClip):void
  43.         {
  44.             this.caja = caja;
  45.             var miTimer:Timer=new Timer(50,0);
  46.             miTimer.addEventListener(TimerEvent.TIMER, cambiarAlpha);
  47.             miTimer.start();
  48.         }
  49.  
  50.         private function cambiarAlpha(Event:TimerEvent):void
  51.         {
  52.             if (caja.alpha<1 && estado) {
  53.                 caja.alpha+=0.10;
  54.             }
  55.         }
  56.     }
  57. }

Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
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 00:10.