Когда-то давно я сделал на Flash-е программу для подбора цвета. Потом даже не поленился её переписать с ActionScript 2 на ActionScript 3. И вот, наконец-то, я сделал то, что запланировал еще тогда: собрал эту программу для desktop под AIR. Сделал это по двум причинам: работающая во флеш-плейере она выглядит не эстетично и сборка под AIR добавляет возможностей, которых у Flash Player попросту нет.
И если первый аргумент не видится важным, то второй - концептуален. Теперь программа может выбирать цвет в любом месте экрана. У флешевого варианта такой возможности нет принципиально. Зато среда AIR позволяет использовать любые функции операционной системы через собственный API или, если нужной вам функции в API нет - через "родные" для операционной системы процессы (flash.desktop.NativeProcess). Обмен данными с такими процессами происходит через стандартные потоки ввода-вывода. Это крайне удобно! Но и это не единственный способ. Можно использовать сокеты. Я, конечно, в этом приложении не стал использовать сокеты из-за более высокой сложности реализации, чем через стандартные потоки. Но возможность-то никуда не делась. ;)
Мне видится такое положение вещей весьма выгодным. На Flash/Flex легче чем на C/C++ создавать интерфейсы. А системные функции могут выполнять "родные" процессы.
Теперь немного о "родном" процессе, помогающем выбрать цвет в любом месте экрана. Он реализован на C/C++ с использованием WinAPI. Написал версию только под Винду. Если вдруг программа станет востребованной - можно сделать и для Linux. Я чаще работаю под Windows, поэтому решение соответствующее. Еще, конечно, можно доработать некоторые моменты, но мне для своих нужд пока достаточно.
Кому будет интересна программа - устанавливайте на здоровье:
- Установщик, *.exe 332 Kb
- Архив автономной копии, *.zip 21.5 Mb
2 комментария:
Добавить под полями ввода флажок "Ввод значений в hex-формате" -- и совсем красота будет! Или вообще переключать значения вместе с результатом (иногда значение цвета нужно именно как rgb(204, 51, 51), а не #c33). А можно ещё и поле прозрачности добавить, для rgba-значений.
Вроде есть способ ввода в hex-формате? А насчет вывода в rgba - буду думать. Мысль хорошая. Спасибо!
Отправить комментарий