zoukankan      html  css  js  c++  java
  • CEGUI 文本超链接的实现

      考虑到本行业的现状,做图形的需求还真不多,把ui改来改去的需求倒是蛮多 .姐现在貌似沦为ui程序了.

    方法1 这个很简单 在需要的地方 加window 再贴上图片或者字随便你

    function AddChatNameBtnLua(channelSize,nameSize,strChat)
    local winMgr = CEGUI.WindowManager:getSingleton()
    local btn = winMgr:createWindow("feitan_G/Button", "_chatName_btn_"..g_NameNum)

    if btn~=nil then
    --print("channelSize",channelSize,"nameSize",nameSize,"strchat",strChat)
    g_NameNum=g_NameNum+1
    local ChatData = ChatTextData:GetInstancePtr()
    local strBeforeName=string.sub(strChat,0,channelSize)
    local strName=string.sub(strChat,8,8+nameSize-1)

    local x = ChatData:GetStringWidth(strBeforeName);
    local strWidth=ChatData:GetStringWidth(strName)
    local strHeight=20--need to be sent
    --print(strBeforeName,strName,"x",x,"width",strWidth)

    local rect = string.format("{{0.0,%d},{0.0,0},{0.0,%d},{0.0,%d}}",x,x+strWidth,strHeight)
    btn:setProperty("UnifiedAreaRect",rect )

    btn:subscribeEvent("MouseButtonUp","TargetNameRC")

    local ChatWin = winMgr:getWindow("chatWin"..g_WinIndex)
    ChatWin:addChildWindow(btn)
    end
    end

    这里是在一个 itemlist上加button的lua代码  其实就是算算 位置了  

    遇到的问题是  当时不知道lua中 string.sub 是 对param1

    从param2 取到 param3 而不是 从param2

    那里取param3那么长

    方法2 :  系统的复杂的宏观的 方法  用 formatting tag  加入对 link的解析 与处理

     link=123 XXXXXX link=0  都以link=0结尾

    从前有只npc他很饿,[link='2']他喝了一杯奶茶之[link='0']

    具体实现的代码太复杂 等有空我再贴

  • 相关阅读:
    hive 数据hadoop数据etl交换
    团队冲刺(三)
    团队冲刺(二)
    CVPR2019论文热词云的实现
    团队冲刺(一)
    团队开发之电梯演讲----团队项目介绍--“益青春APP”
    android的finish()方法
    java web项目通过外网ip访问
    MySQL出现错误1205-Lock wait timeout exceeded; try restarting transaction
    团队开发(自己的理解)
  • 原文地址:https://www.cnblogs.com/minggoddess/p/2239264.html
Copyright © 2011-2022 走看看