« AIR アプリケーションを作ってみて思ったこと | メイン | 今さら気づいたこと »

2007年9月10日

[as3] 外部SWFをSharedObjectに保存

先のエントリーで書いていたことが出来るか試してみたら、出来た。

そのまんまなんだけど、バイナリ型で読み込んだSWFファイルを
一度 compress を実行した後、配列から1バイトずつ取り出して文字列として結合。
それを SharedObject に保存。

使うときはその逆。びっくりするほど簡単だった。
ByteArrayUtil というクラスとして作成しておいた。
各クラスファイルは以下にあります。
使用している自作クラス
com.seyself.utils.ByteArrayUtil
com.seyself.data.BinaryData
内部でもろもろクラスを使用しているので、試してみる場合はココからまるごとSVNで落としてもらった方がいいかも。

ByteArrayUtil クラスの使用例
import flash.display.Loader;
import flash.utils.ByteArray;
import flash.net.SharedObject;

import com.seyself.data.BinaryData;
import com.seyself.utils.ByteArrayUtil;

var so:SharedObject = SharedObject.getLocal( "binary_to_string" );

//SharedObject にデータが保存されている場合
if( so.data.hasOwnProperty("savedata") ){
  trace( "--load to local data" );
  toStringCallback( so.data.savedata );
}
//SharedObject にデータが保存されていない場合
else {
  trace( "--load to file data" );
  var binaries:BinaryData = new BinaryData();
  binaries.complete = loadComplete;
  binaries.load( "example.swf" );    //外部SWFファイルをバイナリ形式で読み込む
}

//変換中に呼び出される関数です。
var progress = function( parcent:Number )
{
  //parcent : Number - 現在の変換率が渡されます。
  trace("completed convert percentage : "+parcent);
}

//外部からの読み込みが完了すると呼び出される関数です。
function loadComplete()
{
  ByteArrayUtil.toString( binaries.bytes , toStringCallback, progress );
}

//ByteArray から文字列への変換が完了したときに呼び出されます。
function toStringCallback( code:String ):void
{
  so.data.savedata = code;
  ByteArrayUtil.toBinary( so.data.savedata , toBinaryCallback , progress );
}

//文字列から ByteArray への変換が完了したときに呼び出されます。
function toBinaryCallback( binary:ByteArray )
{
  //Loaderインスタンスに、変換されたByteArrayを読み込ませる。
  var loader:Loader = new Loader();
  this.addChild( loader );
  loader.loadBytes( binary );
}

トラックバック(0)

このブログ記事を参照しているブログ一覧: 外部SWFをSharedObjectに保存

このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/285

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、michiが2007年9月10日 21:23に書いたブログ記事です。

ひとつ前のブログ記事は「AIR アプリケーションを作ってみて思ったこと」です。

次のブログ記事は「今さら気づいたこと」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01