OpenFL(Haxe)の拡張モジュールを作るのも割と簡単
まえがき
なぜか続いた拡張モジュールシリーズ。
ちょっと前に試してたのが発掘されたので。
正直、自分でもあんまりよくわかってないけどOpenFL周辺は日本語情報が全然ないのでとりあえず書く。
準備する
どれが必要なライブラリか忘れたけど、このあたりがあれば拡張は作れる。無いならhaxelib install LIBNAME
➜ ExtensionExample git:(master) ✗ haxelib list
haxelib_client: [3.1.0-rc.4]
hxcpp: [3.1.39]
hxlibc: [1.1.4]
lime-tools: [1.5.7]
lime: [1.0.1]
openfl: [2.0.1]
スケルトン生成
Limeでもコマンドでスケルトンが作れるので実行するだけ。
lime create extension TestExtension
TestExtension/project/common
にC++のソースがあるのでいい感じにいじってください。今回は取り敢えずスケルトンのママ進める。
拡張モジュールのビルド
cd TestExtension/project
に移動してhaxelib run hxcpp Build.xml -DHXCPP_M64
HXCPP_M64
の部分はほかプラットフォームだと変わるはず。何にかはしらない。
リンクを貼る
TestExtension/ndll/Mac64/TestExtension.dylib
は出来るんだけど.ndllが必要って後に怒られる。
ln -s TestExtension/ndll/Mac64/TestExtension.dylib TestExtension/ndll/Mac64/TestExtension.ndll
とすればとりあえず解決できる。正しい解決方法は知らない。
OpenFLから呼ぶ
TestExtensionがあるディレクトリにTestAppを作る。その中にMain.hxとproject.xmlを作る。それぞれ中身は以下。
class Main {
public static function main(){
var t = new flash.text.TextField();
t.text = Std.string(TestExtension.sampleMethod(42));
flash.Lib.current.addChild(t);
trace(t.text);
}
}
<?xml version="1.0" encoding="utf-8"?>
<project>
<meta
title="TestApp"
package="me.labe.testapp"
version="1.0.0"
company="Laurent Bedubourg"
/>
<app
main="Main"
path="Export"
file="TestApp"
/>
<source path="." />
<haxelib name="openfl" />
<include path="../TestExtension" />
</project>
TestAppのビルド、実行
TestAppに移動して、lime test cpp
で画面に味も素っ気も無いウインドウが表示されたら完成。
あとがき
リンク貼るあたりが残念。というか前やった時はこの手順やった記憶ないんだけどなあ。識者のアドバイス求む。
Author And Source
この問題について(OpenFL(Haxe)の拡張モジュールを作るのも割と簡単), 我々は、より多くの情報をここで見つけました https://qiita.com/ymmtmdk/items/54799822844daa2dbfc2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .