Abril 30, 2004

Seguimos con los botones

Hace un par de semanasposteé sobre los problemas que estábamos teniendo con unos botones.

Aunque hubo comentarios con soluciones bastante interesantes, nos vimos obligados a seguir adelante con nuestra "solución" por falta de tiempo para hacer otra cosa.

Pero, finalmente, nos hemos visto obligados a cambiar algunos de los botones, para poderlos "calzar" en unos diálogos modales que estamos construyendo.

Así que ahora tenemos un movieclip con tres frames, con etiquetas "normal", "over", y "click", y un textfield con nombre de instancia "literal". Queremos asignar el contenido del literal del botón, su formato, y el handler para el onRelease, pero tenemos que poder hacerlo en momentos distintos de la ejecución del programa. Cuando la aplicación se inicializa, asignamos texto y formato, y el handler dependerá del flujo de ejecución del programa

Este es el resultado:

class net.designnation.UI.buttonHandler
{
 public static function setBTHandlers( buttonInstance: MovieClip, texto: String )
 {
  buttonInstance[ "textoParam" ] = texto;
  buttonInstance[ "literal" ].text = texto;		
  
  buttonInstance.onRollOver = function( )
  {
   this.gotoAndStop( "over" );
   var theInstance: String = "";
   this[ "literal" ].text = this[ "textoParam" ];
  };
  		
  buttonInstance.onRollOut = function( texto )
  {
   this.gotoAndStop( "normal" );
   this[ "literal" ].text = this[ "textoParam" ];
  };
  
  buttonInstance.onPress = function( texto )
  {
   this.gotoAndStop( "click" );
   this[ "literal" ].text = this[ "textoParam" ];
  };
  		
  		
 }
 	
 public static function setNewTextFormat( buttonInstance: MovieClip, format: TextFormat )
 {
  buttonInstance.literal.setNewTextFormat( format );
 }
 	
 public static function setTextFormat( buttonInstance: MovieClip, format: TextFormat )
 {
  buttonInstance.literal.setTextFormat( format );
 }	
 	
 public static function setOnRelease( buttonInstance: MovieClip, value: Function )
 {
  buttonInstance._onRelease = value;
  		
  buttonInstance.onRelease = function ()
  {
   this._onRelease( );
   this.gotoAndStop( "normal" );
  }
 }
}

¡Buen fin de semana!

Escrito por Cesar Tardaguila en: Abril 30, 2004 10:29 AM | TrackBack
Comentarios