2008-12-01 11 views
0

J'ai une classe ActionScript appelée Dimension, qui permet à un client de spécifier une dimension en utilisant une valeur et une unité telle que "CM" ou "Pouces". Je veux utiliser une instance de cette classe comme une propriété dans MXML, de sorte qu'un utilisateur puisse écrireAutoriser la représentation textuelle personnalisée des données dans MXML

<DimensionView value="2cm"/> 

Comment puis-je faire « 2cm » une valeur de chaîne acceptée pour la dimension? Je suppose que j'ai besoin d'écrire une méthode parser sur ma classe Dimension, mais je ne peux pas déterminer quelle interface je devrais mettre en œuvre pour fournir cette fonctionnalité.

Quelqu'un peut-il aider?

Répondre

1

Une option est de taper simplement la value propriété comme String, écrire un getter et un setter pour elle et faire l'analyse syntaxique:

/** 
* docs here 
*/ 
[Bindable(event="valueChanged")] 
public function get value():String 
{ 
    return _valueInt.toString(); 
} 
/** 
* @private 
*/ 
public function set value(aVal:String):void 
{ 
    // parse the aVal String to an int (or whatever) here 
    _valueInt = parsed_aVal; 
    dispatchEvent(new Event("valueChanged")); 
} 

Sur le même sujet, les éléments du cadre mettent en œuvre la fonction de permettant l'utilisation de signes de pourcentage dans certaines propriétés de dimensionnement, lorsqu'ils sont attribués en MXML, en utilisant un champ de métadonnées non documenté appelé PercentProxy. L'exemple ci-dessous est le width propriété getter et setter à partir de mx.core.UIComponent:

[Bindable("widthChanged")] 
[Inspectable(category="General")] 
[PercentProxy("percentWidth")] 
override public function get width():Number 
{ 
    // --snip snip-- 
} 
override public function set width(value:Number):void 
{ 
    // --snip snip-- 
} 
Questions connexes