我有一个名为Dimension的actionscript类,它允许客户端使用值和单位(如“CM”或“Inches”)指定维度。我想在MXML中使用此类的实例作为属性,因此用户可以编写
<DimensionView value="2cm"/>
如何让“2cm”成为Dimension的可接受字符串值?我假设我需要在我的Dimension类上编写一个解析器方法,但是我无法确定我应该实现哪个接口来提供这个功能。
有人可以帮忙吗?
答案 0 :(得分:1)
一种选择是只需将value
属性键入为String
,为其编写一个getter和setter并在那里进行解析:
/**
* 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
的{{1}}属性getter和setter:
mx.core.UIComponent