使用smartfoxserver pro访问RoomList Room Object中的UserList

时间:2013-05-29 20:35:42

标签: flash actionscript-2 smartfoxserver smartfox

提前感谢您的阅读。在过去的两周里,我一直在努力解决这个问题,一直在大力研究并且需要知道如何将它们组合在一起。

所以我正在使用flash和smartfoxserver pro。

我想创建一个大厅,人们可以在那里举办比赛,并寻找比赛。

这是一个基于回合制的RPG,所以我希望能够根据玩家的等级或级别对人进行排序。

我想要做的是,创建一个数组,用于保存当前等待比赛的玩家。

我能用这个

做到这一点
smartfox.onRoomListUpdate = function(roomList:Object)
{
    roomList_lb.removeAll()
    _global.roomlist = roomList;
    for (var i:String in roomList)
    {
        var room:Room = roomList[i]

        if (room.isGame())
        {
        _root.userArray.push([room.getId(),room.getName(),_global.monLev]);
            createPlayerCard("playerCard",200*quicknum,100+ynum,room.getName(),200, room.getId());
            quicknum+=300;


        }
    }
    roomList_lb.sortItemsBy("label", "ASC")
}

我还可以使用我在之前显示的函数中创建的全局房间列表变量在onJoinRoom中获取roomList信息。

无论如何,我还可以在房间列表中创建的房间对象中循环访问用户吗?

我试过

smartfox.onJoinRoom = function(roomObj:Room)
{   
    if (roomObj.isGame())
    {       
            trace("_________________________joining room");
        _global.myID = this.playerId;
        var roomid:Number = roomObj.getId();
        sendValues()
        trace("room id "+roomid);
    }
    else
    {
        trace("roomlist "+_global.roomlist);
        for (var i:String in _global.roomlist)
        {
            trace("lookign in");
            var room:Room = _global.roomlist[i]

            if (room.isGame())
            {

                trace(room.getName() + " (" + room.getUserCount() + "/" + room.getMaxUsers()+ ")-(" + room.getSpectatorCount() + "/" + room.getMaxSpectators() )


                         var roomId:Number  = room.getId()
                 var userList:Object    = room.getUserList()

                            for (var i:String in userList)
                               {
                             var user:User      = userList[i]
                             var uName:String   = user.getName()
                             var uId:Number     = user.getId()
                             trace(uName + " " + uId)
                               }

            }
        }

    }
}

这种方式我认为我可以从房间列表房间对象中获取用户变量,其中包含排名,级别,可能是头像图像。然后存储房间ID,号码,名称等,并制作一个漂亮的电影剪辑,以显示所有这些信息以及决斗按钮。 然后,当人们按决斗时,它已经知道要去另一个人等待比赛的房间。

试着说清楚,这是我第一次发帖,原谅任何格式问题,再次谢谢谢谢谢谢你的阅读和帮助!

0 个答案:

没有答案