Flex:截图实现之(1)使用AS3对剪贴板读取与写入
来源:互联网 发布:故宫淘宝店什么时候 编辑:程序博客网 时间:2024/05/07 02:28
很有用的一篇文章,感谢原作者的分享。
http://www.cnblogs.com/shinings/archive/2010/04/10/1709047.html
基于安全考虑,Flash只允许将数据写入系统剪贴板中,因此,Flash之中只能执行System下的setClipboard方法.
基于Flash的:
例子如下:
使用AS将数据写入内存
- package {
- import flash.display.Sprite;
- import flash.system.System;
- public class SystemExample extends Sprite {
- public function SystemExample() {
- System.setClipboard("写入内存的数据");
- }
- }
- }
但是,在AIR中会自由多了,允许读取与写入,但也不是没妈管的孩子,什么事都能做.
在AIR中能读取与写入的有六种数据格式,都由ClipboardFormats来撑管,我们看看这六种数据格式
BITMAP_FORMAT:图像数据。
FILE_LIST_FORMAT:文件数组。
HTML_FORMAT :HTML 数据。
RICH_TEXT_FORMAT:RTF 格式数据。
TEXT_FORMAT:字符串数据。
URL_FORMAT:URL 字符串。
看个由HELP文档中挖出来的例子吧,作用是向剪贴板写入一个随机数:
AS3代码
- import flash.desktop.ClipboardFormats;
- Clipboard.generalClipboard.setDataHandler(ClipboardFormats.TEXT_FORMAT, randomNumberGenerator);
- public function randomNumberGenerator():String{
- return Math.random().toString();
- }
跟据多种数据格式做分类处理,以下是写来获取剪贴板图像源的类文件,将图像源转化为图片.
忘了说明一点,这是用在Flex中的,所以toBitmap中返加UIComponent类型
AS3代码
- /**
- * ...
- * @author WZH(shch8.com)
- * 获取系统剪贴板
- */
- package com.flashNote.getData
- {
- import flash.desktop.Clipboard;
- import flash.desktop.ClipboardFormats;
- import flash.display.Bitmap;
- import flash.display.BitmapData;
- import mx.core.UIComponent;
- public class GetBoardData
- {
- private static var Instance:GetBoardData=new GetBoardData;
- public static function getInstance():GetBoardData{
- return Instance;
- }
- public function GetBoardData()
- {
- }
- public function getData():BoardFormat{
- var returnObj:BoardFormat;
- returnObj.sort=getSelFormat();
- returnObj.data=Clipboard.generalClipboard.getData(returnObj.sort)
- var bmd:BitmapData =returnObj.data as BitmapData;
- toBitmap(bmd)
- return returnObj;
- }
- private function toBitmap(bmd:BitmapData):UIComponent{
- var ui:UIComponent=new UIComponent;
- var bm:Bitmap = new Bitmap(bmd);
- ui.addChild(bm);
- return ui;
- }
- private function getSelFormat():String{
- var backStr:String;
- backStr=getFormat(ClipboardFormats.BITMAP_FORMAT)
- if(backStr!=""){
- return backStr;
- }
- backStr=getFormat(ClipboardFormats.FILE_LIST_FORMAT)
- if(backStr!=""){
- return backStr;
- }
- backStr=getFormat(ClipboardFormats.HTML_FORMAT)
- if(backStr!=""){
- return backStr;
- }
- backStr=getFormat(ClipboardFormats.TEXT_FORMAT)
- if(backStr!=""){
- return backStr;
- }
- backStr=getFormat(ClipboardFormats.URL_FORMAT)
- if(backStr!=""){
- return backStr;
- }
- function getFormat(str:String):String{
- if(Clipboard.generalClipboard.hasFormat(str)){
- return str
- }else{
- return "";
- }
- }
- return null;
- }
- }
- }
AS3代码
- /**
- * ...
- * @author WZH(shch8.com)
- * 传送参数
- */
- package com.flashNote.getData
- {
- public class BoardFormat
- {
- public var sort:String;
- public var data:Object;
- }
- }
- Flex:截图实现之(1)使用AS3对剪贴板读取与写入
- 使用AS3对剪贴板读取与写入
- 剪贴板上文本的读取与写入
- FlatBuffers 使用之(二):数据的写入与读取
- 对文件的读取与写入
- [学习笔记]Java文件IO操作------实现对文件的读取与写入
- 使用C#实现读取/写入Excel表
- MFC之文件读取与写入
- Android 蓝牙4.0(BLE)开发实现对蓝牙的写入数据和读取数据
- Android 蓝牙4.0(BLE)开发实现对蓝牙的写入数据和读取数据
- 用CStdioFile实现对文件读取、写入字符串
- C++实现文件简单加密与解密(读取文件中的字符,对字符转换,然后写入,完成加密,解密反之)
- Flex通讯系列---Flex与AS3
- c++对txt文件的读取与写入
- c++对txt文件的读取与写入
- 对Java配置文件Properties的读取、写入与更新操作
- c++对txt文件的读取与写入
- 简析Properties对*.properties文件的读取与写入
- 如何编译安装源码包软件
- 调试windows内核
- 归并排序
- 关于网站标签式筛选的想法
- ConnectionString字符串小结
- Flex:截图实现之(1)使用AS3对剪贴板读取与写入
- The Logger in Java and Android
- 给部分培训学生的建议
- 习惯的力量
- 讨人喜欢的28个原则
- 从计算机复试看中国教育——一个面试官的经历
- Win2003下IIS整合Tomcat 6
- 狮子GM版本的安装
- 李佳赟同学