Haxe — проект Flash компилируется нормально, но не компилируется с помощью hxcpp

В общем, я думаю, что мой вопрос заключается в следующем:

Как заставить hxcpp компилировать haxe-код для Flash 8?

Вот где я нахожусь. Я новичок в haxe и пытаюсь получить образец отсюда:

http://tilestudio.sourceforge.net/flash/Demo.html

для компиляции с использованием hxcpp, в моих тестах, чтобы увидеть, как приложения, скомпилированные haxe, работают на iphone.

Я получил другие образцы для компиляции и поместил их на iphone, но когда я компилирую этот образец, он жалуется на такие вещи, как:

Demo.hx:32: characters 17-53 : Class not found : flash.MovieClip
Demo.hx:42: characters 20-36 : Class not found : flash.Key
Demo.hx:44: characters 43-60 : Class not found : flash.Stage

и, как я уже упоминал, это прекрасно компилируется с использованием следующего файла hxml (flash.hxml):

-swf Demo.swf
-swf-lib DemoRes.swf
-main Demo.hx
-swf-header 480:320:100:808080

но не работает, как описано выше, используя это (cpp.hxml):

-main Demo.hx
-lib nme
-lib neash
-swf-lib DemoRes.swf
--remap neko:cpp
--remap flash:neash
-cpp cpp

Итак, я думаю, проблема в том, что hxcpp нацелен на swf-файлы Flash версии 9, а код haxe нацелен на Flash 8. Я пытался заставить его принимать синтаксис Flash 8, используя «-swf-version 8», но это не работает (дает те же ошибки).


person Brad Parks    schedule 08.10.2009    source источник


Ответы (2)


Хотя Neash довольно полный, я не уверен, что он отображает 100% Flash API. Тем не менее, у вас наверняка есть проблема с -swf-lib, которая не будет работать с Neash; потому что невозможно встроить файлы swf в другие платформы, кроме flash. Вы должны управлять своими активами по-другому. Возможно, в не столь отдаленном будущем можно будет встраивать даже swf-ресурсы, но сначала кто-то должен написать хороший декомпилятор, который преобразует их для намеченной цели.

person Franco Ponticelli    schedule 08.10.2009
comment
Спасибо за комментарий! Хотя встраивание swf с помощью swf-lib для hxcpp может и не сработать, я думал, что да, так как у меня есть пример, который загружает swf во время выполнения (usr/lib/haxe/lib/neash/1,0,1/samples/06 -SWF) для компиляции и загрузки на iphone. SWF очень прост, но он загружается и отображает круг, прыгающий по траве, и это работает. Поэтому я подумал, что использование swf в качестве библиотеки может сработать, поскольку neash загружал и анализировал простой swf для отображения, и это сработало. - person Brad Parks; 09.10.2009
comment
Очевидно, я полностью пропустил эту часть Neash API. Тем не менее, SWF в этом примере загружается во время выполнения, а не во время компиляции... Если ваш swf может быть правильно проанализирован Neash, то самое близкое, что вам нужно для эмуляции -swf-lib, — это встраивание вашего актива в качестве ресурса: haxe.org/doc/advanced/resources Пример в документе ссылается на текстовый файл, но вы также может использовать байты. - person Franco Ponticelli; 11.10.2009
comment
@Brad Привет, Брэд, у тебя есть учебник о том, как тебе это удалось? Я пытаюсь впитать в себя все, что могу, на haXe/iPhone, но на данный момент там очень мало... Ура - person Paul; 17.11.2009

Я спросил Хью, парня, стоящего за частью компилятора hxcpp Haxe, который делает все вещи haxe/iphone/hxcpp, и он в основном сказал, что Flash 8 не является доступной целью для hxcpp, только Flash 9 и выше... Спасибо. за ответ Хью!

http://gamehaxe.com/2009/08/17/переключенонаimmix-for-internal-garbage-collection/#comment-309

person Brad Parks    schedule 14.10.2009