Ad

AndroidでのANEの作成に戻る。

このページは「AndroidでのANEの作成​/Android側の作成」の続きです。

ANEファイルの作成には、ActionScriptEditで書かれたSWCファイル(正確にはその中の一部も)が必要です。その制作方法をこちらでご紹介します。

呼び出すクラスの作成 anchor.png Edit

呼び出すクラスは簡単で、以下のようなものになります。

package jp.njf
{
	import flash.external.ExtensionContext;

	public class ANEAlert
	{
		private var context:ExtensionContext;
		public function ANEAlert()
		{
			context = ExtensionContext.createExtensionContext("ANEAlert","");
		}
		public function showAlert(title:String,message:String):void{
			context.call("alert",title,message)
		}
		public function dispose():void
		{
			return context.dispose();
		}
	}
}

ここで「ANEAlert」という文字列はANEのIDです。ANEを作成するときに必要となります。 createExtensionContextEditの第二引数は初期化の時にJava側に送られる変数で、JavaのANEAlertFREExtensionクラス内のcreateContextの引数となります。 今回は使用していませんので、空文字列としています。 context.callメソッドは引数の関数IDを用いてJava側のメソッドを呼び出します。

Page Top

SWCの作成 anchor.png Edit

SWCの作成方法にはいろいろとありますが、コマンドラインから行うのが便利です。 なぜなら他のGUIを用いた方法よりパラメーターの変更が容易で、さらに一度メモしておくと他のプロジェクトなどでも使い回ししやすいからです。

そのコマンドは例えば以下のようになります。

acompc +configname=airmobile -source-path anesrc -output anealert.swc -include-classes jp.njf.ANEAlert -swf-version=33

ここでacompcはAir SDKの「bin」以下にあります。パスを通していない場合はフルパスで書いてください。 次に「-source-path」はソースのあるフォルダです。ここでは「anesrc」を指定しています。 「-output」は出力されるswcの名前です。ここでは「anealert.swc」としています。 「-include-classes」は含まれるクラス名です。ここでは「jp.njf.ANEAlert」を指定しています。 最後に「-swf-version」はswfのバージョンです。 swfのバージョンはAir SDKのリリースノートに記載されています。また、air SDKフォルダ直下の「airsdk.xml」ファイルの中にも一覧があります。

この「-swf-version」はFlashのswfの出力形式で、ANEは最終的に出力されるAirアプリのファイルのswf versionと同じかそれよりも低いバージョンで出力されている必要があります。 そのため、もしリリースするAirのバージョンがswcを作成するSDKより低いときはここをあわせなければなりません。

面倒を避けるにはANEとリリースするときのAir SDKを同じにするようにすると良いでしょう。その時にはこの「-swf-version」の部分は省略してもかまいません。省略すると最新のバージョンが指定されます。

ただし、新しいAir SDKがまだ不安定で、とりあえず古いままでリリースなどという事もよくあります。そのときはバージョンを気にした方が良いので注意してください。 そのような理由で逆にややしこしくなることもあるので、私が作る時は常にswf versionを明示しています。

Page Top

library.swfの取り出し anchor.png Edit

SWCができたら、ここから実際にANEの作成で必要となる「library.swf」を取り出します。 SWCは実はzipファイルなので、適当なツールで解凍できます。例えば

unzip anealert.swc

とすると

catalog.xml
library.swf

の二つのファイルが出力されます。 必要なのはこのうち「library.swf」と元のSWCファイルだけです。

「だったらlibrary.swfを直接出力するコマンド用意しろよ」とか「SWCからlibrary.swf不要で直接ANE作れるようにしろよ、解凍だけなんだし」とか思うと思いますが、そのあたりはadobeに言ってください。


Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 2321, today: 2, yesterday: 0
Princeps date: 2016-06-26 (Sun) 13:29:17
Last-modified: 2018-01-01 (Mon) 17:32:20 (JST) (1683d) by njf
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF