Flash剪贴板功能

简介:

做JS的都知道,如果不考虑浏览器的兼容问题,其实,JS本身的window.clipboardData对象是可以做到复制内容到剪贴板的功能,但除了IE浏览器,FF和Chrome浏览器都不支持。现在为了浏览器的兼容问题,只能使用Flash来做这功能了。

   Flash Player在10.0之前的版本,如果要实现将内容复制到系统剪贴板:
               System.setClipboard("内容")
   这样一句简单的代码就可以。但从Flash Player10.0之后,引入了不少新的安全特性,对于跨域的敏感操作都需要用户的参与。只有当用户触发点击或按键才能调用剪贴板复制功能等,所以以前的这种做法,由JS调用SWF的一个函数的做法已经失效了。
   其实,要解决新的特性带来的麻烦问题,现在网上有很多的文章都已经说到如何解决。但都是一个道理,就是flash中放一个让用户能够点击到的显示对象,这个根据不同的需求,有的是做一个flash button或sprite绘制一个透明的显示对象放置在某个要触发复制的地方,在这里不多说这种解决方案。有兴趣的可以直接百度ZeroClipboard。
  这里要说到flash player10.0之后新增的Clipboard类,该类位于flash.desktop包下。Clipboard类提供一个容器,用于通过剪贴板传输数据和对象。通过静态generalClipboard属性可以访问操作系统剪贴板,该类不但可以做到设置系统剪贴板,还可以清除和获取剪贴板内容,而且在设置内容时,可以指定数据格式。
  Clipboard. generalClipboard.setData(ClipboardFormats.TEXT_FORMAT,string);  向系统剪贴板添加文本内容
  Clipboard. generalClipboard.clearData(ClipboardFormats.TEXT_FORMAT)   删除指定的文本数据;
  Clipboard. generalClipboard.getData(ClipboardFormats.TEXT_FORMAT)  获取指定的文本数据;
  但Clipboard类的使用也需要用户的参与,setData与clearData方法的调用,可以像上面说到的,在flash 中绘制一个透明的显示对象,放置在触发的位置让用户点击,当触发Click事件后做相应的处理;getData则不同了,Clipboard.generalClipboard对象只能在处理flash.events.Event.PASTE事件时读取。

本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/p/3252749.html如需转载请自行联系原作者

jiahuafu

相关文章
|
C#
wpf 复制/剪切到本地系统剪切板中以供右键粘贴用
原文:wpf 复制/剪切到本地系统剪切板中以供右键粘贴用   http://www.cnblogs.com/yhdkzy/archive/2012/11/27/2790655.html   ///         /// 复制或剪切文件到剪切板         /// ...
1219 0
QT应用编程: 保存指定控件的数据到剪切板和本地文件
QT应用编程: 保存指定控件的数据到剪切板和本地文件
230 0
|
iOS开发 Web App开发
|
内存技术 编译器