2012-03-14 9 views
0

現在Android(および最終的にiOS)を対象としているAdobe Air Mobileアプリケーションを構築中です。私はFlash Builder 4.6(Flex)を使用しています。Flex Airモバイルファイルのダウンロード

私は、URLからzipファイルをダウンロードし、それをローカルストレージに保存し、内容を解凍する必要があります。

Flex/Airでダウンロードを行う方法についてはいくつかの例があるようですが、Flex/Air/Mobileでは多くのダウンロード方法はありません。さらに、サンプルの組み合わせは、名前空間のバージョンなどで全面的に見えます。

誰かがAirMobileアプリでこれを行う方法の簡潔な例を教えてください。

ありがとうございました!

編集:私が試したもの:

をので、ウェブ上の例から、私がした最初のものは、Flexの宣言に名前空間を追加しました:<net:URLLoader id="urlLoader" />xmlns:net="flash.net.*"

は、それから私は、次のコンポーネントを追加しました

その後、ボタンのクリックイベントに、私はそれを呼ばれる:urlLoader.load(new URLRequest(downloadUrl));

私は、実行時エラーを取得:Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: http://を...

問題は、何が欠けているかわからないので、ここからどこに行くのかわかりません。

+0

あなたは、あなたが試したものと始めるそれが動作しない理由を説明した後、おそらく我々はあなたが診断に役立つことができますどの程度。それはどうやって聞こえる? – JeffryHouser

+0

ありがとう、フレックストラ!これまでに試したことのいくつかを示す編集を追加しました。 – Ilya

+0

4.6.0 SDKを使用していますが、ビルダーIDEのバージョンでは、使用されている実際のSDKとほとんど違いはありません。プロジェクトを右クリックしてプロパティを確認し、 AIRのバージョンも同様に便利です。また、Charles Webデバッグプロキシを使用することもできます(過去に自分の投稿を見たことがあると思われるが、私はそうではないかもしれないが)。また、障害ハンドラを追加するhttp://help.adobe.com/en_US/FlashPlatform /reference/actionscript/3/flash/net/URLLoader.html#includeExamplesSummary – shaunhusain

答えて

2

このコードでは、IOS上で私の作品:

public function download():void{ 
     var loader:URLLoader = new URLLoader(); 
     loader.dataFormat = URLLoaderDataFormat.BINARY; 
     loader.addEventListener(IOErrorEvent.IO_ERROR,function(e:IOErrorEvent):void{ 
      Alert.show('error IO'); 
     }); 
     loader.addEventListener(Event.COMPLETE,downloadComplete); 
     loader.load(new URLRequest(YOUR_URL));   
    } 

private function downloadComplete(event:Event):void{ 
     try{ 
      var file:File=File.applicationStorageDirectory.resolvePath(YOUR_LOCAL_PATH); 
      var ba:ByteArray = event.target.data as ByteArray; 
      var fileStream:FileStream = new FileStream(); 
      fileStream.addEventListener(IOErrorEvent.IO_ERROR,function(e:IOErrorEvent):void{ 
       Alert.show('error IO'); 
      }); 
      fileStream.open(file, FileMode.WRITE); 
      fileStream.writeBytes(ba); 
      fileStream.addEventListener(Event.CLOSE, fileClosed); 
      fileStream.close(); 
      Alert.show("File downloaded succesfully") 
     } 
     catch(eeee){ 
      Alert.show("error") 
     } 
    } 
関連する問題