2014-09-06 4 views
0

Я пытаюсь сделать обновление, которое автоматически проверяет наличие обновления, затем автоматически загружает и устанавливает, а затем после того, как оно установлено, проверяет событие First Run. Я хочу, чтобы я мог сбросить пробную версию программного обеспечения, когда кто-то загружает новую версию.isFirstRun AS3 Air applicationUpdaterUI

У меня был autoupdate, но он что-то испортил. Я не понимаю порядок операций здесь специально для метода initialize(). В API он показывает isFirstRun boolean, что означает, что он проверяет, все ли уже загружено и установлено, я бы подумал. Любые предложения о том, что делает эту работу ... первым, чтобы получить его, чтобы загрузить обновление и получить логическое isFirstRun к подлинным

import air.update.ApplicationUpdaterUI; 
import flash.filesystem.File; 
import air.update.events.StatusUpdateEvent; 
import air.update.events.*; 

var appWindow:NativeWindow = this.stage.nativeWindow; 
//Code for making Dialog Boxes---from http://thirdroute.com/2011/12/native-alerts-in-air/ AND http://www.purplesquirrels.com.au/2012/03/simple-way-to-get-native-alerts-with-adobe-air/ 
import flash.html.HTMLLoader; 
var alertDispatcher:HTMLLoader = new HTMLLoader(); 
var _html:String ="<!DOCTYPE html><html lang='en'><head><meta charset='utf-8'>" + 
        "<title></title><script></script></head><body></body></html>"; 
alertDispatcher.loadString(_html); //End of Code for Dialog Boxes. 

var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI(); 
appUpdater.updateURL = "http://www.postureviewer.com/update/updateDescriptor.xml" ; 
appUpdater.delay = 0; 
appUpdater.initialize(); 
appUpdater.isCheckForUpdateVisible = false; 

versionNumberTxt.text = appUpdater.currentVersion; 

appUpdater.addEventListener(UpdateEvent.INITIALIZED, appUpdaterComplete); 
appUpdater.addEventListener(ErrorEvent.ERROR, onError); 

function appUpdaterComplete(e:UpdateEvent) { 
    appUpdater.checkNow(); 
    if (appUpdater.isFirstRun) { 
     alertDispatcher.window.alert("First Run"); 
    } else { 
     alertDispatcher.window.alert("No...Not First Run"); 
    } 
} 
function onError(event:ErrorEvent):void 
{ 
    alertDispatcher.window.alert("Error: "+event); 
} 

ответ

0

Я изменил положение слушателей событий и избавился от остальной части оператора if. Теперь это работает. Часть, которая меня тоже путала, была, когда началось событие INITIALIZED. Он запускается один раз, когда он вот-вот будет обновляться и снова срабатывает после завершения обновления, и перезапускает воздушную программу. Это второй раз, когда я заинтересован в захвате события «isFirstRun». Я не хочу, чтобы это дало мне знать, что это не первый запуск.

import air.update.ApplicationUpdaterUI; 
import flash.filesystem.File; 
import air.update.events.StatusUpdateEvent; 
import air.update.events.*; 

var appWindow:NativeWindow = this.stage.nativeWindow; 
//Code for making Dialog Boxes---from http://thirdroute.com/2011/12/native-alerts-in-air/ AND http://www.purplesquirrels.com.au/2012/03/simple-way-to-get-native-alerts-with-adobe-air/ 
import flash.html.HTMLLoader; 
var alertDispatcher:HTMLLoader = new HTMLLoader(); 
var _html:String ="<!DOCTYPE html><html lang='en'><head><meta charset='utf-8'>" + 
        "<title></title><script></script></head><body></body></html>"; 
alertDispatcher.loadString(_html); //End of Code for Dialog Boxes. 

var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI(); 
appUpdater.updateURL = "http://www.postureviewer.com/update/updateDescriptor.xml" ; 
appUpdater.delay = 0; 
appUpdater.addEventListener(UpdateEvent.INITIALIZED, appUpdaterComplete); 
appUpdater.addEventListener(ErrorEvent.ERROR, onError); 

appUpdater.initialize(); 
appUpdater.isCheckForUpdateVisible = false; 

versionNumberTxt.text = appUpdater.currentVersion; 

function appUpdaterComplete(e:UpdateEvent) { 
    appUpdater.checkNow(); 
    if (appUpdater.isFirstRun) { //This only evaluates to true after an update has occurred... 
     alertDispatcher.window.alert("First Run"); 
    } 
} 
function onError(event:ErrorEvent):void 
{ 
    alertDispatcher.window.alert("Error: "+event); 
} 
0

Если вы обеспечиваете суд с указанным количеством допустимых пробегов до истечения срока, то вы можете сброс, по завершении, количество доступных пробных версий пользователя возвращается к 0 или продолжается, добавив количество пробных запусков, которые уже использовались. Аналогично для разрешенного количества дней, даты и т. Д.

+0

У меня есть вся пробная вещь, но я должен ее сбросить, когда приложение будет обновлено и будет запущено. Что не так с приведенным выше кодом и является моим утверждением «если» в правильном месте ... что означает это в правильном событии -> событие INITIALIZED? – docaberle

+0

Вы попробовали событие UpdateEvent.DOWNLOAD_COMPLETE? – user1134527

Смежные вопросы