快速业务通道

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

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

第7章 网络连线游戏——四子连
7.1 游戏的登陆
???? 作为一个下棋游戏,其最基本的一点内容就是登陆。这个登陆看似简单,其实不然,因为登陆是一个游戏的入口,它完成下面几个功能: ??????????? 输入用户名 ??????????? 输入服务器IP ??????????? 发送连接服务器指令 ??????????? 根据服务器返回信息给用户以反馈 这些功能是一个登陆页面要具备的功能,登陆页面如图7-2所示。 在这里设置一个服务器IP是为了方便调试程序,其实在真正的登陆页中应该不出现,代之出现的应该是密码、性别等其他内容,从图7-2中明显可以看出它有两个输入框和一个按钮。
图7-2 7.1.1? 游戏初始化 登陆MC中初始化部分的程序代码如下: ??? //这个server就是前面说的服务器IP地址,127.0.0.1是代表本地服务 ??? server = "127.0.0.1"; ?? //把输入的光标移到服务器IP的文本框中 ??? Selection.setFocus( "server" ); ??? function trim(strin) ??? { ?????? //去字符串两边空格命令 ???????????? var i,j; ???????????? for(i=0; i < strin.length; i++) ????????????????????? if(strin.charAt(i) != '' '') ??????????????????????????????? break; ???????????? if(i == strin.length) ????????????????????? return ""; ???????????? for(j=strin.length-1; j >= i; j--) ????? ????????????????????? if(strin.charAt(j) != '' '') ??????????????????????????????? break; ???????????? return strin.substring(i,j+1); ??? } 其实也没有什么,就是一个简单的初始化的部分,一个去除字符串头尾空格的函数。Flash已经发展到MX版本了,去空格的函数都没有,还要程序员自己写,真是怪事。其实Flash MX不但没有这个函数,也没有子串替代的函数(replace)。好了,言归正传,这个函数没有什么好讲的,看看登陆按钮的代码吧。 login.onPress = function () { var port = 1120; ??? if (trim(nickname) == "" || nickname == null) { ???????????? status = "名字不能为空"; ??? } else if (nickname.indexOf(",") != -1 || nickname.indexOf(":") != -1 || nickname.indexOf(" ") != -1) { ???????????? status = "姓名中不可以包含'',''、'':''及空格字符"; ??? } else { ???????????? _root.nickname = trim(nickname); ???????????? _root.chatSocket.connect(server, port); ???????????? status = "正在连接服务器 "+server+":"+port; ??? } } 在这里,这个登陆用的按钮被命名为login,如图7-3所示。 图7-3 这里仅支持按钮,并没有支持键盘的回车操作。如果需要支持回车操作,则第一行的程序应做如下修改: login.onPress = login_in; Key.addListener(this); this.onKeyDown = function() { ??? if (Key.isDown(Key.ENTER))? login_in(); } function login_in() { …… 从这个代码来看,Flash MX如果要同时支持按钮与键盘甚至鼠标的话,操作就变得麻烦了,不像以前一个语句on (press, keyPress "")便可。不过想想也应该,MX把各种事件响应拆开,这样对每个事件程序方便了,但是代码就增长了。这个按钮响应事件中有一个文本显示框status,还有一个非常重要的Socket实例名_root.chatSocket,这个实例是在主场景被创建的。 7.1.2? 游戏主场景 下面是主场景的程序: //创建一个XML Socket连接 chatSocket = new XMLSocket(); //这个onConnect是用来定义当连接成功所调用的函数 chatSocket.onXML = onXML; sys = "[公告] "; chatSocket.onConnect = onConnect; function onConnect (success) { ??? trace("connect = "+success); ??? if (success == false) { ???????????? this.close(); ???????????? objLogin.status = " 在连接服务器 "+objLogin.server+" 时出错"; ??? } else { ???????????? objLogin.status = " 您已成功的连到 "+objLogin.server; ?????? //如果成功连接就发送一条连接命令 ???????????? var xmlM

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号