googleで
カスタム検索
プロフィール

けろ&ひな

Author:けろ&ひな
大阪在住。
親ばか。
最近、転職したよ。でも、やってることは一緒なんだけどね。;-P

最近の記事
カテゴリー
月別アーカイブ
最近のコメント
最近のトラックバック
スポンサード リンク

スポンサーサイト--------(--)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[flash][as2]SharedObjectを使ってみた2009-06-04(Thu)

Flash8(Lite)で使用できるってなってる『SharedObject』。
なんでも、Flash版Cookieみたいなもんということを検索で知る。

リファレンス等によると、なんでも保存OK!
ということみたい。

とりあえず、画像データを保存できるのかなとおもいつつ、画像データを取り込んだMovieClipのインスタンスを突っ込んでみた。
var so:SharedObject = SharedObject.getLocal("so");
so.data.movieclip = mc;
so.flush(mc.getTotalSize());

で、SharedObjectにmcというMovieClipのインスタンスを突っ込む。
と、見事、インスタンスのアドレス(?)が突っ込まれたようで、、、

違う、そんなことやりたいんじゃない!
ということで、今度はMovieClipをBitmapに変換して突っ込んでみた。
var so:SharedObject = SharedObject.getLocal("so");
var bitmap:BitmapData = new BitmapData(mc._width, mc._hieght, true);
bitmap.draw(mc);
so.data.movieclip = bitmap;
so.flush(mc.getTotalSize());

SharedObjectのサイズが合うかどうかは不明だけど、とりあえずBitmapDataを生のまま突っ込んでみると、、、結果、MovieClipの時と一緒だよ、、、
考えてみりゃ、そりゃそうだよなってことで、仕方ないから食べちゃえpixel配列に直して放り込んでみた。
var so:SharedObject = SharedObject.getLocal("so");
var bitmap:BitmapData = new BitmapData(mc._width, mc._hieght, true);
bitmap.draw(mc);
var bitmapArray:Array = new Array();
for (var x:Number = 0; x<mc._width; x++)
{
var cols:Array = new Array();
for (var y:Number = 0; y<mc._height;y++)
{
cols.push(bitmap.getPixel32(x, y));
}
bitmapArray.push(cols);
}
so.data.bitmapdata = bitmapArray;
so.flush(mc.getTotalSize());

保存されたSharedObjectのサイズとか見てみる限り(SharedObjectのサイズが合ってるかは不明というか、かなりいい加減だけど)、とりあえず画像データとして保存できたっぽい。

てことで、復元してみる。

復元の手順は、逆にたどればいいだけなんで、味噌の部分だけ
//SharedObjectを取って、MovieClipを取って、、、
var bitmapArray:Array = so.data.bitmapdata;
var width:Number = bitmapArray.length;
var height:Number = bitmapArray[0].length;
var bd:BitmapData = new BitmapData(width, height, true);
for (var x:Number = 0; x<width; x++)
{
var cols:Array = bitmapArray[x];
for (var y:Number = 0; y<height;y++)
{
bd.setPixel32(x, y, cols[y]);
}
}
mc.attachBitmap(bd, 0);


で、どうだ!?
・・・
やった、復元成功!
これで、SharedObjectに画像データを保存できた~♪
これできたら、結構あそべそうだなっと。
関連記事

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

コメント

工事中
RSSフィード
リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。