`

自己写的,利用as3 实现 copy 功能

阅读更多

 

自己写的,利用as3 实现 copy 功能

js 脚本:

 

var HushuilongClipboard = {
	index: 0,
	current_flash_id: '',
	clipboardText: {},
	completeCallback: {},
	init: function(flash_place_id, button_img, button_width, button_height){
		var flash_id = 'HushuilongClipboard_'  + (this.index++);
		this.current_flash_id = flash_id;
		var flashvars = {id:flash_id, button_img: button_img};
		var params = { swliveconnect:"true",wmode:"transparent"};
		var attributes = { id:flash_id, name:flash_id };
		var flash_width = parseInt(button_width,10) + 2;
		var flash_height = parseInt(button_height,10);
		//swfobject.embedSWF("/HushuilongClipboard/HushuilongClipboard.swf?cachetime="+new Date().getTime(), flash_place_id, flash_width, flash_height, "9.0.45.0", "expressInstall.swf",  flashvars, params, attributes);
		swfobject.embedSWF("/HushuilongClipboard/HushuilongClipboard.swf", flash_place_id, flash_width, flash_height, "9.0.45.0", "expressInstall.swf",  flashvars, params, attributes);				
		return this;
	},
	setText: function(str,completeCallback){
		var flash_id = this.current_flash_id;
		this.clipboardText[flash_id] = str;
		this.completeCallback[flash_id] = typeof completeCallback == 'function' ? completeCallback : function(){}; 
		return this;
	},
	thisMovie: function(movieName){ 
		return navigator.appName.indexOf("Microsoft") != -1 
				? window[movieName] 
				: document[movieName];
	},
	flashClickCallback: function(flash_id){
		if( ! this.clipboardText[flash_id]) return ;
		var text = this.clipboardText[flash_id];
		var res = this.thisMovie(flash_id).jsCallflashToSetClipboard(text);			
		this.completeCallback[flash_id](res);
	}
};

 

as3 脚本:

package {



	import flash.display.Stage;

	import flash.display.StageScaleMode;

	import flash.display.StageAlign;

	import flash.net.URLRequest;

	import flash.net.URLLoader;

	import flash.events.*;

	import flash.display.Loader;

	import flash.display.LoaderInfo;

	import flash.utils.ByteArray;

	import flash.display.Sprite;

	import flash.display.Bitmap;

	import flash.external.ExternalInterface;

	import flash.system.System;

	import flash.system.Security;	



	public class HushuilongClipboard extends Sprite {

		

		private var buttonContainer:Sprite;

		

		public function HushuilongClipboard() {

			flash.system.Security.allowDomain("*");

			stage.scaleMode = StageScaleMode.NO_SCALE;

			stage.align = StageAlign.TOP_LEFT;			

			

			buttonContainer = new Sprite();

			buttonContainer.buttonMode = true;

			buttonContainer.useHandCursor = true;

			addChild(buttonContainer);			

			

			load_button_img();

			

			buttonContainer.addEventListener(MouseEvent.CLICK, function(event:Event):void{

				ExternalInterface.call("HushuilongClipboard.flashClickCallback",ExternalInterface.objectID);

			});			

			ExternalInterface.addCallback("jsCallflashToSetClipboard", setClipboard);

		}

		

		public function load_button_img(){			

			try{

				var buttonImg:String = LoaderInfo( this.root.loaderInfo ).parameters.button_img;		

				var loader:Loader = new Loader();

				loader.load( new URLRequest(buttonImg) );

				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(evt:Event){

					var image:Bitmap = Bitmap(loader.content);

					buttonContainer.addChild(image);

				});

			}catch(error:Error){

				

			}

		}

		

		public function setClipboard(str) {

			try{

				System.setClipboard(str);

				return true;

			}catch(error:Error){

				return false;

			}

		}

	}

}

 

 

原理:

     flash 加载图片按钮,点击按钮触发事件调用JS ,在Js 设置要复制的字符串, 再把设置好的字符串传给 as3

    ,     利用 as3 中的 system.setClipboard 设置系统剪贴板,可跨多浏览器。

 

 

分享到:
评论

相关推荐

    as3实现的图文混排组件

    本篇将详细讲解如何利用AS3(ActionScript 3.0)实现一个图文混排组件,以及该组件的一些关键特性。 首先,我们要理解什么是“图文混排”。图文混排是指在一个容器中同时展示文本和图像,它们可以按照特定的布局...

    浪潮AS1000G2的数据快照功能详解

    AS1000G2的数据快照功能基于即写即拷贝(copy-on-write)技术,它能在瞬间创建卷的时间点映像,而无需中断应用程序的正常运行。这一特性使得快照创建过程对用户透明,且操作简便。每个卷最多可支持4个快照,系统总共...

    python利用os模块编写文件复制功能——copy()函数用法

    通过上述介绍,我们不仅了解了如何利用Python的`os`模块来实现文件及文件夹的复制功能,还学习了如何使用`os.path.isdir()`、`os.path.isfile()`、`os.listdir()`、`os.mkdir()`等函数。此外,我们还提供了一个完整...

    FLASH AS3.0 WINDOWS 菜单

    这个“FLASH AS3.0 WINDOWS 菜单”项目可能包含了实现这一功能的所有必要元素。 首先,`menubar.fla`是Flash的源文件,它包含项目的图形元素、动画和ActionScript代码。在Flash环境中,.fla文件是编辑和设计交互式...

    使用调用外部程序函数实现API函数高级功能...

    通过API,开发者可以利用预先编写好的功能代码,无需了解底层实现细节就能完成特定的任务。本文将探讨如何在Visual Basic环境下通过调用外部程序函数来实现API函数的高级功能,主要关注于如何利用Shell函数来执行...

    VB Copy Screen

    总的来说,VB Copy Screen是一个学习VB编程和图形处理的好例子,它涵盖了GDI+的基本用法,以及如何结合用户界面实现交互式功能。对于想要了解或扩展屏幕截图功能的开发者来说,这是一个有价值的参考资料。

    办公技能-使用ExcelVBA代码实现表格拆分功能-嘉为科技.pdf

    下面将详细介绍如何利用VBA代码来实现这一操作。 首先,理解VBA的基本结构至关重要。VBA是一种基于Visual Basic的编程语言,它允许用户创建宏或者自定义函数来扩展Excel的功能。在VBA环境中,我们需要编写一段代码...

    C#利用ffmpeg的image2pipe参数实现USB摄系头本地预览同时推流

    在C#编程环境中,利用ffmpeg库来实现实时USB摄像头预览并同步推流是一项技术挑战,但也是可能实现的功能。以下将详细讲解如何通过ffmpeg的`image2pipe`参数来达成这一目标。 首先,我们需要了解`ffmpeg`。FFmpeg是...

    C# 仿XP记事本 功能和系统自带一样

    为了实现向上和向下查找功能,我们需要利用TextBox的SelectionStart和Text属性,结合循环和字符串操作来定位和高亮显示匹配的文本。 3. **查找与替换** 在菜单栏中添加“查找”(Find)和“替换”(Replace)菜单...

    php实现将一张图片复制到多个目录下。

    在本文中,我们将深入探讨如何利用PHP实现这样的功能,以及涉及的相关知识点。 首先,我们需要了解PHP的`copy()`函数。这个函数用于将一个文件从源路径复制到目标路径。基本语法是: ```php bool copy(string $...

    pgcopy:使用二进制副本快速加载数据

    尽管它的核心是C语言实现的,但是它提供了Python接口,使得开发者可以方便地在Python应用程序中集成这个功能。通过Python,你可以轻松地构造数据源,调用`pgcopy`进行数据导入,同时利用Python的灵活性处理导入前后...

    PowerDesigner15操作说明-将Comment中的字符COPY至Name中

    本篇文章主要讲解如何利用PowerDesigner 15进行特定的操作,即如何将Comment字段中的字符复制到Name字段中,这在数据库对象命名规范化的场景下非常有用。 首先,我们需要了解PowerDesigner 15的工作界面和基本功能...

    调用 SHFileOperation 函数实现复制文件或删除到回收站(6KB)...

    通过理解`SHFileOperation`函数的工作原理和使用方法,开发者可以方便地在自己的应用程序中实现与Windows资源管理器类似的功能,为用户提供更加原生的操作体验。同时,掌握这种底层API的调用,也能帮助开发者更好地...

    pyqt5实现文件批量操作

    要实现这一功能,我们首先需要读取Excel文件,这里可以使用pandas库的`read_excel()`函数。然后遍历数据框的第一列(假设是列名'Column1'),利用os库的`os.makedirs()`函数创建对应路径的文件夹。示例代码如下: `...

    精彩编程与编程技巧-VB自定义数据结构的传输转换...

    为了实现内存拷贝功能,需要编写一个VC的动态链接库(DLL),其中包含两个函数`copy_BA`和`copy_AB`,用于实现内存拷贝的功能。 ```cpp // copymem.cpp #include #include extern "C" __declspec(dllexport) ...

    vb利用shell功能调用sql里的bcp数据库导出导入

    总的来说,VB利用Shell功能调用SQL的BCP是实现数据库批量导入导出的有效方式,能够提高数据处理的效率和灵活性。在进行此类操作时,要确保对BCP命令和VB编程有深入的理解,同时考虑安全性、性能优化以及错误处理等...

    Excel-VBA实用技巧范例-利用VBA标准功能操作文件.zip

    这个"Excel-VBA实用技巧范例-利用VBA标准功能操作文件.zip"压缩包文件显然包含了关于如何使用VBA进行文件操作的实例和教程。以下是通过VBA在Excel中操作文件的一些关键知识点: 1. **打开和关闭文件**:VBA提供了`...

    加你如何用VB写文本编辑器

    - **剪切、复制与粘贴**:利用文本框的`Cut`、`Copy`和`Paste`方法来实现。 - **查找与替换**:可以编写专门的方法来搜索文本,并提供替换选项。 ### 三、代码示例 #### 1. **保存文档** ```vb Private Sub ...

    VB拖拽功能事件顺序描述

    正确地利用这些事件,可以帮助开发者构建出更加友好且功能丰富的用户界面。值得注意的是,在实际应用中,还需要考虑其他可能影响用户体验的因素,比如性能优化、错误处理等。通过深入学习这些基本概念和技术细节,...

    java记事本源代码

    - 复制 (`Copy`):实现复制功能。 - 粘贴 (`Paste`):实现粘贴功能。 - **帮助菜单**:未实现。 #### 三、代码解析 ##### 3.1 构造函数 ```java public MyNote() { JMenuBar bar = new JMenuBar(); this....

Global site tag (gtag.js) - Google Analytics