-- 玩家列表ItemLayout local ClubPlayerMatchHeHuoRenItem = class("ClubPlayerMatchHeHuoRenItem"); local ClubDefine = require("luaScript.Protocol.Club.ClubDefine") function ClubPlayerMatchHeHuoRenItem:ctor(player,clubId,index,lastPlayer,callback) self.ui = loadUI("res/ui/ui_club/ui_club_player_match_hehuoren_item.ui"); local uiSize = self.ui:getSize(); local realSize = {width = uiSize.width * g_radio_x,height = uiSize.height * g_radio_y} self.ui:setSize(realSize) --更多操作 self.ui.Items.Button_more:registerClick(handler(self , self.onClickMore)) --self.ui.Items.Button_more:setVisible(false); self.ui.Items.ImageView_pause:setVisible(false); --茶馆群id self.clubId = clubId self.clubInfo = app.club_php.clubList[clubId] self.player = player self.operatorId = app.user.loginInfo.uid self.index = index self.role = lastPlayer.role self.lastPlayer = lastPlayer self.callback = callback self:updatePlayer() end function ClubPlayerMatchHeHuoRenItem:updatePlayer() self.ui.Items.TextBMFont_num:setText(tostring(self.index)) local playerInfo = self.player --头像 local nodeHead = self.ui.Items.ImageView_head; local headSize = nodeHead:getContentSize(); if playerInfo.strHeadUrl and playerInfo.strHeadUrl ~= "" then setPlayerHeadImage(playerInfo.uid, playerInfo.strHeadUrl, nodeHead); else setDefaultHeadImg(playerInfo.sex, playerInfo.strHeadUrl, nodeHead, headSize.width); end --昵称 local name = getSubStringNickname(playerInfo.name, self.ui.Items.Text_nickname) self.ui.Items.Text_nickname:setText(name or "未知昵称") --id号 local strID = playerInfo.uid if playerInfo.agent == 1 then --是代理 strID = "ID: " .. string.format("%d(代理)", playerInfo.uid) end self.ui.Items.Text_id:setText(strID); --职位 self.ui.Items.Text_job:setText(tostring(ClubDefine.Role[playerInfo.role])) --成员状态(1正常0黑名单成员) if playerInfo.status == 0 then self.ui.Items.ImageView_pause:setVisible(true); end --状态(1在线0离线) if playerInfo.online == 1 then --在线 self.ui.Items.Text_statue:setText("在线"); self.ui.Items.Text_statue:setTextColor(cc.c4b(16,177,1,255)); else self.ui.Items.Text_statue:setTextColor(cc.c4b(115,115,115,255)); end --红花数 local useRedFlower = playerInfo.useRedFlower self.ui.Items.Text_rednum:setText(tostring(useRedFlower)); --操作按钮 --[[ if playerInfo.role == ClubDefine.Job.LevelOneCopartner or (self.role == ClubDefine.Job.LevelTwoCopartner and playerInfo.role == ClubDefine.Job.LevelTwoCopartner)then self.ui.Items.Button_more:setVisible(true) else self.ui.Items.Button_more:setVisible(true) end--]] end function ClubPlayerMatchHeHuoRenItem:onClickMore() playBtnEffect() local tagType = ClubDefine.PlayListType.MATCH_LV_1_COPARTNER_MEMBER if self.role == ClubDefine.Job.LevelTwoCopartner then tagType = ClubDefine.PlayListType.MATCH_LV_2_COPARTNER_MEMBER end if not self.player then logD("ClubPlayerMatchHeHuoRenItem:onClickMore player isNOExist") return end local view = import("luaScript.Views.Club.ClubPlayerMatchOperatMenu"):new(self.player,self.clubId,tagType,self.lastPlayer.uid,self.callback) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view, 0, true); --计算坐标偏移 local node = self.ui.Items.Button_more; local worldPos = node:getWorldPosition(); local viewContentSize = view.ui:getSize() --X坐标 local x = worldPos.x - node:getContentSize().width / 2 - 10; --10个像素间距 local y = worldPos.y --yhj:临界处理 --按钮离屏幕底部的距离 local fromBtnToBottomY = worldPos.y --viewContentSize的一半如果大于fromBtnToBottomY则有一部分的菜单按钮显示到了屏幕外 local distanBottom = viewContentSize.height/2 - fromBtnToBottomY if distanBottom > 0 then y = worldPos.y + distanBottom end --同样的考虑菜单过长时候,离顶部是否超越屏幕 local fromBtnToTopY = getWinSize().height - worldPos.y local distanTop = viewContentSize.height/2 - fromBtnToTopY if distanTop > 0 then y = worldPos.y - distanTop end view:setPosition(cc.p(x, y)); end return ClubPlayerMatchHeHuoRenItem