收藏九域天地
九域天地友情链接
九域天地留言本
九域天地站点地图
      西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
   
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
    当前位置:首页->设计相关->教程文章->多媒体设计文章    
   
 
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
九域天地设计新闻
九域天地动向
设计相关文章
 
 
 
 
 
 
标志VI设计教程
多媒体设计:Flash MX 编程深层次应用-网络连线游戏(6)

7.4 在线用户列表区


在线用户列表是联网对战类游戏中非常重要的环节。程序中通过一个数组存放在线用户的名单,然后根据游戏的状态来不断地更新这个数据中的内容,从而实现在线用户的快速、准确地更新。

先创建一个空的MC,名字叫objChatUserRecord,主要是放置一些基本函数,其代码如下:

var records = new Array();

//最多允许300个用户在线

var max = 300;

function appendRecord(msg) {

//增加一个新用户

if(records.push(msg) > max )

records.shift();

}

function appendRecords(array) {

//增加一批新用户

var i ;

for(i=0; i < array.length; i++)

appendRecord(array[i]);

}

function removeAll() {

//清除全部用户

delete records;

records = new Array();

}

function removeRecord(val) {

//清除某个用户

var i;

for(i = 0; i< records.length; i++)

if(records[i] == val)

records.splice(i, 1);

}

function setMax(m) {

max = m;

}

function getRecord(idx) {

if(idx >= 0 && idx <= max)

return records[idx];

else

return null;

}

function getSize() {

//取用户数

return records.length;

}

function toString(start, end) {

//将这些用户名转化成字符串显示出来

var i , ret;

for (ret ="", i =start; i< end ;i++) {

if(i >= 0 && i <= max)

ret += records[i] + "\n";

}

return ret;

}

进入画板列表的MC中,其程序如下:

//最大显示行数

var maxLines = 18;

//是否自动滚动

var autoScroll = false;

//从第几行开始

var startLine = 0;

//用户列表初始为空

var userlist = null;

//指向当前内容

function attach(cr) {

userlist = cr;

}

//设置自动滚动

function setAutoScroll(auto) {

autoScroll = auto;

}

//重新更新文本显示框中的内容

function refresh() {

if( autoScroll == true) {

startLine = userlist.getSize() - maxLines;

this.output = userlist.toString(startLine, userlist.getSize());

}

else {

this.output = userlist.toString(startLine, startLine+maxLines);

}

}

//把从数组中X行开始的内容显示出来

function showFromX(x) {

this.output = userlist.toString(x, x+maxLines);

}

//翻到前一屏

function prevPage() {

startLine -= maxLines;

if(startLine < 0)

startLine = 0;

showFromX(startLine);

}

//翻到后一屏

function nextPage() {

startLine += maxLines;

if(startLine >= userlist.getSize())

startLine = startLine - maxLines;

showFromX(startLine);

}

//翻前一行

function prev() {

startLine -= 1;

if(startLine < 0)

startLine = 0;

showFromX(startLine);

}

//翻后一行

function next() {

startLine += 1;

if(startLine >= userlist.getSize())

startLine = startLine - 1;

showFromX(startLine);

}

这段看上去好像都是一些基本函数,下面请看通信部分是如何使用这些基本函数的:

function onXML_Receive(x) {

……

} else if (e.nodeName == "USR") {

//如果是用户的登陆操作

if (e.attributes.Value == "ON") {

//往用户列表数组追加一个新用户

objChatUserRecord.appendRecord(e.attributes.Param);

objUserDisplay.attach(objChatUserRecord);

//重新更新用户列表显示

objUserDisplay.refresh();

if (_root.now_play_table == 0) {

objChatDisplay.chat_display.htmlText += sys+e.attributes.Param+" is Entering..."+newline;

}

} else if (e.attributes.Value == "OFF") {

//如果是一个用户离开操作,则从数组中删除该用户

objChatUserRecord.removeRecord(e.attributes.Param);

objUserDisplay.attach(objChatUserRecord);

//重新更新用户列表显示

objUserDisplay.refresh();

if (_root.now_play_table == 0) {

objChatDisplay.chat_display.htmlText += sys+e.attributes.Param+" is Leaving..."+newline;

}

objTableDisplay.removeName(e.attributes.Param);

if (trim(_root.rival) == trim(e.attributes.Param)) {

// 说明对手非正常退出,不跟你下了。

_root.no_play();

}

} else {

……

这段程序处理的是下面的XML格式字符串

<USR PARAM="小东瓜" VALUE="ON" />

其中PARAM表示用户名,ON表示联机,OFF则表示退出。

在右边的用户文本显示框的下方是滚动按钮,如图7-14所示。

图7-14

? 左边的是向上滚,程序如下:
on (release) {

prev();

}

右边的是向下滚,程序如下:
on (release) {

next();

}

 

 第 020 篇  首篇 上一篇 下一篇 返回 
 
 
 
 
  西安九域天地设计咨询网-平面广告设计、VI/CI设计、 室内装饰设计、多媒体动画制作、网站设计制作、招贴海报设计、软件包装设计、展厅效果图设计、公司标志设计 中国西安设计  
九域天地自助链接   九域天地友情链接   九域天地创作团队   九域天地人才招聘   九域天地联系方式   九域天地在线咨询
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
 
九域天地联系电话   写信给九域天地
 
多媒体设计教程 网站设计教程 平面广告设计教程 环境装饰设计教程 界面创意设计教程