Flex弹出框下载CSV-按回车键报 #2176

wangwangbinbin 2011-02-24 03:23:16
在下载CSV的时候,先弹出一个alert框,

此时如果按下回车键,就会报#2176的错误,

#2176:某些动作(如显示弹出窗口的动作)只能通过用户交互来调用,例如,单击鼠标或按下按钮

如果用鼠标点OK按钮则不会,希望指点下原因和解决办法,谢谢!
...全文
283 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jnriver 2011-03-01
  • 打赏
  • 举报
回复
http://124.9.202.4/do/Q_ak/TAi9Ni_GY3GLd50y3kjaLxjh/s-r-/-J/flexalertenterfilereferencebrowse.html

http://bugs.adobe.com/jira/browse/SDK-16828

这是flex sdk的一个bug,在3.3.0以下版本都有。
上面两个地址是关于这个bug的具体内容。

http://forum.j2eemx.com/flex/3592-flex-sdk-3-3-a.html

从这个地址把SDK更新了就应该可以啦~
wangwangbinbin 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jnriver 的回复:]

http://124.9.202.4/do/Q_ak/TAi9Ni_GY3GLd50y3kjaLxjh/s-r-/-J/flexalertenterfilereferencebrowse.html

http://bugs.adobe.com/jira/browse/SDK-16828

这是flex sdk的一个bug,在3.3.0以下版本都有。
上面两个地址是关于这个bug的具体内……
[/Quote]

 原来如此啊,果然解决了,谢谢了。
天弈isai 2011-02-24
  • 打赏
  • 举报
回复
这个错误产生的原因是由于Flex的安全机制限制,从而产生的.在Flex的API有很详细的说明.
FileReference的download ,save等方法都有这方面的限制.
你可以考虑讲回车响应事件禁止,只允许通过鼠标点击还触发事件.
dormouse1985 2011-02-24
  • 打赏
  • 举报
回复
弹出了,WIN 10,1,82,76
wangwangbinbin 2011-02-24
  • 打赏
  • 举报
回复
按完回车后,弹出保存窗口了吗?

还有,您的Flash版本是多少呢?
dormouse1985 2011-02-24
  • 打赏
  • 举报
回复
我就是按照你说的,弹出窗口在按回车,也不会有这个问题啊。能否给一个完整的样例,谢谢
wangwangbinbin 2011-02-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dormouse1985 的回复:]

奇怪,粘贴你的代码测试了下,没有发现你说的问题

有调试过吗?当弹出对话框按回车键有进入closeHandler方法吗?
[/Quote]

我单击按钮没问题,但是如果 按回车键的话就有问题,就会报这个错,麻烦您再试一下
xlgp2171 2011-02-24
  • 打赏
  • 举报
回复
#2176:某些动作(如显示弹出窗口的动作)只能通过用户交互来调用,例如,单击鼠标或按下按钮
错误的意思是 根据flex安全机制
不允许通过代码去操作
只能用户操作执行
FileReference的download 官方解释如下:

在 Flash Player 10 和 Flash Player 9 Update 5 中,只有响应用户事件(例如,在鼠标单击或按键事件的事件处理函数中)才能成功调用此方法。否则,调用此方法将导致 Flash Player 引发 Error 异常。
dormouse1985 2011-02-24
  • 打赏
  • 举报
回复
奇怪,粘贴你的代码测试了下,没有发现你说的问题

有调试过吗?当弹出对话框按回车键有进入closeHandler方法吗?
wangwangbinbin 2011-02-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dormouse1985 的回复:]

贴些代码出来看看
[/Quote]

这是下载部分的代码,麻烦大家给看下!



g_DownInfo={nameShow:event.result.nameShow,
nameSave:event.result.nameSave,
filePath:event.result.filePath};
Alert.show("download","download",
Alert.OK|Alert.CANCEL, null, closeHandler);

....


protected function closeHandler(event:CloseEvent ):void{
if (event.detail == Alert.OK){
Security.allowDomain("*");
var variables:URLVariables=new URLVariables();
variables.filePath=g_DownInfo.filePath;
variables.name=g_DownInfo.nameShow;
variables.fileSysName=g_DownInfo.nameSave;

var downloadURL:URLRequest = new URLRequest(mx.core.Application.application.SERVER_ADDR+"/DownLoad")
downloadURL.data = variables;
var downfile:FileReference = new FileReference();
downfile.addEventListener(IOErrorEvent.IO_ERROR,onIOError);
downfile.addEventListener(Event.COMPLETE,onDownLoadCompleteHandler);
downfile.download(downloadURL,g_DownInfo.nameShow);
}
}
dormouse1985 2011-02-24
  • 打赏
  • 举报
回复
贴些代码出来看看

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧