FileReference.download()不起作用

时间:2010-05-24 03:37:31

标签: flex actionscript-3 filereference

我正在构建一个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 个答案:

答案 0 :(得分:1)

问题似乎是我的命令在完成之前就被摧毁了。

为了概念验证,我将localRef变量设置为静态而不是实例变量,一切都成功完成!我猜Cairngorm命令尽快杀死自己!