SharedObjectでデータをアプリに保存する:FlashCCでiPhoneゲームアプリ制作

今作っているiPhoneのゲームで、BGMの設定やハイスコアなどをアプリ内に保存したかったので、SharedObjectを使う事にしました。

SharedObjectはswfファイルでWebコンテンツを作っている頃から知っていました。
簡単に使えて良いと思っていたので、AIR for iOSでも使い方は同じかなとググっていたところ、、、こんな記事(「akihiro kamijo」)を見つけてしまいました。

こちらの記事を見る限り、そのままSharedObjectを使うともれなくリジェクトがもらえるそうです。
これを回避するため、AIR3.7以降でSharedObjectに追加されたpreventBackupという属性をtrueにすればOKということも、前述のページと同じサイト(「akihiro kamijo」)に載っていました。

ということで、Flash CCのAIRを3.8までアップして、早速SharedObjectを使ってみました。

//Shared Object
var so:SharedObject = SharedObject.getLocal("my_data");
var saveData:Object = so.data;
trace("so:"+so);

var isBgm:Boolean =true;

if(so){
	if(saveData.isBgm !=undefined){
		isBgm =saveData.isBgm;
		trace("loaded from SO: isBgm:"+isBgm);
	}
}

使い方は凄く簡単です。
例えば、今回作っているゲームではBGMのオンオフをSharedObjectに保存させるようにしています。
ルートの初期化フレームでSharedObjectを取得して、その状態にします。

	SharedObject.preventBackup = true;
	root.saveData.isBgm =root.isBgm;
	so.flush();
	trace("saved to SO: isBgm:"+isBgm);

そして、BGMのボタンでは、押される毎に状態をSharedObjectへ保存するようにしています。

これで、SharedObjectを使って、BGMだけでなくハイスコアも保存するようにしました。
ただ、あとはpreventBackupをtrueにしたことで、App Storeの審査を通ることができるかどうかは、申請してからのお楽しみということになります。


こちらが完成したゲームです!