我有一个名为 Dimension 的 actionscript 类,它允许客户使用一个值和一个单位(例如“CM”或“Inches”)来指定一个维度。我想使用这个类的一个实例作为 MXML 中的一个属性,所以用户可以编写
<DimensionView value="2cm"/>
如何使“2cm”成为 Dimension 可接受的字符串值?我假设我需要在我的 Dimension 类上编写一个解析器方法,但我无法确定应该实现哪个接口来提供此功能。
任何人都可以帮忙吗?
我有一个名为 Dimension 的 actionscript 类,它允许客户使用一个值和一个单位(例如“CM”或“Inches”)来指定一个维度。我想使用这个类的一个实例作为 MXML 中的一个属性,所以用户可以编写
<DimensionView value="2cm"/>
如何使“2cm”成为 Dimension 可接受的字符串值?我假设我需要在我的 Dimension 类上编写一个解析器方法,但我无法确定应该实现哪个接口来提供此功能。
任何人都可以帮忙吗?
一种选择是将value
属性键入为 a 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"));
}
在相关的说明中,框架组件实现了允许在某些大小调整属性中使用百分号的功能,当在 MXML 中分配时,通过使用名为PercentProxy
. 下面的示例是来自的width
属性 getter 和 setter 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--
}