获取QQ在线状态,显示相应动画或图片,并发起会话

本文介绍了一种使用Flash查询QQ在线状态的方法,并展示了如何根据查询结果显示相应的在线状态及发起会话链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取QQ在线状态,显示相应动画或图片,并发起会话

我们都知道,腾讯有提供 在线状态图片风格
也有提供在线 发起会话的接口
但是,他所提供的在线状态图片风格,实在不能与你要求制作精美的网页完全融合。
这感觉,就像美丽的都市中随意张贴的泌尿系统广告一样,令人作呕。
所以,我们有必要做自己的在线图片风格,或者动画。

本人有意中发现了这个接口( http://webpresence.qq.com/getonline?Type=1&154160595:)。
话题围绕它而展开。


新建个Flash文档,打开动作面板,在主场景第一帧写上如下代码:
程序代码 程序代码
//创建个动态文本,用于输入QQ号码
this. createTextField( "qq_txt", 100, 50, 20, 150, 20);
//文本为输入文本
qq_txt. type =  "input";
//文本有边框
qq_txt. border =  true;
//文本只能输入0-9的数字与":"
qq_txt. restrict =  "0-9:";
//
//再创建个文本,用于点击查询
this. createTextField( "s_txt", 101, 210, 20,  Stage. width, 20);
//文本支持html标签
s_txt. html =  true;
//设定显示文字以及点击事件
s_txt. htmlText =  "<font color='#990000'><a href='asfunction:getOnLine'>点此查询QQ在线状态</a></font> (多个QQ号请用单个/":/"隔开)";
//
//再创建个文本用于显示查询结果
this. createTextField( "x_txt", 102, 0, 50,  Stage. width, 20);
//文本支持html标签
x_txt. html =  true;
//文本居中对齐
x_txt. autoSize =  "center";
//文本为多行
x_txt. multiline =  true;
//
//申明一个数组,用于记录查询的QQ号
var list_ay: Array =  new  Array();
/*


*/

//查询qq在线状态,根据查询结果,显示在线状态
function getOnLine():Void {
     var get_lv: LoadVars =  new  LoadVars();
    get_lv. onLoad =  function(success: Boolean):Void  {
         //得到查询结果
         if (success) {
             //转义十六进制序列字符串,得到Get_qqOnLine.asp传回的值
             var s: String =  unescape(get_lv.onLineList);
             //记录结果
             var qqOnLineList: String =  "";
             //得出共传回了几个查询结果
             var sum: Number = s. split( "="). length-1;
             //循环显示查询结果
             for ( var i: Number = 0; i<sum; i++) {
                 var nK: Number = s. indexOf( "=");
                 var sK: String = s. substr(nK+1);
                 var nJ: Number = sK. indexOf( ";");
                s = sK. substr(nJ+1);
                 var onLine: String = sK. substr(0, nJ);
                 //如果在线
                 if (onLine ==  "1") {
                    qqOnLineList +=  "你所查询的QQ:"+list_ay[i]+ " 目前在线,<font color='#FF0000'><a href='tencent://message/?uin="+list_ay[i]+ "&Site=我在FLash中与你发起了会话&Menu=yes' target='_blank'>[ 点此发起会话 ]</a></font>/n";
                     //如果不在线
                }  else {
                    qqOnLineList +=  "你所查询的QQ:"+list_ay[i]+ " 目前不在线,<font color='#FF0000'><a href='tencent://message/?uin="+list_ay[i]+ "&Site=我在FLash中与你发起了会话&Menu=yes' target='_blank'>[ 点此给TA留言 ]</a></font>/n";
                }
            }
             //显示结果
            x_txt. htmlText = qqOnLineList;
             //
             //查询的QQ有错误
        }  else {
            x_txt. htmlText =  "<font color='#FF0000'>Get_qqOnLine.asp或你所输入的QQ号有错误!/n/t请重新输入。</font>";
        }
    };
     //以单个":"为分隔符,拆分成数组,存入list_ay数组
    list_ay = qq_txt. text. split( ":");
     //禁止读缓存
    get_lv.n =  random(9999);
     //POST参数qqList
    get_lv.qqList = qq_txt. text+ ":";
     //调用Get_qqOnLine.asp查询QQ在线状态
    get_lv. sendAndLoad( "http://www.rogiture.com/Demo/Get_qqOnLine/Get_qqOnLine.asp", get_lv,  "POST");
}
//
qq_txt. text =  "154160595:10000:123456";

按Ctrl+Enter看结果吧。 下载文件 原文件下载
效果预览:
Flash动画



因Flash Player安全协议的原因,
在你的域中,无法直接访问 http://webpresence.qq.com/getonline?Type=1&154160595: 
因为webpresence.qq.com可没有允许你访问的crossdomain.xml策略文件。
定义自己的查询QQ在线状态Get_qqOnLine.asp文件。
程序代码 程序代码
<%@LANGUAGE = "VBSCRIPT" CODEPAGE = "936" % >
< %
'获取QQ在线信息
Function GetURL (url )
    Set Retrieval  = Server .CreateObject ( "Microsoft.XMLHTTP" )
    With Retrieval
         .Open  "GET" , url , False ,  "" ,  ""
         .Send
        Response .Write  "onLineList=" & .ResponseText
    End With
    Set Retrieval  = Nothing
End Function

GetURL ( "http://webpresence.qq.com/getonline?Type=1&" &Request ( "qqList" ) )
%>


发送请求: http://webpresence.qq.com/getonline?Type=1&154160595: 为查询单个QQ号码。
发送请求: http://webpresence.qq.com/getonline?Type=1&154160595:10000: 以此类推,为查询多个QQ号码。
它的返回值1为在线,0为离线。另外,离开状态它视为在线,隐身状态它视为离线。
你可以在浏览器中输入url直接查看。

好了,去撕掉你网页中的牛皮癣吧。 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值