AIRガジェットで前回終了時の設定を復元する方法

AIRガジェットを起動する際、毎回起動時に表示位置がリセットされてしまうととても不便。
特に時計やカレンダーなどのアプリの場合は、人それぞれ使いやすい定位置があったりすると思います。

ガジェットを作成する時によく使用するので、ここにメモしときます。

[php]
import flash.system.Capabilities;
 
/**
* 初期位置設定
*/
private function initPosition():void{
 
//SharedObject読み込み
var so:SharedObject = SharedObject.getLocal("positionData");
 
//画面からはみ出ていないかチェック
if( so.data.appX < Capabilities.screenResolutionX && so.data.appY < Capabilities.screenResolutionY ){
this.nativeWindow.x = so.data.appX;
this.nativeWindow.y = so.data.appY;
}else{
//はみ出している場合は初期値
this.nativeWindow.x = 100;
this.nativeWindow.y = 100;
so.clear();
}
}
 
/**
* window位置を保存して終了
*/
private function exitApplication():void{
var so:SharedObject = SharedObject.getLocal("positionData");
so.data.appX = this.nativeWindow.x;
so.data.appY = this.nativeWindow.y;
so.flush();
this.nativeWindow.close();
}
[/php]

アプリを終了する際に、SharedObjectにwindow位置を保存します。
起動時には、SharedObjectを読み込み、前回の位置に配置!といった感じで簡単に実装できます。
配置する時に、はみ出していた場合は初期位置に配置してあげたりすると、親切かもしれません。

また、window位置だけじゃなく、ウィンドウサイズや表示情報なども一緒に保存しておいてもよいと思います。

参考:
http://d.hatena.ne.jp/haru-komugi/20080618/1213767252