Flash

Вышел FlashDevelop 4.0.0 RC1

Последнее время у нас много хороших новостей - сегодня утром вышел FlashDevelop 4.0.0 RC1

В отличие от беты, на официальном форуме он доступен для скачивания в собранном виде

В качестве важнейших нововведений заявляется поддержка NME для haXe, шаблоны приложений для мобильных платформ (iOs+Android) и переработанное автодополнение AS3. Для haxe-проектов целями (target) теперь можно выбирать флешплееры 10.2, 10.3 и 11

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

AsWing и модальные окна

В этом простом туториале мы научимся получать данные из модальных (и не только) окон AsWing

Создадим простой класс, показывающий модальное окно...

haXeAsWing

После почти трехлетнего перерыва вышла бета версия Aswing 2.0

Основные изменения:
- новый скин (LookAndFeel) по умолчанию
- добавлены компоненты JStepper, DateChooser
- добавлен WeightBoxLayout
- багфиксы и мелкие фичи

В библиотеку включен новый проект - порт для haXe под названием haXeAsWing.
Фактически, это ее точная (с минимальными отличиями) копия, и мы можем использовать любой из вариантов на выбор.

upd. paling добавил ссылку на демо компонентов, готовую swf можно посмотреть в папке bin

Что изменилось, и как этим пользоваться?

AsWing 2.0 beta + haXeAsWing

После почти трехлетнего перерыва вышла бета версия Aswing 2.0
В проект включена новая библиотека для использования его вместе с haXe - haXeAsWing

Основные изменения:
- новый скин (LookAndFeel) по умолчанию
- добавлены компоненты JStepper, DateChooser
- добавлен WeightBoxLayout
- багфиксы и мелкие фичи

Чуть позже напишу свой отчет о переходе на новую версию

10.2 и нативные курсоры

для тех, кто не хочет возиться так же как я при использовании нативных курсоров из flash 10.2 есть несколько полезных советов

- скачать последнюю версию haxe (автоматический билд, на момент написания это r3794)
- для владельцев flashdevelop (по сути к делу это не относится, но в текущем релизе нельзя выбрать версию плеера 10.2) - обзавестись flashdevelop 4
- прочитать внимательно этот тред на офф. форуме

Flash Player - 3d Api "Molehill"

Ссылки:
3D APIs for Adobe Flash Player and Adobe AIR - http://labs.adobe.com/technologies/flashplatformruntimes/incubator/featu...

MAX Racer demo - http://www.youtube.com/watch?v=KcKvS983K8c

Николас Каннасье уже написал статью про использование нового 3d Api в haXe-проектах
http://haxe.org/doc/advanced/flash3d

Как я подключал AsWing или swf-библиотеки в 2.07

Disclaimer: я из рук вон плохо знаю flash-платформу, поэтому часть моих приключений ниже может кому-то показаться странной - это смело можно списывать на то, что я чайник...

А дело было так. Пришло мне в голову перевести gui для небольшой программки с Arctic на AsWing.
И вот, разбираясь с подключением AsWing, сделал для себя несколько важных открытий (с опозданием примерно на полгода).

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);

RSS-материал