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

 

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

 

 

 

转载于:https://www.cnblogs.com/minggoddess/archive/2011/11/07/2239264.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值