0

我正在构建一个需要我下载文件的 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);
    }
}

如您所见,我还连接了所有可能的事件侦听器。

执行此操作时,我会出现浏览窗口,并且可以选择一个位置,然后单击保存。之后,什么也没有发生。

我将每个事件处理程序都连接到我的记录器,并且没有一个被调用!这里有什么遗漏吗?

4

1 回答 1

1

问题似乎在于我的命令在完成之前被破坏了。

为了概念验证,我将localRef变量设置为静态而不是实例变量,一切顺利!我猜凯恩戈姆的命令会尽快自杀!

于 2010-05-24T03:46:33.230 回答