FileReference.download () не работает - PullRequest
0 голосов
/ 24 мая 2010

Я создаю приложение Flex, которое требует от меня загрузки файлов.

У меня есть следующий код:

public function execute(event:CairngormEvent) : void
{
    var evt:StemDownloadEvent = event as StemDownloadEvent;
    var req:URLRequest = new URLRequest(evt.data.file_path);
    var localRef:FileReference = new FileReference();

    localRef.addEventListener(Event.OPEN, _open);
    localRef.addEventListener(ProgressEvent.PROGRESS, _progress);
    localRef.addEventListener(Event.COMPLETE, _complete);
    localRef.addEventListener(Event.CANCEL, _cancel);
    localRef.addEventListener(Event.SELECT, _select);
    localRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, _securityError);
    localRef.addEventListener(IOErrorEvent.IO_ERROR, _ioError);

    try {
        localRef.download(req);
    } catch (e:Error) {
        SoundRoom.logger.log(e);
    }
}

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

Когда это выполняется, я получаю окно просмотра и могу выбрать местоположение и нажать кнопку «Сохранить» После этого ничего не происходит.

Каждый обработчик событий подключен к моему логгеру, и не вызывается ни один! Здесь чего-то не хватает?

1 Ответ

1 голос
/ 24 мая 2010

Кажется, проблема в том, что моя команда уничтожена до того, как это может закончиться.

Для подтверждения концепции я установил статическую переменную localRef вместо переменной экземпляра, и все прошло успешно! Я думаю, команды Cairngorm убивают себя как можно скорее!

...