ユーザーがエアアプリを起動したときに、最後に開いたときの位置に合わせてサイズを調整できるようにしようとしています。
これが私のコードです:
private function init():void
{
gotoLastPosition();
this.nativeWindow.addEventListener( Event.CLOSING, saveAppPosition );
}
private function saveAppPosition(e:Event = null):void
{
var xml:XML = new XML('<position x="'+this.nativeWindow.x+'" y="'+this.nativeWindow.y+'" width="'+this.width+'" height="'+this.height+'"/>');
var f:File = File.applicationStorageDirectory.resolvePath("appPosition.xml");
var s:FileStream = new FileStream();
try
{
s.open(f,flash.filesystem.FileMode.WRITE);
s.writeUTFBytes(xml.toXMLString());
s.close();
}
catch(e:Error){}
}
private function gotoLastPosition():void
{
var f:File = File.applicationStorageDirectory.resolvePath("appPosition.xml");
if(f.exists)
{
var s:FileStream = new FileStream();
s.open(f,flash.filesystem.FileMode.READ);
var xml:XML = XML(s.readUTFBytes(s.bytesAvailable));
this.nativeWindow.x = xml.@x;
this.nativeWindow.y = xml.@y;
this.width = xml.@width;
this.height = xml.@height;
}
}
これは機能しますが、ユーザーから、アプリを起動したときにどこにも見つからない (画面外) ことがあり、タスクバー項目を右クリックして最大化して元に戻すことができるという苦情が寄せられています。必要ありません。
この問題は、アプリケーションの位置を保存しようとしたことが原因であるとしか考えられません。何が問題なのか、またはこれを修正する方法がわかりませんか?
アプリを配置した後、アプリが画面外にあるかどうかを確認し、画面上に移動する方法はありますか? どうすればそれができるのかわかりませんか?
何か案は?
ありがとう!!!