Преобразование числа в слова с помощью flex

Я пытаюсь преобразовать запись с помощью числового степпера в flex в слова для отображения в текстовом поле.

то есть пользователь использует степпер для ввода «89» в качестве значения, а в текстовой области отображаются слова «восемьдесят девять».

После долгих поисков я не нашел ничего, что помогло бы - несколько функций javascript, но это все.

любой пример кода помощи будет высоко оценен.

заранее спасибо.


person charlie    schedule 05.05.2010    source источник
comment
JavaScript и ActionScript — это один и тот же язык. Вы можете использовать JavaScript или, по крайней мере, обновить его, чтобы он был полностью совместим с AS3, и использовать его.   -  person Samuel Neff    schedule 05.05.2010
comment
Это не совсем точно. Они очень похожи, оба основаны на скрипте ECMA, но легко преобразовать javascript в скрипт действия.   -  person quoo    schedule 05.05.2010


Ответы (1)


Я бы посоветовал вам создать хеш-таблицу с числами от «0» до «99» в качестве индексов (заключенных в кавычки), а значения — это имена слов для этих чисел. Это сделает локализацию возможной без большого количества сложного кода, чтобы определить, например, разницу между «одиннадцатью» и «дзюичи» (ten one) в японском языке или между «девяносто девятью» и «кватре винг дикс нёф» (< em>восемьдесят девятнадцать) по-французски, «двадцать два» и «zwei und zwanzig» (двадцать два) по-немецки и т. д.

Назовем эту хеш-таблицу myNumberWords. Затем вы просто преобразуете свои цифры следующим образом:

function getWordsFromNumber(num:Number) : String {
  return myNumberWords[num.toString()]; 
}

Если вы хотите подняться выше 99, добавьте решетку для слов сотни, тысячи, миллион, миллиард и т. д., затем разделите все число на массив и поместите соответствующие единицы после каждого третьего числа, считая с вершины стека. Вы также должны иметь нулевые значения и значения с двойным нулем, которые считаются пустыми строками (""), за исключением случаев, когда есть только одна цифра, и это ноль и т. д.

person Robusto    schedule 05.05.2010