Actionscript 3 против Haxe: что выбрать для нового проекта Flash? - PullRequest
26 голосов
/ 25 июня 2009

Я нахожусь на стадии планирования нового проекта Flash-игры и мне было интересно, какой язык лучше использовать? У меня уже есть хорошее понимание ActionScript 3, и я еще не работал с Haxe, но я прочитал справочные документы по языку, и кажется, что у Haxe есть некоторые функции из моих других любимых языков, C # и Ruby.

Итак, мой вопрос состоит из двух частей:

1) Может ли Haxe взаимодействовать с компонентами флэш-памяти (SWC-файлы)? Как, например, если я использую Flash IDE для оформления некоторых элементов управления, могу ли я импортировать эти элементы управления и использовать их в Haxe?

2) Есть ли какие-либо преимущества в производительности компилятора Haxe? или какие-нибудь ошибки?

Ответы [ 5 ]

14 голосов
/ 25 июня 2009

1) Да, и нет. Начиная с 2.03 Haxe может экспортировать SWC. Это означает, что вы можете написать свой код на Haxe, скомпилировать его в SWC и затем использовать этот SWC с Flash. Прямо сейчас Haxe не поддерживает вход SWC, только вывод (хотя я думаю, что они работают над этим).

2) Да, использование Haxe имеет свои преимущества - в отличие от компиляторов Adobe, Haxe на самом деле выполняет некоторые оптимизации во время компиляции (это давно стало предметом раздора в сообществе). Кроме того, Haxe использует несколько «скрытых» новых байт-кодов, появившихся в Flash Player 10, которые в настоящее время не используются ни в Flash, ни в Flex - только Alchemy от Adobe (который выполняет кросс-компиляцию из источника C / C ++ в SWC).

Единственная известная мне "ошибка" - это то, что это своего рода bizzaro ActionScript - все достаточно по-другому, и это может сбить вас с толку. Тем не менее, с такими функциями, как обобщенные и более быстрый код, это небольшая цена!

7 голосов
/ 26 июня 2009

Вы можете найти много полезных вещей на lib.haxe.org ... (ознакомьтесь с haxelib по этому вопросу (немного похоже на рубиновые самоцветы, можно сказать)) ... есть также Конвертер AS3 в Haxe ... так что можно попробовать перевести соответствующие части corelib в Haxe ... хотя, думаю, потребуется ручное исправление ... когда дело доходит до элементов управления, просто посмотрите библиотеки графического интерфейса Haxe ... есть пара из них, плавающих по сети ...

Теперь плюсы Haxe: хорошая вещь в Haxe в том, что компилятор намного быстрее, так что вы не тратите много времени на компиляцию ... серьезно, это имеет значение ...

Кроме того, Haxe - гораздо более богатый язык, как уже неявно заявил Бранден ... Я просто хочу добавить, вы действительно должны проверить перечисления ...

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

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

Надеюсь, это поможет ...;)

Greetz

back2dos

2 голосов
/ 07 февраля 2012

NME улучшает межплатформенную поддержку Haxe, предоставляя единый API для приложений Windows, Mac, Linux, Android, iOS, webOS, Flash и HTML5 без суеты.

Компилятор Haxe заметно быстрее, чем MXMLC, особенно если вы привыкли к компиляции из Flash IDE вместо IDE, в которой размещена оболочка компилятора Flex, например FlashDevelop. Как уже упоминалось, есть также ряд дополнительных языковых функций, таких как итераторы, typedefs, структуры, макросы и другие полезные элементы.

Самое замечательное в том, что, поскольку вы всегда можете нацеливаться на Flash, существует небольшой риск. Язык Haxe очень похож, и, если вы не против поддержки одной платформы, вы можете использовать все поддерживаемые функции Flash. Однако в той степени, в которой вы придерживаетесь кроссплатформенного API NME, вы можете ощутить огромную производительность и преимущества для мобильных и настольных платформ или поэкспериментировать с поддержкой HTML5.

Наконец, есть библиотека SWF, которая позволяет получать доступ к содержимому SWF из C ++. Конечно, это всегда было возможно для цели Flash, но вскоре должно быть разумно определить интерфейс в Flash IDE и использовать его в мобильных или настольных приложениях C ++, а также в цели Flash / AIR.

2 голосов
/ 27 июля 2009

Новый релиз Haxe сегодня . Добавляет официальную цель C ++.

Так что теперь вы можете использовать ActionScript и C ++ с одним и тем же источником.

1 голос
/ 22 августа 2009

1) Вы можете включить одну библиотеку SWF (вместо SWC) при компиляции с использованием аргумента компилятора -swf-lib, и если вам нужно более одной библиотеки, вы можете объединить несколько с помощью инструмента swfmill. Пример этого есть в документах Haxe .

2) Бранден отлично ответил на этот вопрос :) Хотя я мог бы добавить, что одной особенностью, которая действительно повышает производительность, особенно в приложениях flash, является «встраивание». Поскольку Николас (создатель Haxe) добавил еще больше байт-кода оптимизации для встроенных функций . И еще больше таких оптимизаций запланировано .

...