Разрешить настраиваемое текстовое представление данных в MXML

У меня есть класс ActionScript под названием Dimension, который позволяет клиенту указывать размер, используя значение и такие единицы измерения, как «CM» или «Inches». Я хочу использовать экземпляр этого класса как свойство в MXML, чтобы пользователь мог написать

<DimensionView value = "2cm"/>

Как сделать "2 см" допустимым строковым значением для параметра "Размер"? Я предполагаю, что мне нужно написать метод синтаксического анализатора для моего класса Dimension, но я не могу понять, какой интерфейс я должен реализовать для обеспечения этой функциональности.

Кто-нибудь может помочь?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
186
1

Ответы 1

Один из вариантов - просто ввести свойство value как String, написать для него геттер и сеттер и выполнить там синтаксический анализ:

/**
* 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 из 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--
}

Другие вопросы по теме