代码之家  ›  专栏  ›  技术社区  ›  Grokys

允许在MXML中自定义数据文本表示

  •  0
  • Grokys  · 技术社区  · 16 年前

    <DimensionView value="2cm"/>
    

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

    有人能帮忙吗?

    1 回复  |  直到 16 年前
        1
  •  1
  •   hasseg    16 年前

    一种方法是键入 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 . 下面的例子是 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--
    }