是否可以通过ExternalInterface调用允许FileReference.save()?

时间:2013-03-18 16:01:27

标签: javascript flash security

在JavaScript中的onClick侦听器中,我通过ExternalInterface调用Flash方法,尝试显示文件保存对话框。但是:

Error: 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.
    at flash.net::FileReference/_save()
    at flash.net::FileReference/save()
    at <my code>
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at flash.external::ExternalInterface$/_callIn()
    at Function/<anonymous>()

有什么方法可以让它发挥作用吗?也许我可以设置安全策略,或让用户批准?我不想在Flash中实现整个按钮。

1 个答案:

答案 0 :(得分:1)

不幸的是,即使是为了响应浏览器中的某些用户互动,也无法通过FileReference.save()致电FileReference.browse()ExternalInterface。这些函数仅允许响应Flash Player本身中的直接用户交互事件。 Flash Player 10中添加了这些安全限制。您可以阅读有关它们的更多信息here

因此,您必须直接在Flash影片中使用按钮。或者,您可以尝试在HTML按钮上放置一个隐藏的Flash按钮以捕获鼠标。