Alternativa3Dをクローンしておく。
最初にcompcでSWCを生成する。コマンドは次の通り。
compc ^
-swf-version 23 ^
-source-path src ^
-include-sources src ^
--external-library-path+=libs\A3DModelsBase-2.5.2.swc ^
--external-library-path+=libs\AlternativaProtocol-2.53.0.swc ^
--external-library-path+=libs\OSGIBase.swc ^
--external-library-path+=libs\ProtocolTypes.swc ^
-output Alternativa3D.swc
Alternativa3D.swc が生成されるので各自のプロジェクトの libに移動する。Alternativa3D/libsも必要なのでlibに移動する。
次に補完に使うextern定義を生成する。libディレクトリ内で次のコマンドを実行する。
haxe ^
--no-output ^
-swf nothing.swf ^
-swf-lib Alternativa3D.swc ^
-swf-lib OSGIBase.swc ^
-swf-lib AlternativaProtocol-2.53.0.swc ^
--gen-hx-classes ^
--macro patchTypes('Alternativa3D.patch')
するとhxclasses が生成される。必要なのは hxclasses/alternativa だけなので hxclasses/alternativa を libに移動する。残りは削除しても良い。あとはIDEに lib/alternativa をクラスパスとして通せば補完が有効になる。
ビルドの準備を行う。
以下に示すAlternativa3D.patch
をlibの中に作成する。
-alternativa.engine3d.core.CullingPlane.create
-alternativa.engine3d.materials.compiler.Procedure.compileFromString
-alternativa.engine3d.materials.compiler.Procedure.compileFromArray
-alternativa.engine3d.resources.BitmapTextureResource.createMips
最後にcompile.hxml
は次のようになる。
-cp src
-main Main
-swf bin/Main.swf
-D fdb
-debug
-swf-lib lib/OSGIBase.swc
-swf-lib lib/AlternativaProtocol-2.53.0.swc
-swf-lib lib/A3DModelsBase-2.5.2.swc
-swf-lib lib/ProtocolTypes.swc
-swf-lib lib/Alternativa3D.swc
--macro patchTypes('lib/Alternativa3D.patch')
-swf-version 12
この -swf-lib
の順序を守らないと次のようなエラーが発生することがある。
VerifyError: Error #1014: クラス IClientLogBase が見つかりません。
VerifyError: Error #1014: クラス ICodec が見つかりません。