チェンジセット 2498
- コミット日時:
- 2009/04/19 17:23:23 (3 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
air/AirAutoUpdater/trunk/src/net/jirox/AirAutoUpdater.as
r2490 r2498 24 24 25 25 package net.jirox { 26 import flash.desktop.NativeApplication; 27 import flash.desktop.Updater; 26 28 import flash.display.DisplayObject; 27 29 import flash.events.Event; 28 30 import flash.events.IOErrorEvent; 29 import flash.net.URLRequest;30 import flash.net.URLLoader;31 import flash.net.URLLoaderDataFormat;32 import mx.events.CloseEvent;33 import mx.core.Application;34 import mx.core.IMXMLObject;35 import mx.controls.Alert;36 import mx.managers.PopUpManager;37 31 import flash.filesystem.File; 38 32 import flash.filesystem.FileMode; 39 33 import flash.filesystem.FileStream; 40 import flash.desktop.NativeApplication; 41 import flash.desktop.Updater; 34 import flash.net.URLLoader; 35 import flash.net.URLLoaderDataFormat; 36 import flash.net.URLRequest; 37 import mx.controls.Alert; 38 import mx.core.Application; 39 import mx.core.IMXMLObject; 40 import mx.events.CloseEvent; 41 import mx.managers.PopUpManager; 42 42 import net.jirox.PopUpProgressBar; 43 43 44 44 public class AirAutoUpdater implements IMXMLObject { 45 private namespace descriptor = 'http://ns.adobe.com/air/application/1.0';46 45 47 46 /** version.xmlがあるURL */ … … 53 52 private var popup:PopUpProgressBar; 54 53 54 55 55 56 /////////////// Events //////////////// 56 57 /** … … 58 59 */ 59 60 private function downloadAirFileCompleteHandler(event:Event):void { 61 airLoader.removeEventListener(Event.COMPLETE, downloadAirFileCompleteHandler); 62 airLoader.removeEventListener(IOErrorEvent.IO_ERROR, downloadAirFileIOErrorHandler); 63 60 64 PopUpManager.removePopUp(popup); 61 65 var airFile:File = File.applicationStorageDirectory.resolvePath("updateFile.air"); … … 73 77 */ 74 78 private function downloadAirFileIOErrorHandler(event:IOErrorEvent):void { 79 airLoader.removeEventListener(Event.COMPLETE, downloadAirFileCompleteHandler); 80 airLoader.removeEventListener(IOErrorEvent.IO_ERROR, downloadAirFileIOErrorHandler); 81 75 82 PopUpManager.removePopUp(popup); 76 83 Alert.show('AirファイルのDLに失敗しました'); … … 81 88 */ 82 89 private function versionCheckCompleteHandler(event:Event):void { 90 versionLoader.removeEventListener(Event.COMPLETE, versionCheckCompleteHandler); 91 versionLoader.removeEventListener(IOErrorEvent.IO_ERROR, versionCheckIOErrorHandler); 92 83 93 var xml:XML = new XML(versionLoader.data); 84 94 remoteVersion = xml.version; 85 95 airUrl = xml.url; 86 use namespace descriptor; 87 var version:String = NativeApplication.nativeApplication.applicationDescriptor.version; 88 if (remoteVersion != version) { 96 var appDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor; 97 var ns:Namespace = appDescriptor.namespace(); 98 var localVersion:String = appDescriptor.ns::version; 99 if (remoteVersion != localVersion) { 89 100 Alert.show("新しいバージョンに更新可能です\n" + 90 101 "更新しますか?\n\n" + 91 "現在のバージョン: " + version + "\n" +102 "現在のバージョン: " + localVersion + "\n" + 92 103 "新しいバージョン: " + remoteVersion, 93 104 '確認', … … 100 111 */ 101 112 private function versionCheckIOErrorHandler(event:IOErrorEvent):void { 113 versionLoader.removeEventListener(Event.COMPLETE, versionCheckCompleteHandler); 114 versionLoader.removeEventListener(IOErrorEvent.IO_ERROR, versionCheckIOErrorHandler); 102 115 //Alert.show('バージョン情報のDLに失敗しました'); 103 116 } … … 114 127 /////////////// Overload //////////////// 115 128 public function initialized(document:Object, id:String):void { 129 checkUpdate(); 130 } 131 132 public function checkUpdate():void { 116 133 versionLoader = new URLLoader(); 117 134 versionLoader.addEventListener(Event.COMPLETE, versionCheckCompleteHandler); 118 135 versionLoader.addEventListener(IOErrorEvent.IO_ERROR, versionCheckIOErrorHandler); 119 136 versionLoader.load(new URLRequest(url)); 120 // Alert.show('hoge');121 137 } 122 138

