2008-12-01 16 views
0

我有一个名为Dimension的actionscript类,它允许客户端使用值和单位(如“CM”或“Inches”)指定维度。我想用这个类的一个实例为MXML中的属性,因此用户可以编写允许MXML中数据的自定义文本表示

<DimensionView value="2cm"/> 

怎样使“2厘米”为维度接受的字符串值?我假设我需要在我的Dimension类上编写一个解析器方法,但是我无法确定应该实现哪个接口来提供此功能。

任何人都可以帮忙吗?

回答

1

一种选择是直接输入value属性作为String,写一个getter和为它制定者和执行解析有:

/** 
* 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")); 
} 

相关提示,框架组件实现的功能通过使用名为PercentProxy的未公开元数据字段,允许在MXML中分配时在某些大小特性中使用百分比符号。下面的例子是width属性获取器和设置器从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-- 
}