前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flash 显示 qq客服状态

flash 显示 qq客服状态

作者头像
菩提树下的杨过
发布2018-01-22 15:39:38
8370
发布2018-01-22 15:39:38
举报

前几天看到有园友写了一篇“ flash查看对方qq是否在线 ”,正好今天有一个朋友搞flash全站,想使用这个功能,但是有些小要求,点击图标后,要求弹出QQ对话框,于是改进了一下:

代码语言:javascript
复制
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.globalization.StringTools;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	import flash.display.Bitmap;
	import flash.display.Loader;
	import flash.ui.Mouse;
	import flash.ui.MouseCursor;


	public class Main extends Sprite 
	{		      
		private var qq:String = "278919507";
        private var loader:Loader = new Loader(); 
        private var bit:Bitmap ;
		private var box:Sprite;
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}

		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);		
			box = new Sprite();
			upData();
		}
		
		public function upData():void
        {      
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCom);  
			var sUrl:String = "http://wpa.qq.com/pa?p=2:" + qq + ":41?" + Math.random();
			trace(sUrl);			
            loader.load(new URLRequest(sUrl)); 
		}           

        private function onCom(e:Event) :void 
        {            
			bit = Bitmap(loader.content);	
         	bit.height = 22;
			bit.width = 74;		
			box.addChild(bit);			
			addChild(box);			
			box.x = box.y = 10;
			
			//点击图标,以及切换鼠标
			box.addEventListener(MouseEvent.CLICK, onClick);
			box.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
			box.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
			
		}     
		
		private function onClick(e:MouseEvent):void
		{
			var sUrl:String = "http://wpa.qq.com/msgrd?v=3&uin=" + qq + "&site=qq&menu=yes";
			navigateToURL(new URLRequest(sUrl),"_blank"); 
			trace("test");
		}
		
		private function onMouseOver(e:MouseEvent):void
		{
			Mouse.cursor=MouseCursor.BUTTON; 
		}
		
		private function onMouseOut(e:MouseEvent):void
		{
			Mouse.cursor=MouseCursor.ARROW; 
		}

        
	}

}

在flash cs5环境下一切正常,但是单独运行swf时会失败:并不能加载图片。原因是wpa.qq.com下没有策略文件,默认的安全沙箱保护机制并不允许跨域加载图片。

于是用aspx做了个中转,在自已的服务器上先把qq的图标下载到服务器,然后as3再去请求自己的服务器上的图片,因为自己的服务器能完全控制(包括放置策略文件),所以能解决安全沙箱的问题。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-03-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档