·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0动态显示qq在线状态

时间:2014-02-17 09:34cnblogs.com
[AS3]as3.0动态显示qq在线状态,前几天看到有园友写了一篇“ flash查看对方qq是否在线 ”,正好今天有一个朋友搞flash全站,想使用这个功能,但是有些小要求,点击图标后,要求弹出QQ对话框

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

  1. package 
  2.     import flash.display.Sprite; 
  3.     import flash.events.Event; 
  4.     import flash.events.MouseEvent; 
  5.     import flash.globalization.StringTools; 
  6.     import flash.net.URLRequest; 
  7.     import flash.net.navigateToURL; 
  8.     import flash.display.Bitmap; 
  9.     import flash.display.Loader; 
  10.     import flash.ui.Mouse; 
  11.     import flash.ui.MouseCursor; 
  12.   
  13.   
  14.     public class Main extends Sprite 
  15.     {             
  16.         private var qq:String = "278919507"
  17.         private var loader:Loader = new Loader(); 
  18.         private var bit:Bitmap ; 
  19.         private var box:Sprite; 
  20.           
  21.         public function Main():void 
  22.         { 
  23.             if (stage) init(); 
  24.             else addEventListener(Event.ADDED_TO_STAGE, init); 
  25.         } 
  26.   
  27.         private function init(e:Event = null):void 
  28.         { 
  29.             removeEventListener(Event.ADDED_TO_STAGE, init);        
  30.             box = new Sprite(); 
  31.             upData(); 
  32.         } 
  33.           
  34.         public function upData():void 
  35.         {      
  36.             loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCom);  
  37.             var sUrl:String = "http://wpa.qq.com/pa?p=2:" + qq + ":41?" + Math.random(); 
  38.             trace(sUrl);            
  39.             loader.load(new URLRequest(sUrl)); 
  40.         }           
  41.   
  42.         private function onCom(e:Event) :void 
  43.         {            
  44.             bit = Bitmap(loader.content);   
  45.             bit.height = 22
  46.             bit.width = 74;     
  47.             box.addChild(bit);          
  48.             addChild(box);          
  49.             boxbox.x = box.y = 10
  50.               
  51.             //cuplayer.com提示点击图标,以及切换鼠标 
  52.             box.addEventListener(MouseEvent.CLICK, onClick); 
  53.             box.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); 
  54.             box.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); 
  55.               
  56.         }     
  57.           
  58.         private function onClick(e:MouseEvent):void 
  59.         { 
  60.             var sUrl:String = "http://wpa.qq.com/msgrd?v=3&uin=" + qq + "&site=qq&menu=yes"; 
  61.             navigateToURL(new URLRequest(sUrl),"_blank"); 
  62.             trace("test"); 
  63.         } 
  64.           
  65.         private function onMouseOver(e:MouseEvent):void 
  66.         { 
  67.             Mouse.cursor=MouseCursor.BUTTON; 
  68.         } 
  69.           
  70.         private function onMouseOut(e:MouseEvent):void 
  71.         { 
  72.             Mouse.cursor=MouseCursor.ARROW; 
  73.         } 
  74.   
  75.           
  76.     } 
  77.   

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

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

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器