ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   ActionScript 3.0
     FileReference の download について
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 トピック
5001758
投稿日時: 2010-9-3 10:06
お馴染みさん
登録日: 2010-9-3
居住地:
投稿: 11
FileReference の download について
はじめて投稿させて頂きます。

FLASHバージョン 10.1 より、以下の挙動が見られるようになりました。
詳細を以下に記述させて頂きますので、解決策がお分かりになる方がいらっしゃいましたら、ご返答頂けると幸いです。

なお、10.1より以下の対応がされた旨は把握しているのですが、IOErrorEventが何度も返ってくるのは想定外です。
FLASH側の問題であれば、仕方がないのですが…。

http://kb2.adobe.com/jp/cps/860/cpsid_86022.html

【事象】
ファイルのダウンロード時にダウンロード先のディスク要領に必要な空き容量が不足している場合、IOErrorEventが何度も返ってくる。

【解決したい内容】
IOErrorEventが何度も発生し無限ループに陥るため、それを回避したい。

【サンプルソース】
読みずらいソースで申し訳ございません。
ファイルのダウンロード時にダウンロード先のディスク要領に必要な空き容量が不足している場合、
一度はIOErrorEventを function ioErrorHandler でキャッチするのですが、その後何度もIOErrorEventが返されてしまいます。
以下の対策を試みましたが、問題解決には至っておりません。

 ・function ioErrorHandler に file.cancel(); 処理を追加 


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
	<![CDATA[
		public var dlloadUrl:URLRequest = new URLRequest();
		public var dlfilename:String = "test.ppt";
		public var file:FileReference = new FileReference();
		public function dlFile(): void {
			try {
				configureListeners(file);
				dlloadUrl.url = filename.text;
				file.download(dlloadUrl,dlfilename);			
			} catch (e:IOErrorEvent){
				trace(e);
			}
		}	

		/**
		 * イベントの登録処理。
		 * @param IEventDispatcher 
		 * @return なし
		 */
		private function configureListeners(dispatcher:IEventDispatcher):void {
	            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
		}

		/**
		 * イベントの削除処理。
		 * @param IEventDispatcher 
		 * @return なし
		 */
		private function removeEvents(dispatcher:IEventDispatcher):void {
	            dispatcher.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
		}

		/**
		 * IOエラー発生イベント処理。
		 * IOエラーが発生した場合に呼び出される。
		 * @param event IOエラーイベント
		 * @return なし
		 */
		private function ioErrorHandler(event:IOErrorEvent):void{
			trace("onIOError start");
			removeEvents(file);
			trace("onIOError end");		
		}

	]]>
</mx:Script>	
 <mx:TextInput x="10" y="20" id = "filename" />
 <mx:Button x="178" y="20" label="FileDownLoad" click = "dlFile()" /> 	

</mx:Application>


宜しくお願い致します。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » FileReference の download について 5001758 2010-9-3 10:06
     Re: FileReference の download について fujita 2010-9-3 10:23
       Re: FileReference の download について 5001758 2010-9-3 11:44
         Re: FileReference の download について fujita 2010-9-3 12:16
           Re: FileReference の download について 5001758 2010-9-3 13:09
             Re: FileReference の download について 5001758 2010-9-6 18:05

投稿するにはまず登録を