Воздух: сохранить местоположение и размер приложения

StackOverflow https://stackoverflow.com/questions/2335246

Вопрос

Хорошо, я пытаюсь сделать так, чтобы, когда пользователь запускает мое Air App, оно позиционирует себя и размещает себя на том, что было в последний раз, когда оно было открыто.

Вот мой код:

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;
    }
}

Это действительно работает, однако, я получаю жалобы от пользователей, которые иногда, когда они запускают приложение, его можно найти (вне экрана), они могут щелкнуть правой кнопкой мыши элемент панели задач и максимизировать его, чтобы вернуть его, но это должно не будьте необходимы.

Я могу только предположить, что эта проблема вызвана моей попыткой сохранить позицию приложения. Я не знаю, что может пойти не так, хотя или как я могу это исправить?

Может быть, способ определить, находится ли приложение за пределами экрана после позиционирования, и переместить его на экране, если да? Не знаю, как я могу сделать это?

Любые идеи?

Спасибо!!!

Это было полезно?

Решение

Каждая пользовательская форма в списках фактически содержит конкретный веб-часть ListView, фактически, если вы правильно настраиваете его, вы спрятались скорее всего, по умолчанию по умолчанию, и добавил свой собственный, для которого вы настраиваете поведение.

Все это сказать, что на самом деле вы имеете дело с предоставлением дубликатов веб-частей, которые Waldek также здесь объяснил - http://blog.mastykarz.nl/preventing-provisioning-dupluctate-web-parts-instance-weature-parts-instance/.P >.

в основном, вам нужно полагаться на идентификаторы ваших веб-частей во время предоставления, например,Примеры признаков, наводя, найдите свой список и обновляйте формы по коду, если веб-части в двойном, избавьтесь от самых старых.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top