チェンジセット 2498

差分発生行の前後
無視リスト:
コミット日時:
2009/04/19 17:23:23 (3 年前)
コミッタ:
uwi
ログメッセージ:

AIR1.5対応
ActionScript?から生成できるように
他微修正

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • air/AirAutoUpdater/trunk/src/net/jirox/AirAutoUpdater.as

    r2490 r2498  
    2424 
    2525package net.jirox { 
     26        import flash.desktop.NativeApplication; 
     27        import flash.desktop.Updater; 
    2628        import flash.display.DisplayObject; 
    2729        import flash.events.Event; 
    2830        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; 
    3731        import flash.filesystem.File; 
    3832        import flash.filesystem.FileMode; 
    3933        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; 
    4242        import net.jirox.PopUpProgressBar; 
    4343 
    4444        public class AirAutoUpdater implements IMXMLObject { 
    45                 private namespace descriptor = 'http://ns.adobe.com/air/application/1.0'; 
    4645 
    4746                /** version.xmlがあるURL */ 
     
    5352                private var popup:PopUpProgressBar; 
    5453 
     54                 
     55                 
    5556                /////////////// Events //////////////// 
    5657                /** 
     
    5859                 */ 
    5960                private function downloadAirFileCompleteHandler(event:Event):void { 
     61                        airLoader.removeEventListener(Event.COMPLETE, downloadAirFileCompleteHandler); 
     62                        airLoader.removeEventListener(IOErrorEvent.IO_ERROR, downloadAirFileIOErrorHandler); 
     63                         
    6064                        PopUpManager.removePopUp(popup); 
    6165                        var airFile:File = File.applicationStorageDirectory.resolvePath("updateFile.air"); 
     
    7377                 */ 
    7478                private function downloadAirFileIOErrorHandler(event:IOErrorEvent):void { 
     79                        airLoader.removeEventListener(Event.COMPLETE, downloadAirFileCompleteHandler); 
     80                        airLoader.removeEventListener(IOErrorEvent.IO_ERROR, downloadAirFileIOErrorHandler); 
     81                         
    7582                        PopUpManager.removePopUp(popup); 
    7683                        Alert.show('AirファイルのDLに失敗しました'); 
     
    8188                 */ 
    8289                private function versionCheckCompleteHandler(event:Event):void { 
     90                        versionLoader.removeEventListener(Event.COMPLETE, versionCheckCompleteHandler); 
     91                        versionLoader.removeEventListener(IOErrorEvent.IO_ERROR, versionCheckIOErrorHandler); 
     92                         
    8393                        var xml:XML = new XML(versionLoader.data); 
    8494                        remoteVersion = xml.version; 
    8595                        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) { 
    89100                                Alert.show("新しいバージョンに更新可能です\n" + 
    90101                                                "更新しますか?\n\n" + 
    91                                                 "現在のバージョン: " + version + "\n" + 
     102                                                "現在のバージョン: " + localVersion + "\n" + 
    92103                                                "新しいバージョン: " + remoteVersion, 
    93104                                        '確認', 
     
    100111                 */ 
    101112                private function versionCheckIOErrorHandler(event:IOErrorEvent):void { 
     113                        versionLoader.removeEventListener(Event.COMPLETE, versionCheckCompleteHandler); 
     114                        versionLoader.removeEventListener(IOErrorEvent.IO_ERROR, versionCheckIOErrorHandler); 
    102115                        //Alert.show('バージョン情報のDLに失敗しました'); 
    103116                } 
     
    114127                /////////////// Overload //////////////// 
    115128                public function initialized(document:Object, id:String):void { 
     129                        checkUpdate(); 
     130                } 
     131                 
     132                public function checkUpdate():void { 
    116133                        versionLoader = new URLLoader(); 
    117134                        versionLoader.addEventListener(Event.COMPLETE, versionCheckCompleteHandler); 
    118135                        versionLoader.addEventListener(IOErrorEvent.IO_ERROR, versionCheckIOErrorHandler); 
    119136                        versionLoader.load(new URLRequest(url)); 
    120 //                      Alert.show('hoge'); 
    121137                } 
    122138