Flash

TypedDictionary вместо Dictionary

Портируя одну библиотеку с AS3 на haXe, пришел к выводу, что в последнем вместо класса flash.utils.Dictionary стоит использовать flash.utils.TypedDictionary, в первую очередь из-за того, что в haXe только типизированный словарь реализует Iterator, т.е. его элементы можно перебрать в цикле типа for (i in dict).

Nape - новая 2D физика на haXe (+AS3 версия)

У Physaxe появился интересный и многообещающий продолжатель.
В Nape - в новом и на момент активно развиваемом движке двумерной физики уже присутствует поддержка joints /constraints и немало других интересных фич, делающих его более продвинутым по сравнению с Physaxe, развитие которого остановилось довольно давно. При этом Nape унаследовал его производительность и по утверждением автора Luca Deltodesco превосходит его и в этом плане
Новый 2D движок активно использует haXe/AS3 препроцессор caxe написанный тем же автором и оптимизирован под возможности flash player 10/10.1 Кстати, в недавней заметке Luca написал, что в beta5 flash player 10.1 производительность и стабильность Nape ещё более заметно.

HxQuake

HxQuake - 3D-рендерер для flash, основанный на движке Quake2, написанный с использованием haXe. Сознательно не пишу "на haXe", а "с использованием", т.к. кроме haXe для сборки используются и другие технологии - Python, C и Alchemy. Хотя в любом случае в описании проекта на Гугл-коде значится "created using the HaXe programming language".

Автор - Iain Surgey, предупреждает, что пока не стоит ожидать от HxQuake возможностей полнофункционального 3D-движка. Имеющаяся на момент версия это скорее демонстрация его возможностей. И демонстрация эта, надо сказать, впечатляет.

MochiAds для игр на haXe

Тем кто пишет или собирается писать Flash игры на haXe может пригодиться небольшое руководство по использованию MochiAds в haXe, автор которого - Viktor Hesselbom. Описание того, как из MochiAds API для as3 сделать исходники для haXe, я позволил себе перевести для тех, кому это может понадобиться:

К С И Н О — наш прокт на haXe

Сделали систему наблюдения за животными «К С И Н О». Интерфейс пользователя сделан на haXe.

Жду комментарии.

ArrayAccess не работает в as3 ?

package api;
import flash.display.Sprite;

class Preview extends Sprite, implements ArrayAccess<String>
{
        var data:Array<Thumb>;
        public function new(sW:Float,sH:Float)
        {
                super();
        }
        public function add(url:String) {
        }
       
        public function scroll(items:Int) {
        }
        public function __resolve(s:String) {
                return s;
        }
}

Простой пример, но, flash player ругается ошибкой class not found ArrayAccess. На сколько я понимаю, в более ранних версиях haxe работала данная фича ? Или это зависит только от плеера ? Проверял на 9-м и 10-м.

Странно

Довольно странно, изучая исходники пакета flash , класса boot столкнулся с интересной особенностью.в классе boot есть определение функции

        public static function __instanceof( v : Dynamic, t : Dynamic ) {
                try {
                        if( t == Dynamic )
                                return true;
                        return untyped __is__(v,t);
                } catch( e : Dynamic ) {
                }
                return false;
        }

Но, при вызове не срабатывает - flash.Boot.__instanceof(obj1,typedef1);

Копаемся во внутренностях библиотеки Arctic

Решил таки разобраться, как использовать arctic и как она устроена. Всю статью читайте на моем сайте, здесь опубликую только выводы из моего небольшого исследования:
Достоинства:

  • компактная библиотека, обеспечивающая мощный функционал;
  • оригинальная архитектура и стиль программирования;

Недостатки:

  • отсутствует ComboBox (ох и ах, планируется в следующих версиях);
  • краткая документация (а может, это скорее достоинство?);
  • ограниченные и никак не документированные возможности скинирования;

Отлично подходит для самообразования и повышения своего уровня, в принципе, можно применять в небольших проектах.

Haxe

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

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

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

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

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

Imagin - фотогалерея на haXe

Хороший пример качественного законченного приложения, построенного полностью на haXe анонсировал недавно Балута Кристиан. Его детище называется Imagin и это бесплатная flash фото галерея, которая может вам понадобится, если:

  • вы хотите упорядочить ваши фотографии по галереям и подгалереям
  • вы хотите представить зрителям небольшую историю из изображений и музыки, слайд-шоу
  • вам нужна анимированная шапка для вашего веб-сайта
  • вам нужно что-то автоматизированное, а не статическая галерея, основанная на xml

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

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

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

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

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

XMLSocket и простой сервер на Ruby

В раздел Руководство по использованию haXe и Neko добавлен пример использования XMLSocket -- взаимодействие с простым сервером на Ruby. Читать тут.

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

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

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

Physaxe, Bloom и PureMVC для haXe

В последнее время новые порты библиотек и проекты на основе haXe возникают всё чаще, так что даже просто узнать о них не всегда успеваешь, не то что описать. Тем не менее, о самых важных и интересных отписать таки надо:

  1. Physaxe - очередной физический flash движок в 2D, но на этот раз от самого Николя Канасье и имеющий в основе его последние достижения в области оптимизации haXe кода для работы в Flash 9. В этом наверное и основной плюс Physaxe - этот движок очень быстр. В качестве основы Николя использовал AS3 движки Glaze и Box 2D Flash. Для иллюстраций возможностей своего движка Николя выложил в haXe blog демо Physaxe. При оценке производительности Physaxe в демо не забудьте про клавишу "D", отключающую отрисовку. В реальных проектах вы не будете использовать Flash drawing API который отъедает очень большую часть ресурсов...
RSS-материал