Показать сообщение отдельно
Старый 27.10.2011, 20:46
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Есть огромный проект на ActionScript3. Возможно ли его собрать с помощью haxe не переписывая каждый файл вручную (их там тысячи)?
Нельзя

Есть тулза as3tohaxe, генерящая haxe-код по as3, но код она генерит _нерабочий_, она просто рутинные замены типа int->Int делает. Порт придется делать вручную.

Цитата:
получим прирост скорости
Если вы его _сможете_ портировать (могут помешать косяки с нативными флешовыми геттерами-сеттерами в haxe и отсутствие приватных методов, хотя второе побороть просто) прироста скорости _не_ будет. Никакого. Может даже наоборот. Еще, кстати, могут возникнуть проблемы с подгружаемыми swf-ками.

Прирост будет если только вы сможете использовать некоторые фитчи, типа:
-inline-методов;
-прямого доступа к памяти;
-генерации типизированных классов (слишком сложно использовать - начинаются проблемы с приведением типов, чаще просто исопользуют параметризированные типы с отключенной генерацией классов на каждый параметризированный тип - компилируются в ту же динамику, но зато проверяются на этапе компиляции);
-макросы (физический движок вроде с помощью них получилось ускорить существенно)

Короче, если нужна производительность - используйте аппарат.

А так, смысл перехода на haXe есть, только если вам важны другие приемущества (считая что сервер пишется на другом языке):
- параметризируемые классы/интерфейсы - это значит не надо выбирать между типизацией и копипастой как в as3, т.е. типизированные хеши, массивы, коллекции, рендереры и т.д.
- типизированные колбеки - в as3 этого дико не хватает, это одна из причин, почему библиотеки сигналов в as3 приводят проект в чудовищное состояние при активном использовании.
- быстрая компиляция, _но_ это не для вашего проекта, ибо 1000 классов без _инкрементной_ копиляции он будет собирать в разы медленнее
- нативная итерация (в as3 сделать итератор - это значит лишиться типизации, либо наплодить кучу классов), в haXe это делается без всякой побочки. Хотя в as3 даже тип переменной цикла for each не проверяется даже если перебор идет по Vector, в haXe с этим все четко, проверяются даже параметры, передаваемые в методы push и pop.
- макросы (например с помощью них можно писать шейдеры на человеческом языке, а не на ассемблере без потерь производительности)

Вам это сильно надо, нет? Тогда аппарат.


Последний раз редактировалось expl; 27.10.2011 в 20:56.