Блоги

За что я возненавидел FMS

Вообщем была у меня задача написать клиент под FMS. В итоге все закончилось с ним тем, что к удаленному FMS он конектился, а к локальному - нет. Странно, но политика безопасности тут не причем. Потратил 3 дня на изучени логов и поиска ошибок. И о чудо под haxevideo все заработало. Я не один столкнулся с такой ошибкой, гугл подсказал множество таких же нерешённых проблем. И для себя я решил полностью отказаться от FMS. В сторону red5 я не смотрел, так как не люблю тяжеловесы типо явы, да и комп слабый.

Взаимодействие haXe, Flex, AsWing

В последнее время я понял, что взаимодействие haXe и Flex -- важная тема. Во-первых, многие разработчики уже имеет свои наработки во Flex и не хотят от них отказываться, что мешает им использовать haXe. Во-вторых, так же многие разработчики хотели бы использовать Flex, как основное средство разработки, но были бы непрочь как-то использовать haXe в своих проектах. К счастью, это возможно, Николас уже делал это и описал на своем сайте. Мне осталось только перевести его статью на русский, что я и сделал.

Аналогия haxe и Linux

Haxe мощный язык, красивый и гениальный. Это как с Linux. Юзвер ставит его, мучается год, а потом счастью его нет предела!
С виндовсом все иначе, как и с флэш. Юзвер ставит, юзает, радуется пол года, может, и меньше, а потом он в западне и сам понимает это.

Haxe

Натолкнулся на странное поведение Haxe:
При использовании класса из собственного пакета ни в какую не хотят грузиться символы из библиотеки. А при использовании просто файлов-классов все нормально работает.

Проект на haXe -- наконец-то я начинаю

Наконец-то я начинаю свой open source проект на haXe.

Это прототип программы для ведения TODO-списков, организованных в нечто более сложное, чем иерархическое дерево. В основе программы -- попытка объеденить преимущества иерархического дерева и облако тегов.

описание проекта
посмотреть прототип
скачать исходники

Делаем для себя инструменты для разработки на haXe

Чтобы предельно быстро удовлетворить интерес тех, кто ищет себе инструмент разработки на haXe, скажу сразу -- лучший вариант -- FlashDevelop. На сегодняшний день эта IDE имеет самую лучшую поддержку haXe.

Если после этой фразы вы еще сохранили любопытство, не боитесь трудностей и готовы попробовать нечто иное, то я рекомендую вам сделать инструменты разработки своими руками. Для этих целей я сам использовал Linux, Vim, Ruby, Bash. Но вам не обязательно использовать именно их.

Вам понадобится:

  • любая операционная система;

Listener клавиатуры на stage в flash9

Иногда бывает удобно использовать listener слушающий события клавиатуры глобально, т.е. во всём приложении (например при создании flash игр). В flash8 с этим не возникает особых проблем, но в flash9 есть баг, в результате которого при удалении со сцены объекта, на котором был фокус, события клавиатуры перестают отлавливаться и сценой в целом, так как фокус в таком случае теряет и stage.

Иногда может помочь простой принудительный возврат фокуса объекту stage:
stage.focus = stage;

Нас становится больше

Рад был недавно узнать, что среди русскоязычных любителей haXe у меня есть тёзка, который также участвует в переводах на haXe.org под псевдонимом yzh44yzh, и под этим же ником ведёт свой сайт о программировании под флэш-платформу, где публикует также материалы и переводы связанные с haXe. На данный момент это перевод статьи "Оптимизация производительности для Flash 9" и перевод первых частей из "Professional haXe and Neko".

Ну а теперь я рад приветствовать Yzh среди участников, а также авторов haXe.ru. Нас становится больше, а это значит, что русскоязычное haXe сообщество пусть пока очень медленно, но верно растёт. )

Timer на Neko

Начал делать SWHX проект и узнал, что в Neko на данный момент отсутствует поддержка класса haxe.Timer. Точнее поддерживается только один статический его метод Timer.stamp(). Это было несколько неожиданно.

Погуглив немного, узнал что для Neko вместо него используется neko.Sys.sleep(seconds :Float);
Это сняло часть вопросов, но не все. Этому решению в некоторых случаях не хватает гибкости Timer.

В рассылке нашёл более развернутый вариант реализации таймеров в Neko, который после небольшой доработки под текущую версию, превратился у меня вот в такую функцию:

function setTimeout(action, timeout)
{
        neko.vm.Thread.create(
                function () {
                        neko.Sys.sleep(timeout);
                        action();
                }
        );
}

"Основы haXe" завершены

Подшивка статей "Основы haXe" полностью готова.
Сегодня добавил последние несколько глав переведённых ранее и сделал новый перевод относительно свежей главы про inline - ключевое слово введённое в haXe 1.17. По ходу публикации исправлял найденные в переводе неточности.

На всякий случай, напомню, что это подборка статей по основным особенностям языка haXe, созданная на основе перевода описания языка на официальном сайте. Главное отличие версии размещённой здесь, что она разбита на отдельные статьи, оглавление которых вынесено на главную страницу и каждую из которых можно комментировать, дополнять и исправлять.

Нужно наверное ещё отметить, что это конечно не документация, а скорее введение в haXe для начинающих знакомство с языком и для получения быстрой справки по его основным особенностям.

UI компоненты BIT-101 minimal в haXe

Просто небольшая полезная инфа по использованию AS3 библиотеки компонентов BIT-101 MinimalComps от Keith Peters в haXe.
Делать для этой возможности, оказывается, почти ничего не нужно. Достаточно скачать архив с компонентами, разархивировать swc файл и запустить haxe --gen-hx-classes на полученном файле библиотеки library.swf.

Всё. После этого можно, как обычно, добавлять библиотеку к проекту с помощью -swf-lib, добавлять папку со сгенерированными haxe классами в class path -cp и пользоваться этим набором UI компонентов в своём flash приложении написанном на haXe.

Переехали на новый сервер

Сегодня благополучно перенёс haxe.ru на новый сервер и заодно обновил движок до свежей версии. На новом сервере установлено более современное обеспечение, MySQL 5, PHP 5 и так далее. Так что работать сайт теперь будет заметно быстрее и, я надеюсь, надёжнее.

Описание языка "Основы haXe"

Начал создание первой подшивки на этом сайте "Основы haXe", которая будет базироваться на моём переводе описания языка с официального сайта haXe.

Сначала хотел опубликовать всё сразу, но потом решил не торопиться и сделать это постепенно, время от времени добавляя по нескольку статей. Возможно по ходу их размещения найдутся желающие уже сейчас предложить какие-то изменения или дополнения для опубликованных частей. Да и сам по мере добавление стараюсь исправлять и улучшать качество перевода, так как изначально делал его не особо тщательно.
На данный момент доступны разделы: "Основные типы", "Классы" и "Выражения" (включающие Константы, Операции, Унарные операции и Блоки)

Делегаты и callback

В качестве ещё одного сниппета не могу не рассказать и о callback.
Тем, кто только начинает знакомиться с haXe, это весьма полезное предложение может быть и не знакомо, т.к. до недавнего времени не упоминалось в документации.
Да и сейчас добраться до него не просто. Так что линк на статью про reserved keywords в главе мануала о классах будет уместен. В статье описывается сам принцип работы callback. Переведу самое основное...

А мы тут резиной балуемся... :)

Переписал свой многострадальный "компоновщик".

В двух словах:

RSS-материал