local rich = GUI:RichTextFCOLOR_Create(n2_zhuansheng.ui.bg, "rich", 100, 0,
"<灼伤:几率灼烧目标/FCOLOR=254><每秒燃烧目标5%生命值/FCOLOR=249>", 600, 16, "#28EF01", 5,
function()
SL:print("===========超链")
end)
超链这个是怎么用的?
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-08 13:23:40 |
👁️ 阅读: 0
超链功能在富文本中是通过 `<a href='...'>` 标签实现的,点击后会触发回调函数。
根据浮生梦老师前端课程内容,使用超链需要:
**1. 创建支持超链的富文本控件**
```lua
-- 使用 RichText_Create 而不是 RichTextFCOLOR_Create
local rich = GUI:RichText_Create(n2_zhuansheng.ui.bg, "rich", 100, 0,
"<a href='点击超链#1'><font color='#FF33FF'>测试消息</font></a>",
600, 16, "#28EF01", 5,
function(...)
SL:print("超链点击触发", ...)
end)
```
**2. 超链标签格式**
```lua
-- 基本格式
"<a href='自定义标识#参数'>显示文本</a>"
-- 示例
"<a href='skill#1001'><font color='#FF0000'>查看技能</font></a>"
"<a href='item#2002'>点击查看装备</a>"
```
**3. 回调函数参数**
```lua
function(href, param1, param2, ...)
-- href: 完整的href字符串,如 "skill#1001"
-- param1: 第一个参数,如 "skill"
-- param2: 第二个参数,如 "1001"
SL:print("点击了超链:", href)
end
```
**4. 完整示例**
```lua
local parent = GUI:Win_Create("TestWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
local richText = GUI:RichText_Create(parent, "richText", 50, 50,
"欢迎来到游戏!<a href='help#新手引导'><font color='#00FF00'>点击查看新手引导</font></a> "..
"或者<a href='item#10086'><font color='#FF9900'>查看道具详情</font></a>",
500, 18, "#FFFFFF", 5,
function(href, type, id)
SL:print("超链类型:", type, "ID:", id)
if type == "help" then
SL:print("打开新手引导面板")
elseif type == "item" then
SL:print("显示道具ID为", id, "的详情")
end
end)
GUI:setVisible(parent, true)
```
**注意事项:**
1. 必须使用 `GUI:RichText_Create` 而不是 `RichTextFCOLOR_Create` 才能支持超链
2. 超链回调函数是 `RichText_Create` 的第9个参数
3. 可以通过 `SL:RegisterLUAEvent(LUA_EVENT_RICHTEXT_OPEN_URL, ...)` 全局监听所有超链点击
4. 超链参数可以自定义,用 `#` 号分隔多个参数
你原来的代码中回调函数没有参数,实际上超链点击时会传递href和解析后的参数给回调函数。
← 返回问答库