Как загрузить файл синхронно в flex - PullRequest
0 голосов
/ 17 ноября 2010

В моем приложении AIR у меня есть список файлов, которые необходимо загрузить с удаленного сервера. Я хочу, чтобы эта загрузка происходила синхронно. Мол,

for(i=0; i<fileList.length; i++)
{
  // do something before downloading
  downloadFile(fileList[i]);
  // do something after download...
}

Пожалуйста, помогите мне узнать, как загружать файлы синхронно, чтобы выполнить вышеупомянутую задачу.

Спасибо заранее !!

1 Ответ

3 голосов
/ 17 ноября 2010

Избегайте синхронного программирования во Flex.Вы заблокируете пользовательский интерфейс и браузер, чего на самом деле не хотите (а фреймворк мешает вам).На самом деле, я бы сказал, что это невозможно без хаков ... но это частая ситуация, когда вам действительно нужно, чтобы она была синхронной.

Используйте HTTPService для асинхронной загрузки файла:

var service:HTTPService = new HTTPService();
service.url = "http://yourhost.com/yourfile";
service.resultFormat = "text";
service.result = function(event:ResultEvent):void { doSomething(event.result) });
service.send();

Я не решаюсь показать это, но есть ХАК, где вы можете открыть браузер и использовать Javascript для этого ... но на самом деле, вам следует избегать этого.Должен быть способ сделать вашу систему асинхронной?

http://cookbooks.adobe.com/post_Synchronous_data_calling_with_Flex-7184.html

...