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

相关文章
|
前端开发 内存技术
DSP(css)开发代码掉电保存下载到flash
DSP(css)开发代码掉电保存下载到flash
117 0
【鸿蒙】剪贴板的简单复制粘贴
文章目录 前言 1.简述 2.页面布局 3.程序实现
【鸿蒙】剪贴板的简单复制粘贴
|
Web App开发 内存技术
|
内存技术 编译器
|
内存技术 HTML5 移动开发