0

我有一个名为 Dimension 的 actionscript 类,它允许客户使用一个值和一个单位(例如“CM”或“Inches”)来指定一个维度。我想使用这个类的一个实例作为 MXML 中的一个属性,所以用户可以编写

<DimensionView value="2cm"/>

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

任何人都可以帮忙吗?

4

1 回答 1

1

一种选择是将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--
}
于 2008-12-01T17:14:51.353 回答