首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Red5做做服务器的玩家移动信息同步例子

2012-12-25 
Red5作做服务器的玩家移动信息同步例子?首先先来看看最基本的(具体的内容我就不写了,代码里有详细的解释,

Red5作做服务器的玩家移动信息同步例子


?

首先先来看看最基本的(具体的内容我就不写了,代码里有详细的解释,在这里我只说说思路和逻辑)

?

当客户端call的时候,服务器就执行userLogin里的代码。在这里个方法里服务器只做了两件事,一是把map对象里的所有的客户端连接对象进行遍历,把新登陆用户的信息发送给所有已经登陆的客户端。然后再把当前的客户端连接对象保存在服务端的map对象中。接着来看ic.invoke?("userLogin",?new?Object[]{userName})这句代码,他是呼叫客户端方法;既然服务端呼叫客户端的userLogin方法,那么我们可以过来客户端的?userLogin方法。

?

在客户端里,该userLogin方法也是做了两件事,一是马上根据传过来用户名,生成了有一个新的mc(在实际中就是玩家,而且真正应用中,传的还不止一个参数),接着又呼叫服务端的一个方法userInfo,因为它必须把自己的信息通知给刚刚登陆的用户,包括自己的名字,位置等等。??接下来我们就看服务端的userInfo方法啦

?

客户端的这个方法也很简单,就是根据服务端转发过来的信息,生成一个新的mc(玩家),同时还有位置。
好啦,到了,一个用户登陆到服务器,在所有客户端同步显示的步骤就完成啦。
接下来就把最后的功能完成,就是当一个客户端移动时,在其他客户端的也做对应的动作。呵~~不用我说什么也应该想了吧。恩,其实也是很简单,就是当前用户操作时,做自己的操作命令通过服务端转发其他所有的客户端,就达到同步的目的了。例如这一句代码:

//当其他用户有动作时,被服务器呼叫mync.userAction = function(name:String,action:String){var mc:MovieClip = userSet.get(name);//执行对应的方法mc[action]();};

?
它也只做了一件事,就是找出该用户对应的mc(玩家),然后执行相应的动作
OK~~~代码解释就到这里啦。光看我写的这个还是不行,大家还有把源代码提供去看看,大家有什么问题,就到red5的专有论坛去讨论吧。www.openred5.com.?这个网站。那里也有red5的配置教什么的。这里所以这里我就不在讲述啦。呵~本来想弄些漂亮的人物进去。不过没什么时间啦,今天是牺牲中午睡眠时间写的,大概花了一个小时,呵呵。如果很多人喜欢的话,往后会继续发布该系列的东西,例如用户说话,攻击,自己的名字是红色的等等,呵呵。

热点排行