Просто оставлю эту ссылку здесь: http://try.haxe.org/#30E35
Там прототип парсера логов из чата в Skype, которым я иногда пользуюсь для себя и чтобы быстро почистить полезный с моей тз кусок чата и выкинуть его в этот раздел форума: http://haxe.ru/forums/raznoe/logi-chata (кстати, мне жаль немного, что я один пока пытаюсь увековечивать (и делать доступными поисковикам) куски чата так. Особенно если вы задали там вопрос, а вам полезно ответили, было бы хорошо потратить пару минут на то, чтобы расшарить пользу с остальным миром.)
Пользуйтесь тоже на здоровье. Достаточно вставить нужный кусок в содержимое переменной log и нажать Run (если кусок большой, после этого еще придется нажать Fullscreen, чтобы увидеть всё)
Узнал, что, оказывается, можно менять базовый класс в зависимости от настроек проекта.
Вот простейший пример, как это сделать с помощью флагов компиляции:
По этой статье prevent android from dimming (w/ haxe and nme)
Этот путь подходит для быстрого включения в свой NME проект простых нативных функций или настроек Android, без использования расширений.
1. Создаем файл MainActivity.java в папке проекта, который и будет шаблоном.
Предотвращение угасания экрана:
для тех, кто не хочет возиться так же как я при использовании нативных курсоров из flash 10.2 есть несколько полезных советов
- скачать последнюю версию haxe (автоматический билд, на момент написания это r3794)
- для владельцев flashdevelop (по сути к делу это не относится, но в текущем релизе нельзя выбрать версию плеера 10.2) - обзавестись flashdevelop 4
- прочитать внимательно этот тред на офф. форуме
Используя написанное тут http://haxe.ru/node/210 и тут http://nanoflexer.blogspot.com/2009/09/1.html разобрался с компиляцией под haXe/C++. Прикрутил самописную визуальную библиотеку VistaGUI (очень сырую) и создал пример оконного приложения. Правда компоненты CheckBox и RadioButton сломались, но это не важно, потому что моя VistaGUI и правда очень сырая.
haXe/C++ версия:
http://cs10623.vkontakte.ru/u13476671/116385245/y_33fca01d.jpg
haXe/flash версия:
http://cs10623.vkontakte.ru/u13476671/116385245/y_9e83a1a0.jpg
Исходники:
http://free-files.at.ua/load/0-0-0-25-20
Портируя одну библиотеку с AS3 на haXe, пришел к выводу, что в последнем вместо класса flash.utils.Dictionary стоит использовать flash.utils.TypedDictionary, в первую очередь из-за того, что в haXe только типизированный словарь реализует Iterator, т.е. его элементы можно перебрать в цикле типа for (i in dict).
Иногда бывает удобно использовать listener слушающий события клавиатуры глобально, т.е. во всём приложении (например при создании flash игр). В flash8 с этим не возникает особых проблем, но в flash9 есть баг, в результате которого при удалении со сцены объекта, на котором был фокус, события клавиатуры перестают отлавливаться и сценой в целом, так как фокус в таком случае теряет и stage.
Иногда может помочь простой принудительный возврат фокуса объекту stage:
stage.focus = stage;
Начал делать SWHX проект и узнал, что в Neko на данный момент отсутствует поддержка класса haxe.Timer. Точнее поддерживается только один статический его метод Timer.stamp(). Это было несколько неожиданно.
Погуглив немного, узнал что для Neko вместо него используется neko.Sys.sleep(seconds :Float);
Это сняло часть вопросов, но не все. Этому решению в некоторых случаях не хватает гибкости Timer.
В рассылке нашёл более развернутый вариант реализации таймеров в Neko, который после небольшой доработки под текущую версию, превратился у меня вот в такую функцию:
В качестве ещё одного сниппета не могу не рассказать и о callback.
Тем, кто только начинает знакомиться с haXe, это весьма полезное предложение может быть и не знакомо, т.к. до недавнего времени не упоминалось в документации.
Да и сейчас добраться до него не просто. Так что линк на статью про reserved keywords в главе мануала о классах будет уместен. В статье описывается сам принцип работы callback. Переведу самое основное...