2

要約すると、私の質問はこれだと思います:

hxcpp に Flash 8 の haxe コードを強制的にコンパイルさせるにはどうすればよいですか?

ここが私の居場所です。私は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 が Flash バージョン 9 の swf をターゲットにしていて、haxe コードが Flash 8 をターゲットにしていることだと思います。「-swf-version 8」を使用して Flash 8 構文を受け入れるように強制しようとしましたが、機能しません (同じエラー)。

4

2 に答える 2

1

Neash は非常に完成度が高いですが、Flash API を 100% マッピングしているかどうかはわかりません。つまり、Neash では動作しない -swf-lib に問題があることは確かです。これは、Flash 以外のプラットフォームに swf ファイルを埋め込むことができないためです。資産を別の方法で管理する必要があります。それほど遠くない将来、swf リソースを埋め込むことも可能になるかもしれませんが、最初に、意図したターゲットに変換する適切な逆コンパイラを誰かが作成する必要があります。

于 2009-10-08T23:50:08.500 に答える
1

Haxe の hxcpp コンパイラ部分の背後にいて、haxe / iphone / hxcpp のすべてを行っている Hugh に尋ねたところ、彼は基本的に、Flash 8 は hxcpp の利用可能なターゲットではなく、Flash 9 以降だけであると言いました....ありがとうヒュー!

http://gamehaxe.com/2009/08/17/switched-to-immix-for-internal-garbage-collection/#comment-309

于 2009-10-14T12:00:52.343 に答える