Могу ли я выполнить кросс-компиляцию своего кода AS3 или проекта Flex на родном C ++? - PullRequest
1 голос
/ 07 октября 2011

Я хотел бы взять существующий проект AS3 или Flex и скомпилировать его для работы с собственным кодом C ++.Есть ли способ сделать это?Какие решения существуют?Я не хочу менять свой код AS3.

Ответы [ 3 ]

3 голосов
/ 10 октября 2011

AS3 - это фреймворк, работающий на готовых библиотеках, которые вам придется как-то заменить в своем «переведенном» коде.Например, что, по-вашему, должен делать нативный код, когда вы делаете new Sprite()?

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

Учитывая ваш пример с компилятором iOS, он снова компилируется с существующей библиотекой.встроенного кода, обеспечивающего функциональность списка отображения, видео и аудио проигрывателей и т. д.

2 голосов
/ 07 октября 2011

Если вы можете преобразовать его в Haxe (синтаксис Haxe чрезвычайно похож на AS3, отличаются только библиотеки и некоторые языковые конструкции), он должен предоставить вам возможность компиляции для «native».Я слышал, что он даже предоставляет исходный код на C ++, или мне так сказали в IRC Haxe.Я мог бы быть троллирован для части кода, хотя он не выглядел так, как будто он троллил ...

Я не совершенен и определенно не хватает некоторых более продвинутых возможностей, но, наверное, стоит посмотреть.

1 голос
/ 10 октября 2011

Нет, из-за

  • отсутствия динамических функций в C ++ (там нет эквивалента Object и describeType)
  • отсутствия собственных типов Flash вC ++ (String (std :: string не эквивалентен), экранные объекты и многие другие)
  • отсутствие языковых возможностей (прослушиватели событий, сборка мусора)
  • отсутствие эквивалентного фреймворка Flex в C ++ (В C ++ есть и другие хорошие GUI-фреймворки, но ни одна из них не похожа на Flex - по причинам, изложенным выше.)

Короче говоря, намного проще написать аналогичную программу на C ++ (с использованием Qt или любой другой структуры сопоставимой силы), чем запись преобразователя для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...