ゆっくりのデスクトップマスコットを作る5(ローカルストレージ、自動起動)


今回の更新
サイズの変更を5段階に(ソースを参照してください)
音量変更
ローカルストレージを使用した設定の保存
ログイン時に自動的に起動


早速解説

  • 音量変更

前にMP3プレーヤーを作ったときにしているので、こちらを参照
音量の調整 - Every day is Carnival

  • ローカルストレージを使用した設定の保存

これも以前に紹介しました
ローカルストレージを使ったデータ保存 - Every day is Carnival

でも、一応説明します。


private var local_data:SharedObject;

private function init():void{
        //保存するオブジェクトの名前を指定
        local_data = SharedObject.getLocal("setting");
        load();                
}

 //保存してある設定を読み込む
private function load():void{
        //ローカルストレージに保存された情報からサイズと音量の初期化
        if(local_data.data.scaleX != undefined && local_data.data.scaleY != undefined){
            this.scaleX = local_data.data.scaleX;
            this.scaleY = local_data.data.scaleY;
        }
                
        if(local_data.data.volume != undefined){
            var st:SoundTransform = SoundMixer.soundTransform;
            st.volume = local_data.data.volume;
            SoundMixer.soundTransform = st;
        }
    }

   //サイズ変更
private function resize(event:Event):void{
        //チェックをつけたり消したり
        myMenu.getItemAt(4).submenu.getItemAt(0).checked = false;
        myMenu.getItemAt(4).submenu.getItemAt(1).checked = false;
        myMenu.getItemAt(4).submenu.getItemAt(2).checked = false;
        myMenu.getItemAt(4).submenu.getItemAt(3).checked = false;
        myMenu.getItemAt(4).submenu.getItemAt(4).checked = false;
        event.target.checked = true;
                
        //サイズの調整
        scaleX = Number(event.target.name);
        scaleY = Number(event.target.name);
                
        //ローカルストレージへの保存
        local_data.data.scaleX = scaleX;
        local_data.data.scaleY = scaleY;
}


初めに保存するオブジェクト名を指定します。名前は何でも良いです。
次にresizeメソッドを見てください。これはサイズの大きさが選択されたときに実行されるメソッドです。
この中の
local_data.data.scaleX = scaleX;
local_data.data.scaleY = scaleY;
これでローカルストレージへの書き込みを行っています。
青色の部分には自分で自由な名前を付けてOKです。この場合だとscaleX、scaleYというオブジェクト名でローカルストレージへ書き込まれます。
なのでここで書き込んだデータにアクセスしたい場合は
local_data.data.scaleX
でアクセスできます。


次にloadメソッドです。このメソッドはローカルストレージに保存してある情報を読み込みます。
この中の
if(local_data.data.scaleX != undefined && local_data.data.scaleY != undefined)
というのは、ローカルストレージにscaleXとscaleYというオブジェクトが存在したらif文の中を実行という意味です。
そして、if文の中でデータの読み込みをしています。


以上、これらを使って設定を保存しています。

  • ログイン時に自動的に起動

これは超簡単にできます。

try {
       NativeApplication.nativeApplication.startAtLogin = true;
} catch (e:IllegalOperationError) {
       trace(e.message);
}


これだけで完了です。tyr-catchで囲んでいるのはbuilderで実行してもエラーがでるからです。
実際に動作するかを確かめるにはairファイルに書き出してインストールして実行しなといけません。


今回は長くなりましたが以上です。
次回からは音声部分をやっていきます。


ソース