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!