• 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']

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

  • 相关阅读:
    Mysql数据库相关流程图/原理图
    【nginx】配置Nginx实现负载均衡
    数据库设计——评论回复功能
    html生成pdf
    cmd下载echarts包
    windows安装cnpm步骤
    你不在,是一年一年,你在,是春夏秋冬
    聚合
    Beyond compare4密钥
    ExtJs目录说明
  • 原文地址:https://www.cnblogs.com/minggoddess/p/2239264.html
Copyright © 2020-2023  润新知