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

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    PMP笔记:行政收尾工作
    PMP 笔记:WBS 词典 (含范例)
    PMP 笔记:WBS 实战 (例子)
    名义小组和德尔菲技术使用与区别
    焦点小组、名义小组和引导式会议的定义与区别
    工作分解结构WBS、组织分解结构OBS、资源分解结构 定义和区别(含例子)
    kettle里的参数和变量
    kettle生成100个随机数,并统计小于等于50和大于50个数
    使用kettle制作拉链表
    MySQL字符串转日期
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/2001145.html
Copyright © 2011-2022 走看看