18mai/080
Flex Formatter: Coder ses propres formateurs en ActionScript
Si l'un des Formatter standard ne convient pas à votre besoin, vous pouvez écrire votre propre Formatter. Pour écrire un Formatter personalisé, vous devez créer une classe ActionScript qui extends mx.formatters.Formatter. Cette classe doit surcharger la méthode format().
L'exemple suivant créer un nouveau Formatter qui va ajouter des 0 pour que la chaîne soit de la longueur de la propriété "count" du Formatter:
package
{
import mx.formatters.Formatter;
public class ZeroFillFormatter extends Formatter {
private var _count:int;
public function set count(value:int):void{
_count = value;
}
public function get count():int{
return _count;
}
public function ZeroFillFormatter(){
super();
_count = -1;
}
// méthode format() à surcharger
override public function format(value:Object):String{
// si nécéssaire, on convertit le paramètre en une String, sinon on le cast en String
var stringValue:String;
if(!(value is String)){
stringValue = value.toString();
} else {
stringValue = String(value);
}
// si la longueur de la chaîne est inférieure à _count,
// on la précède par des zéros
while (_count > stringValue.length){
stringValue = "0" + stringValue;
}
return stringValue;
}
}
}
Et la partie MXML pour utiliser le Formatter que l'on vient de créer:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:formatter="*">
<mx:TextInput text="{zeroFillFormatter.format(123456789)}"/>
<formatter:ZeroFillFormatter id="zeroFillFormatter" count="15"/>
</mx:Application>
Flex Source Code Download: Télécharger le code source complet de l'application
This movie requires Flash Player 11
Articles similaires
- Flex Validator: Coder ses propres validateurs en ActionScript
- Flex ActionScript – Héritage en ActionScript 3
- Flex AdvancedDataGrid – Utiliser un Formatter dans une colonne
- DataFilterLib – Utilisation de filtres personnalisés
- Flex Preloader: Créer un Preloader personnalisé
Commentaires (0)
Trackbacks (0)
(Souscrire aux commentaires de cet article)
Aucun trackbacks pour l'instant





