快速业务通道

Flash MX 编程深层次应用-网络连线游戏(3)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10

7.2 游戏区(2)
???? 下面是对应的SIT部分的Java代码: if(cmd.equals(this.cmd_SIT)) { ??? if(param != null) { ??????? param = param.trim(); ??????? if( param.indexOf(" ") != -1) { ??????????? String desk_name = param.substring(0, param.indexOf(" ")); ??????????? param = param.substring(param.indexOf(" ")); ??????????? param = param.trim(); ????? ??????String chessman_status = param.substring(0,param.indexOf(" ")); ??????????? String? player_name = param.substring(param.indexOf(" ")); ??????????? player_name = player_name.trim(); ??????????? chessman_status = chessman_status.trim(); ??????????? user.deskname = desk_name; ????? ????user.place = chessman_status; ??????????? if (chessman_status.equals("stand_up")) { ?????????????? user.deskname = null; ?????????????? user.place = null; ?????????????? user.play_status = null; ??????????? } ?????? // 由于是广播,所以自己也会收到一个坐下的命令,所以自己就不发给自己了 ??????????? user.manager.notifyAll(packMsg(this.m_SIT, desk_name+":" + chessman_status + ":" + player_name,"" )); ??????? } ??? } } 服务器发一条信息,是如何收到,然后如何动作的呢?请看下面的部分Flash代码: function onXML_Receive(x) { ??? if (x == null) { ???????????? return; ??? } ??? var e = x.firstChild; ??? if (e == null) { ???????????? return; ??? } else if (e.nodeName == "SIT") { ???????????? trace("----sit----"); ???????????? _root.sit_down(e.attributes.Value); ??? } …… 这里的onXML_Receive程序就是前面说到的接收信息的主处理程序。很明显,这个在收到串后,就会把它分解成一个结构型的内容,节点名就叫:SIT,其属性值e.attributes.Value等于"6:stand_up:dongua",请看这里调用的坐下的子程序: function sit_down(str) { ??? var place = 0, pre, now; ??? var player = new Array(3); ?? //把这个字符串分成三个部分 ??? player = str.split(":"); ?? //如果是自己收到自己坐下的信息就不做任何处理 ??? if (player[2] != _root.nickname) { ???????????? set_sit(player); ???????????? // 如果自己坐在他的对面就开始游戏,定为左边先走 ??? ?? if (player[1] == "left" && _root.player_right[player[0]] == _root.nickname) { ????????????????????? // 表示自己坐在右边,拿蓝棋,后走 ????????????????????? _root.i_run = false; ????????????????????? _root.my_LOGO = _root.Second_play; ????????????????????? _root.your_logo = _root.First_play; ???????????? ???????? _root.rival = player[2]; ????????????????????? _root.now_play_table = Number(player[0]); ?????????? //进入开始下棋的阶段 ????????????????????? _root.init_play(); ????????????????????? _root.gotoAndPlay("begin_play"); ???????????? } ????? if (player[1] == "right" && _root.player_left[player[0]] == _root.nickname) { ????????????????????? // 表示自己坐在左边,拿红棋,先走 ????????????????????? _root.i_run = true; ????????????????????? _root.my_logo = _root.First_play; ????????????????????? _root.your_logo = _root.Second_play; ????????????????????? _root.rival = player[2]; ????????????????????? _root.now_play_table = Number(player[0]); ??????????? //进入开始下棋的阶段 ????????????

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号