自己写的,利用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 设置系统剪贴板,可跨多浏览器。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值