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

相关文章
|
存储 分布式计算 监控
应用层---网络模型
应用层---网络模型
214 3
|
Java
Java实现微信支付
Java实现微信支付
718 2
|
Serverless Go
手把手教你用Go语言画出正弦图像 模拟画图不再难!
手把手教你用Go语言画出正弦图像 模拟画图不再难!
383 0
|
开发工具 git
Git使用不当导致代码丢失的N种场景
背景git作为目前使用最广泛的分布式版本控制软件,集团内基本上所有开发同学都使用它来做代码管理。一个最典型的使用场景,是一个git仓库存在一个master主干分支,多个需求基于master拉自己的开发分支,然后在发布日时,新建一个release分支,然后原先并行的几个开发分支merge到release分支上,最后基于该分支发布上线,上线后release再merge到master主干上,一次发布完成
3434 1
Git使用不当导致代码丢失的N种场景
|
存储 开发框架 Java
SpringBoot整合Minio文件存储
该文档介绍了如何在公司开发框架中集成Minio以满足附件存储需求。由于规定附件服务器需与应用服务器分离且不使用云存储,Minio被选为解决方案。步骤包括:下载Minio部署包,创建配置文件(如`minio-service.xml`和`run.bat`),设置存储路径和访问凭据,安装服务并启动。之后,通过配置POM和YML文件以整合到项目中。此外,还提供了Minio工具类的初始化、上传、下载和删除文件的Java代码示例。
211 0
|
消息中间件 存储 监控
RocketMQ x OpenTelemetry 分布式全链路追踪最佳实践
RocketMQ x OpenTelemetry 分布式全链路追踪最佳实践
RocketMQ x OpenTelemetry 分布式全链路追踪最佳实践
|
存储 Linux Shell
【Shell 命令集合 网络通讯 】Linux 显示当前终端的名称 tty命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示当前终端的名称 tty命令 使用指南
291 0
|
安全 文件存储 数据安全/隐私保护
将各大网盘挂载本地使用!爽!
发现了一个网盘变硬盘神器
将各大网盘挂载本地使用!爽!
|
JSON 移动开发 前端开发
基于 LowCodeEngine 的调试能力建设与实践
基于 LowCodeEngine 的调试能力建设与实践
1004 0
基于 LowCodeEngine 的调试能力建设与实践
|
运维 容灾 网络协议
阿里云技术专家邓青琳:云上跨可用区容灾和异地多活最佳实践
结合实际业务发展趋势、业务系统的特征以及资源成本等方面综合评估,选出最适合的容灾方案
阿里云技术专家邓青琳:云上跨可用区容灾和异地多活最佳实践