用户1从Flash打开应用程序,用户2从浏览器打开应用程序
..。我得到了一个错误:
[ 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退出房间时,没有错误。
所以,我有一个连接用户到服务器的按钮,当用户连接并加入“大厅”房间时,他可以加入并创建房间,当两个玩家加入时,游戏就开始了。
我在AS3中使用SFS Basic,我在任何地方都不调用getRoomList(),我需要提到的是,我有另一个类似于此的应用程序,它运行时没有错误(相同的api、相同的服务器、类似的函数流)。
尝试过不同的解决方案,但没有帮助.
我不明白为什么我在这个应用程序上得到了这个错误,而另一个应用程序工作得很好,为什么只有当我创建这个房间时,我才会得到这个错误,并且我希望当任何用户创建空间时,而不仅仅是当用户1创建这个空间时,我会得到一个错误。
任何帮助或建议都非常感谢,我为这个问题挣扎了好几天.
更新:如果我创建了一个3人空间(游戏室),游戏还没有开始,我连接了2个玩家,然后他们断开了所有的连接,但是如果游戏开始,然后他们断开连接,我就会得到这个错误。
发布于 2015-06-15 20:23:18
我发现了这个问题,我希望我能用这个答案节省一些时间:
问题是这条线:
sfs.getActiveRoom().getUserList().sort(randomize)[0].getName();我使用这段代码生成一个随机用户,作为第一个播放,但实际上,我似乎正在更改用户列表数组(通过对其进行排序) (sfs.getActiveRoom().getUserList()),以及用户离开房间的时候。轰隆隆!错误!空对象!
所以,我改变了这个:
var userList:Array = new Array();
userList = userList.concat(sfs.getActiveRoom().getUserList());
var randomUser = userList.sort(randomize)[0].getName();https://stackoverflow.com/questions/30848503
复制相似问题