Лично я в приложениях на ActionScript ещё не встречался с использованием римской системы счисления, хотя в реальной жизни использование римских цифр далеко не редкое явление. Вероятно, причина заключается в сложности работы с римской системой счисления. Но это поправимо. Буквально вчера узнал о пользовательском классе RomanNumbers (автор сего класса остался мне неизвестен). Класс RomanNumbers написан на языке ActionScript 3.0 и позволяем переводить арабские цифры в римские и обратно. Подробнее работа с этим классом рассматривается ниже.
Первым делом, как всегда, мы должны подключить пользовательский класс к нашему флеш-проекту (проект я создал в Adobe Flash CS5.5, а класс RomanNumbers идёт в комплекте с исходником, ссылка на который в конце статьи).
Код ActionScript 3.0:
import RomanNumbers;
Подключили. Теперь мы можем использовать класс. В арсенале RomanNumbers всего три полезных статических метода:
1.) Метод getRomanNumber() принимает в качестве аргумента целое число, которое переводит в римскую систему счисления и возвращает в виде строки.
Код ActionScript 3.0:
/*
подключаем класс
*/
import RomanNumbers;
/*
используем метод(ы)
*/
trace(RomanNumbers.getRomanNumber(21)) // вернёт строку "XXI"
2.) Метод getArabicNumber() принимает в качестве параметра строку, которая является римским числом, а возвращает просто целое число.
Код ActionScript 3.0:
/*
подключаем класс
*/
import RomanNumbers;
/*
используем метод(ы)
*/
trace(RomanNumbers.getArabicNumber("DCCCLXXXVIII")) // вернёт число 888
3.) Метод testRoman() принимает в качестве параметра строку и проверяет, является ли эта строка римским числом. Если является, то метод возвращает true, а иначе - false.
Код ActionScript 3.0:
/*
подключаем класс
*/
import RomanNumbers;
/*
используем метод(ы)
*/
trace(RomanNumbers.testRoman("MAXIM")) // вернёт false
trace(RomanNumbers.testRoman("MMXI")) // вернёт true
В данном примере "MMXI" - число 2011 в римской системе счисления, а "MAXIM" не является римским числом.
Исходник под Adobe Flash CS5.5 и класс RomanNumbers скачиваем здесь.