- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在 Web 服务调用完成后调用 FileReference.save(),但此方法有一个限制:“在 Flash Player 中,您只能成功调用此方法以响应用户事件(例如,在事件处理程序中)用于鼠标单击或按键事件)。否则,调用此方法会导致 Flash Player 引发错误异常。” (来自文档 here)
这个限制有点模糊。这是否意味着我只能从注册为某些类型用户事件的监听器的事件处理函数中调用 FileReference.save() 方法?如果是这样,那么究竟哪些用户事件是有效的? (也许有一个事件永远不会被用户与我的应用程序交互分派(dispatch),我可以为该事件类型注册一个事件处理函数并在该函数中进行 save() 调用?)
我的困难是我不能安全地调用 FileReference.save() 方法,直到我的 Web 服务返回将用作 FileReference.save() 方法调用的参数的数据,因此触发 FileReference 的事件。 save() 调用实际上是一个 ResultEvent 而不是用户事件,我对调度一个新的(假的)用户事件类型持怀疑态度,以便能够触发 FileReference.save() 调用,除非它绝对是一个用户事件永远不会因为用户与我的应用程序的实际交互而被分派(dispatch)。
简而言之,我现在正在做的是:我有一个注册为按钮单击处理程序的函数。在这个函数中,我调用 Web 服务从服务器获取数据。我还有一个结果处理函数,它在 Web 服务调用完成时被调用,我想在这里调用 FileReference.save() 方法,因为此时我知道数据已准备好保存到一份文件。但是上述限制阻止了我这样做——我收到一个错误:
Error #2176: Certain actions, such as those that display a pop-up window,
may only be invoked upon user interaction, for example by a mouse click
or button press.
最佳答案
Adobe 将其作为一种安全措施来确保用户是那些弄乱文件而不是潜在有害代码的人。我的理解是,他们通过仅允许源自 UI 组件的(单击?)事件的处理程序执行 FileReference 方法来强制执行此操作,因此以编程方式生成您自己的事件将不起作用,尽管我没有尝试验证这一点。不幸的是,我发现的最佳解决方案是重新设计 UI 以符合此约束。在您的特定情况下,您可以使用“准备下载”之类的按钮将其设为两次单击过程,该按钮会在 Web 服务完成后更改为“下载文件”。从用户的角度来看,这并不理想,但我认为没有什么可以做的,除非您可以在显示触发 FileReference.save() 调用的按钮之前以某种方式完成 Web 服务调用。
关于apache-flex - Flex 的 FileReference.save() 只能在用户事件处理程序中调用——我该如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3301839/
我制作了一个“文档”模型,其中包含一个"file"字段,它是一个 FileReference。现在我正在研究一个存储库查询函数,该函数检索文件名中包含特定字符串的所有文档(为此使用 $query->l
我有一个集成了 FLASH 对象的 ASP.NET/C# Web 应用程序。我需要通过 FLASH 中的文件引用类从一个 HTTP POST 一次将两个图像文件上传到服务器。是否可以?如果可以,怎么做
下面您可以看到 Fluid 中 FileReference 类型的对象的调试。在 Fluid 中,调试如下所示:{fileReference} 问题是如何访问以绿色突出显示的属性,即 width ,
在我的项目中,我让用户使用 FileReference 类选择图片。然后我使用 load() 函数将这些图片加载到它们的 .data 属性中。在此之后,我执行一些本地操作并将它们发送到服务器。 我想要
我需要用户从我的应用程序下载 JPEG 文件,但是,当用户更改文件名时,保存的文件将被下载而没有扩展名。 例如:我正在使用 FileReference.download() 并将默认文件名设置为“de
FileReference 的使用对有效字符有限制。 错误:错误 #2087:FileReference.download() 文件名包含禁止字符。 这很好,因为我猜这个限制无论如何来自底层文件系统
我在 Windows 上的 Flash Player 10 中使用 Flex,使用 FileReference将文件加载到内存中,如下所示。 我的问题是,当文件被 Windows 锁定时,我的 Fil
在我的模型中的 TYPO3 6.2 中,我有一个名为 documents 的文件的公共(public)字段。 ,它是 ObjectStorage的 \TYPO3\CMS\Extbase\Domain\
更新: 正如下面雅各布的回复中所讨论的,限制或纠正 FileReference.save 的行为是不可能的。任何人都可以提出一个替代方案(服务器是 Apache/PHP),它符合我在这篇文章中的所有标
我目前有一个swf,可让您选择和显示文件,然后使用FileReference将其上传到服务器。这很好用,但是我需要能够选择并显示多个(在某些情况下最多25个),然后在最后全部上传。 我知道您可以使用F
我正在使用 Adobe AIR 开发应用程序。 当我们使用 FileReference 浏览文件时,如何获取文件的绝对路径或文件的“nativePath”(我们在 Flex/AIR 中称之为)?
在 extbase 扩展中,我有一个 FileReference 对象。它最初是用extension_builder 创建的。来自模型: /** * apprenticeshipDocument
As3 FileReference 下载动态url 不发送变量数据;示例: downloadXls.buttonMode=true; import flash.net.FileReference; i
是否可以在不使用 fileReference 的情况下在 Flex 3.5 中上传文件?或者甚至使用 fileReference,但没有浏览,例如,我试图获取打印屏幕并将其发送到我的 java web
所以,我使用 javascript 和 jquery 创建了一个 HTML5 XHR 多文件 uploader 。现在,我希望能够为只允许一次选择一个文件的浏览器(例如 Internet Explor
我正在尝试从 JavaScript 调用 FileReference 类的 browse() 方法(用户单击使用 ExternalInterface 的文本以调用 Flash 中的方法)。 不幸的是,
IE 将打开一个打开的对话框,但带有 Flash 插件 11.2.202.235 的 FireFox 12 将打开一个保存对话框。 这发生在另外 2 位同事身上,但其他人没有 - 有什么想法吗? 最佳
当我使用 FileReference 类的 Download 方法时,在桌面和 Android 上一切正常,但在 iOS 上出现错误。 这是代码: var req = new URLRequest(u
我正在使用 Filereference.save() 来保存 XML 文件。它使用默认文件名工作正常。但是有没有办法强制保存文件的文件扩展名?我使用“untitled.xml”作为默认文件名,但如果用
当浏览文件对话框打开的时间比配置的 session 超时时间长时,我们遇到的问题是与 Flex 客户端关联的服务器 session 超时。似乎在某些播放器上,在 FileReference 上执行浏览
我是一名优秀的程序员,十分优秀!