ブログバトラー

[ etc ] 2006年12月26日 16:32


作っていたのだけれど貼付けるのを忘れていた・・・orz
お手柔らかにお願いします。

FlashLite2.0 SharedObjectにはDateを入れられない?

[ Lite2.0 ] 2006年12月16日 16:00

Flash Lite2.0になって、SharedObjectが使えるということで、携帯を開いた回数をカウントする待ち受けを作っていたんだけれど(cshoolの講座)、SharedObjectにDateオブジェクトを入れて、その日の回数だけをカウントするように勝手にカスタマイズしていると、おかしな動作を発見。

ActionScriptは下記のような感じ。

mySo = SharedObject.getLocal("test");
SharedObject.addListener("test", initHandler);

function initHandler()
{
	if (mySo.data.count == undefined)
	{
		mySo.data.count = 0;
		mySo.data.today = new Date();
		mySo.flush();
	}
	
	trace("mySo.data.count : "+mySo.data.count);
	trace("mySo.data.today : "+mySo.data.today);
	
	var nowDate:Date = new Date();
	trace("nowDate : "+nowDate);
	
	// 前に保存した日付と同じの場合カウントをUPする
	if (mySo.data.today.getDate() == nowDate.getDate())
	{
		trace("日付が同じ");
		mySo.data.count = mySo.data.count + 1;
		mySo.flush();
	}
	else
	{
		trace("日付が一致しない");
		mySo.data.count = 0;
		mySo.data.today = new Date();
		mySo.flush();
	}
	
	trace("count : "+mySo.data.count);
}

一回目はきちんと動作するのだけれど
二回目以降は下記のようなtrace文が出てきて、カウントがされなくなった。

mySo.data.count : 0
mySo.data.today : undefined
nowDate : Sat Dec 16 16:24:13 GMT+0900 2006
日付が一致しない
count : 0

どうやら、SharedObjectの中にDateオブジェクトを記録できないっぽい。
一回目でうまくいくのは、ASで直接Dateオブジェクトを入れているやつと比較しているから。
二回目以降はSharedObjectを読み込んできて、それと比較しているんだけど、うまくSharedObjectに記憶されていないみたい。

ちなみに、PCのFlashPlayerではSharedObjectにもDateオブジェクトを入れることは可能でした。
Flash Lite2.0では、メモリとかも制限されているのでひょっとして入れられる型が制限されているのかも。
またいろいろと独自仕様もありそうなので、ちょこちょこ検証してみよう。

Flow

[ Site ] 2006年12月 5日 12:33

Flow

Flow

DSのエレクトロプランクトンみたいな感じのきれいなGame(?)
だんだん大きくなっていくと複雑な生命体な感じになっていくのがすんごい綺麗。

via: | comments[0] | TrackBack[0]

High Floater

[ Site ] 2006年12月 5日 12:18

High Floater

High Floater

ギャラリー系サイト。
ブックマークの数が半端ないです。
ぽこぽこ出てくる時のエフェクトもいけてる。