此前我分享了一些关于SWFUpload的东西,有一些朋友在网上跟我探讨他们在使用中遇到的问题,多数情况下都是他们对初始化时setting对象的属性没有了解清楚,配置错误甚至是遗漏造成了程序无法正常初始化。而前些天一个朋友在邮件里说他的SWFUpload程序在XP系统上运行正常,在win 2000系统下运行出现了问题。当时我第一反应是他的两个系统的浏览器环境不一致。可当我看了他发的Debug信息以后,我才发现问题和我想的不一样。

  在他的Debug信息中抛出了一个#2176的异常(Exception: Error: Error #2176),可是我查了一下我本地的AS帮助手册没有发现这个异常状态码。去Adobe官方DOC上一看,原来是一个运行时错误"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."。

  继续查阅了下发现原来是FlashPlayer 10升级以后,安全策略更严格了,对于弹窗这类显示动作需要用户通过鼠标或者键盘交互来触发,无法像以前一样使用脚本直接触发了(类似HTML Form中的File表单,我们无法使用Javascript来触发文件选择对话框的弹出,一定需要用户点击"浏览"按钮)。我升级播放器以后测试了以前写的程序,果然出现了#2176错误。既然FlashPlayer 10有了这样的安全限制,那么SWFUpload目前版本岂不是不能使用了?

  我去SWFUpload官方看了下,果然十月份已经更新到了V2.2.0版本,同时加入了Google Code。我最近也忙了些,一直都没有再关注这个库。其实在官方论坛上已经有人提出了上述问题,而V2.2.0版本的Change Log也明确指出此版就是为了支持FlashPlayer 10而做的升级,同时也放弃了对FlashPlayer 8的支持。

  我又查看了下官方V2.2.0版修正的Demo,原来此版是在SWF中引入一个按钮,用户点击此按钮来触发文件选择对话框的显示,而此前版本中使用的selectFile()和selectFiles()由于无法兼容Flash Player 10,因此不能继续使用了。虽然功能是正常了,但我个人觉得仍然有个小小的不完美之处就是将一个Flash元素暴露在了用户面前(Flash元素上右键和HTML页面右键表现不一致),用户可能会有种"怪异"的感觉。

  V2.2.0的API文档也相应做了些修改,主要有以下五处更改:

  一、彻底放弃了对Flash Player 8的支持,只提供唯一版本的swf影片。

  二、由于现在的SWF需要显示在页面内,因此在setting中增加了一个必须的button_placeholder_id属性,该属性可以设置一个页面中的DOM元素ID,当SWFUpload初始化的时候,会用SWF影片替换此DOM节点。

  三、setting中增加了一系列关于按钮UI显示的属性,具体查阅我更新的SWFUpload v2.2.0 说明文档,也可直接查看官方的Demo。

  四、setting中增加了一个prevent_swf_caching属性,通过给swf后添加random参数来控制是否被浏览器缓存。官方的目的是为了解决基于IE引擎的浏览器的一个BUG。(PS:官方没有说明是什么BUG,不过在V2.0版本时,我在Maxthon中遇到了刷新BUG,当时我同样使用此方法更改了SWFUpload库,但BUG依然存在。)

  五、method中增加了一系列关于重置按钮UI的方法,具体查阅我更新的SWFUpload v2.2.0 说明文档。

  PS:SWFUpload的此次升级主要是为了兼容Flash Player 10,增加了一系列的属性和方法来完成按钮UI的自定制,这样就使配置过程更加复杂了,或许可以把按钮的UI还是留给HTML中的DOM和CSS完成,而SWFUpload提供一个透明影片定位在页面中指定的按钮容器之上。我的这种设想是来自目前的WEB邮箱系统中很常见的自定义的附件上传按钮,实际上是使用CSS将File表单透明,然后定位到自定义的按钮之上,这样用户点击添加附件的时候,实际上点击的是File表单的"浏览"按钮,只不过它不可见罢了。(有时间我会专门针对这个实现分享点东西和大家一起探讨。)

  如果你还在使用SWFUploadV2.2.0之前的版本,那么赶紧使用V2.2.0版本修改你以前的程序,否则你的程序就存在不兼容问题,可能会造成用户无法正常使用。针对SWFUpload V2.2.0 API文档中的调整我也重新做了翻译,详细见SWFUpload v2.2.0 说明文档。

Flash Player 10升级导致SWFUpload程序异常相关推荐

  1. Adobe Flash Player 10新特性详解:支持GPU加速

    近日,Adobe终于发布了Flash Player 10正式版,完成了业界期待已久的升级,并与近期的Adobe CS4套装融为一体,这可能也是该软件史上最重要的一次更新. Adobe声称Flash P ...

  2. Adobe Flash player 10 提示:Error#2044:未处理的IOErrorEvent. text=Error#2036:加载未完成 的解决方法

    Adobe Flash player 10 提示:Error#2044:未处理的IOErrorEvent. text=Error#2036:加载未完成 的解决方法 参考文章: (1)Adobe Fla ...

  3. P2P in Flash Player 10

    据说是player10中将支持p2p , 当我看到这个消息,是非常的激动的,当我看完下面的内容,觉的可能还要等一段时间了,我的理解是,P2P在player10中直接通过client端传输数据,还需要一 ...

  4. Adobe Flash Player 10 插件无法注册

    故障描述:浏览网页时Flash无法正常显示.安装Adobe Flash Player 10 插件,提示"无法注册"! 故障处理过程: 进入安全模式,运行文章下面"unin ...

  5. Adobe 正式发布 Flash Player 10 [version 10.0.12.36]

    Adobe Systems周三在发布了Adobe Flash Player 10软件, 版本号10.0.12.36,内置3D处理能力,并支持数种Flash特效. 下载: Windows( 1.8MB) ...

  6. 关于Flash Player 10 socket connection timeout

    转载请注明,来自:http://blog.csdn.net/skyman_2001 今天我在调试游戏的时候,发现一个有趣的现象,就是flash连接上服务器后,服务器关闭连接,flash会触发secur ...

  7. Flex 3调试Flash Player 10完美解决

    FlexBuilder3.2默认是用Flash9来调试的,但随着Flash10的发布,很多的浏览器都已经升级到 Flash10,但FlexBuilder3.2还没有及时更新,导致每次调试Flex/Ai ...

  8. Flash Player 10 中的RTMFP(实现P2P)

    [转载]http://bbs.soshow.org/thread-33767-1-1.html RTMFP是Adobe公司开发的一套新的通信协议,该协议可以让使用Adobe Flash Player的 ...

  9. Adobe Flash Player 10.0.32.18

    Adobe Flash Player软件简介 Adobe Flash Player是Adobe发布的浏览器Flash支持补丁.随着网络速度与品质的提升,越来越多的网站开始使用Flash来表达网站的内容 ...

最新文章

  1. java matlab 矩阵_如何在MATLAB中将函数应用于矩阵的每一行/列?
  2. 用CMake编译运行在网上下载的源文件src
  3. 【.NET Core项目实战-统一认证平台】第三章 网关篇-数据库存储配置(1)
  4. Eboot 编译编译器决定中断向量及其实现单一性的原因
  5. P3033 [USACO11NOV]牛的障碍Cow Steeplechase
  6. 在Ubuntu1404的64bit版本下安装caffe
  7. 众说纷纭的ul、ol、li
  8. DBMS_ERRLOG记录DML错误日志(一)
  9. 模糊控制器设计基本方法
  10. AutoJs学习-几个QQ群脚本(群引流\提取成员\加群友\加群)
  11. windows安全中心打不开defender的完美解决方法,适用于win11更新后进入defender提示需要新应用或者Windows安全中心出错,或者账户更换后出现此问题。
  12. java音乐bpm,Java Tempo.setBpm方法代码示例
  13. 美国大学计算机系学什么,2017美国大学计算机专业排名
  14. 电影说明里何谓枪版?何谓TS版?TC版?
  15. 【毕业设计】基于大数据的京东消费行为分析与可视化 - python 机器学习
  16. Python123 货币转换Ⅰ
  17. 微信一键连wifi服务器,微信小程序一键连wifi
  18. python四位水仙花数代码_Python一句代码实现找出所有水仙花数的方法
  19. 应聘上海辉颐系统集成量化研究员需要什么条件?
  20. JavaScript脚本访问后台服务实例

热门文章

  1. ps中nef是什么文件和如何打开nef文件的方法介绍
  2. DirectUI的初步分析
  3. 树莓派 pip安装opencv-python的正确实践
  4. (30 gadget day 2) 最简单也最复杂的Gadget - YubiKey
  5. 电脑店u盘安装linux,电脑店如何使用u盘安装ubuntu
  6. 中级的网络安全从业者应该具备如下安全技能
  7. jquery中国地图热点提示信息,可作链接特效
  8. python操作mysql数据库—坑吭
  9. 决明子是一种中草药材
  10. JavaWeb之网络编程/通信