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

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

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

热门文章推荐

请稍候...

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

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