以前、規定のJavaのオブジェクトをAMFを用いてas3上のクラスにマッピングする方法を記述しましたが、
今回は、任意のJavaクラス(自分で作成したJavaクラス)についてです。

1.Javaのクラス定義の際にjava.io.Externalizableインターフェイスを実装する

以下は必要となるメソッドのみを抜粋しています。

@Override
public void readExternal(ObjectInput in) throws IOException,
		ClassNotFoundException {
	
	isDirectory = in.readBoolean();
	isFile 		= in.readBoolean();
	isAbsolute  = in.readBoolean();
	isHidden    = in.readBoolean();
	
	absolutePath = (String)in.readObject();
	canonicalPath = (String)in.readObject();
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
	
	out.writeBoolean(isDirectory);
	out.writeBoolean(isFile);
	out.writeBoolean(isAbsolute);
	out.writeBoolean(isHidden);
	out.writeObject(absolutePath);
	out.writeObject(canonicalPath);

}

という感じに、readExternal()とwriteExternalを実装する必要があります。

2.AS3上でflash.utils.IExternalizableインターフェイスを実装したクラスを作成する
AS3上でもJavaと同様な感じにします。

public function writeExternal(output:IDataOutput):void{
	output.writeBoolean(isDirectory);
	output.writeBoolean(isFile);
	output.writeBoolean(isAbsolute);
	output.writeBoolean(isHidden);
	output.writeFloat(lastModifed);
	output.writeFloat(length);
	output.writeObject(absolutePath);
	output.writeObject(canonicalPath);
}
		
public function readExternal(input:IDataInput):void{
	isDirectory = input.readBoolean();
	isFile      = input.readBoolean();
	isAbsolute  = input.readBoolean();
	isHidden    = input.readBoolean();
	lastModifed = input.readDouble();
	length		= input.readDouble();
	absolutePath	= input.readObject();
	canonicalPath 	= input.readObject();
}

3.AS3上のクラスに対して、RemoteClassの指定をする。

[RemoteClass ( alias="com.coltware.serene.service.file.JFile") ]
public class JFile implements IExternalizable{
  //  省略
}

という感じになります。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2010年7月
« 6月   8月 »
 1234
567891011
12131415161718
19202122232425
262728293031  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ