专栏首页菩提树下的杨过flash 显示 qq客服状态

flash 显示 qq客服状态

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

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再去请求自己的服务器上的图片,因为自己的服务器能完全控制(包括放置策略文件),所以能解决安全沙箱的问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样。服...

    葡萄城控件
  • spark redis 中碰到java.net.SocketTimeoutException: Read timed out问题的解决

    最近在写入redis的时候,程序跑着跑着会发现碰到这样的问题。 redis.clients.jedis.exceptions.JedisConnectionEx...

    sparkexpert
  • 从相机or相册获取图片并显示

    这个技术应该算是十分稀松平常了,但是对于小白来说,还是要费一番功夫的。因此在这里贴上我的代码,也是为了以后用到的时候方便找。。。 package com.exa...

    用户1148523
  • .NET Core 2.0发布了

    .NET Core 2.0 长久以来,.NET框架一直因为只能在Windows系统上运行而被人黑。所以微软重写了一个跨平台的.NET,这就是.NET Core。...

    乐百川
  • Oracle免客户端For .Net(增加分析Devart和DataDirect)

        我只是一名普通的.Net开发人员,常用SqlServer,偶尔用其它数据库,属于能连上然后select/execute就行的那种。但就是我这么小的愿望,...

    大石头
  • Oracle免客户端For .Net(只为用NewLife.XCode开发Oracle的同学服务)

        自从发布了一篇博客Oracle免客户端For .Net(增加分析Devart和DataDirect)后,非常非常多的同学前来问各种Oracle客户端运行...

    大石头
  • 2,ORM组件XCode(速览)

        啥也不说,上图: image.png     这是最基本的增删改查代码!     符合X系列组件的一贯作风,不求万能,只求简单实用!    ...

    大石头
  • ASP.NET Core: 全新的ASP.NET !

    背景 最新版本的 ASP.NET 叫做 ASP.NET Core (也被称为 ASP.NET 5)   它颠覆了过去的 ASP.NET。 什么是 ASP.NET...

    葡萄城控件
  • MF干活——C#数码管与跑马灯之舞(视频)

        通过《C#点灯神话》,我们了解到单片机最基础的输入输出功能,也就是所谓的GPIO。     这一次,我们来点更多的“灯”——数码管,并且还是四位数码管。...

    大石头
  • Silverlight中非对称加密及数字签名RSA算法的实现

    RSA算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著...

    葡萄城控件

扫码关注云+社区

领取腾讯云代金券