예제 #1
0
    void refreshMessage(MainData.FriendBody friend)
    {
        MyUtilTools.clearChild(messageDetailContainer);
        List <MainData.MessageBody> messages = getRecentlyMessage(friend);

        messageStarty = 450;
        for (int i = messages.Count - 1; i >= 0; i--)
        {
            MainData.MessageBody message = messages[i];
            initMessage(message);
        }
        UIPanel panel = messageDetailContainer.parent.GetComponent <UIPanel>();

        if (messages.Count > 0)
        {
            float y = 450 - messageStarty - panel.baseClipRegion.w + 50;
            panel.clipOffset = new Vector2(0, -y);
            messageDetailContainer.parent.localPosition = new Vector3(0, y + 50, 0);
        }
        else
        {
            panel.clipOffset = Vector2.zero;
            messageDetailContainer.parent.localPosition = new Vector3(0, 50, 0);
        }
    }
예제 #2
0
    public static List <MainData.MessageBody> getRecentlyMessage(MainData.FriendBody friend)
    {
        List <MainData.MessageBody> temps = new List <MainData.MessageBody>();

        for (int i = 0; i < MainData.instance.user.messages.Count; i++)
        {
            MainData.MessageBody message = MainData.instance.user.messages[i];
            if (message.sendId == friend.fid || message.sendId == friend.uid)
            {
                temps.Add(message);
            }
        }
        temps.Sort();
        return(temps);
    }
예제 #3
0
    void initMessage(MainData.MessageBody message)
    {
        GameObject pref_obj    = message.type == 1 ? (message.sendId == MainData.instance.user.id ? pref_message_pic_detail_right : pref_message_pic_detail_left) : (message.sendId == MainData.instance.user.id ? pref_message_word_detail_right : pref_message_word_detail_left);
        GameObject message_obj = NGUITools.AddChild(messageDetailContainer.gameObject, pref_obj);

        message_obj.name = "message-" + message.id;
        Transform icon_tran = message_obj.transform.FindChild("icon");

        icon_tran.GetComponent <UISprite>().spriteName = message.sendFace;
        Transform time_tran = message_obj.transform.FindChild("time");

        time_tran.gameObject.SetActive(message.showTime == 1);
        if (message.showTime == 1)
        {
            UILabel         time_label = time_tran.GetComponent <UILabel>();
            System.DateTime dateTime   = System.DateTime.Parse(message.time);
            string          showStr    = null;
            //int days = System.DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
            if (System.DateTime.Now.Year == dateTime.Year && System.DateTime.Now.Month == dateTime.Month && System.DateTime.Now.Day == dateTime.Day)
            {//同一天
                showStr = "今天" + MyUtilTools.numToString(dateTime.Hour) + ":" + MyUtilTools.numToString(dateTime.Minute);
            }
            else
            {
                showStr = dateTime.Year + "/" + MyUtilTools.numToString(dateTime.Month) + "/" + MyUtilTools.numToString(dateTime.Day) + " " + MyUtilTools.numToString(dateTime.Hour) + ":" + MyUtilTools.numToString(dateTime.Minute);
            }
            time_label.text = showStr;
            messageStarty  -= 70;
        }
        if (message.type == 0)
        {//文字类型
            Transform content_trans = message_obj.transform.FindChild("content");
            float     cx            = content_trans.localPosition.x;
            Transform rect_tran     = content_trans.FindChild("rect");
            UISprite  rect_sprite   = rect_tran.GetComponent <UISprite>();
            UILabel   content       = rect_tran.FindChild("value").GetComponent <UILabel>();
            content.width = 570;
            content.text  = message.content;
            int row    = MyUtilTools.computeRow(content);
            int height = row * 64;
            if (row == 1)
            {
                int width = (int)MyUtilTools.computeLen(content) + content.fontSize;
                rect_sprite.width = Mathf.Min(600, width);
                content.width     = rect_sprite.width - content.fontSize;
            }
            rect_sprite.height = height;
            content.height     = row * (content.fontSize + content.spacingX);
            float offx     = rect_sprite.width / 2 + 14;
            int   opration = cx > 0 ? -1 : 1;
            rect_tran.localPosition             = new Vector3(opration * offx, content.fontSize - height / 2 - 5, 0);
            message_obj.transform.localPosition = new Vector3(0, messageStarty, 0);
            messageStarty -= height + 10;
        }
        else //图片
        {
            UITexture pic_texture = message_obj.transform.FindChild("content").FindChild("rect").FindChild("value").GetComponent <UITexture>();
            JustRun.Instance.loadPic(message.content, pic_texture);
            message_obj.transform.localPosition = new Vector3(0, messageStarty, 0);
            messageStarty -= 590;
        }
    }