首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SmartFoxServer基本用户leaveRoom错误

SmartFoxServer基本用户leaveRoom错误
EN

Stack Overflow用户
提问于 2015-06-15 15:01:00
回答 1查看 220关注 0票数 0

用户1从Flash打开应用程序,用户2从浏览器打开应用程序

  • 用户1创建房间A
  • 用户2连接A室
  • 用户2离开A室

..。我得到了一个错误:

[ RECEIVED ]: <msg t='sys'><body action='uCount' r='2' u='1'></body></msg>, (len: 60) [ RECEIVED ]: <msg t='sys'><body action='userGone' r='89'><user id='91' />, (len: 73) TypeError: Error #1009: Cannot access a property or method of a null object reference. at it.gotoandplay.smartfoxserver.handlers::SysHandler/handleUserLeaveRoom()[/Users/Lapo/Documents/Flex Builder 2/SmartFoxClient_AS3/src/it/gotoandplay/smartfoxserver/handlers/SysHandler.as:353] at Function/http://adobe.com/AS3/2006/builtin::apply() at it.gotoandplay.smartfoxserver.handlers::SysHandler/handleMessage()[/Users/Lapo/Documents/Flex Builder 2/SmartFoxClient_AS3/src/it/gotoandplay/smartfoxserver/handlers/SysHandler.as:84] at it.gotoandplay.smartfoxserver::SmartFoxClient/xmlReceived()[/Users/Lapo/Documents/Flex Builder 2/SmartFoxClient_AS3/src/it/gotoandplay/smartfoxserver/SmartFoxClient.as:327] at it.gotoandplay.smartfoxserver::SmartFoxClient/handleMessage()[/Users/Lapo/Documents/Flex Builder 2/SmartFoxClient_AS3/src/it/gotoandplay/smartfoxserver/SmartFoxClient.as:1418] at it.gotoandplay.smartfoxserver::SmartFoxClient/handleSocketData()[/Users/Lapo/Documents/Flex Builder 2/SmartFoxClient_AS3/src/it/gotoandplay/smartfoxserver/SmartFoxClient.as:1401]

  • 如果用户2创建房间A
  • 用户1加入A室
  • 用户2离开A室

..。当用户2退出房间时,没有错误。

所以,我有一个连接用户到服务器的按钮,当用户连接并加入“大厅”房间时,他可以加入并创建房间,当两个玩家加入时,游戏就开始了。

我在AS3中使用SFS Basic,我在任何地方都不调用getRoomList(),我需要提到的是,我有另一个类似于此的应用程序,它运行时没有错误(相同的api、相同的服务器、类似的函数流)。

尝试过不同的解决方案,但没有帮助.

我不明白为什么我在这个应用程序上得到了这个错误,而另一个应用程序工作得很好,为什么只有当我创建这个房间时,我才会得到这个错误,并且我希望当任何用户创建空间时,而不仅仅是当用户1创建这个空间时,我会得到一个错误。

任何帮助或建议都非常感谢,我为这个问题挣扎了好几天.

更新:如果我创建了一个3人空间(游戏室),游戏还没有开始,我连接了2个玩家,然后他们断开了所有的连接,但是如果游戏开始,然后他们断开连接,我就会得到这个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-15 20:23:18

我发现了这个问题,我希望我能用这个答案节省一些时间:

问题是这条线:

代码语言:javascript
复制
sfs.getActiveRoom().getUserList().sort(randomize)[0].getName();

我使用这段代码生成一个随机用户,作为第一个播放,但实际上,我似乎正在更改用户列表数组(通过对其进行排序) (sfs.getActiveRoom().getUserList()),以及用户离开房间的时候。轰隆隆!错误!空对象!

所以,我改变了这个:

代码语言:javascript
复制
   var userList:Array = new Array();
   userList = userList.concat(sfs.getActiveRoom().getUserList());
   var randomUser = userList.sort(randomize)[0].getName();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30848503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档