0

我目前正在使用 Flex 3.0 我收到一个错误(屏幕截图如下)。我正在使用 Flash Player 10.0 版

目前我正在调用 HTTPService 并且在该 HTTPService 的 resultHandler 中我在方法 filereference.save() 中遇到错误。因为只有在 MouseEvent 或 Keyboard 事件发生时才会调用此方法。

是否有任何解决方案来克服这种情况,或者换句话说,在 ResultHandler 中调用 filereference.save 方法。

在此处输入图像描述

4

3 回答 3

5

这样做的原因是,您不再被允许自动触发文件保存弹出窗口的显示,除非用户通过用户生成的事件实际请求此操作。以下是有关该主题的更多信息:http: //www.bogdanmanate.com/2010/05/12/flex-error-2176-when-using-filereference/

我使用帖子中描述的解决方案解决了这个问题,即使用是/否警报,向用户指示文件已完成加载并且可以下载,最后要求他确认他想要将其保存在本地。您可能会认为 Thin 对用户不友好,但它实际上是关于安全性。一旦你知道如何触发事件,你就可以找出绕过这个 UI 问题的方法。

祝你有美好的一天!

于 2012-01-10T12:30:06.973 回答
1

你不能。您需要用户的单击按钮来完成它。调度 MouseEvent 是没有用的。Romi 方法可以帮助您。但是出于安全原因,您需要单击按钮。

我所做的是在结果中检索文件位置并像 html 页面一样打开它。然后你就可以下载了。除了像 Romi 所说的那样强迫用户点击按钮外,我没有看到其他解决方案。

var u:URLRequest = new URLRequest(event.result); 
navigateToURL(u, "_blank");
于 2012-01-10T21:15:46.540 回答
0

另一种解决方案可能是将文件发送到服务器,然后让服务器将其发送回客户端,这将触发浏览器的保存/打开对话框。但是如果文件是由 flex 创建的,那么这在带宽方面并不理想。

于 2012-01-10T15:59:37.207 回答