公告消息弹窗(动态大小)
This commit is contained in:
parent
68068e79ff
commit
c7dfe7c994
|
|
@ -66,5 +66,6 @@ sqr/User/UI/Widget/Scroll_Bar.nut
|
|||
|
||||
sqr/User/UI/Window/0_Login.nut
|
||||
sqr/User/UI/Window/1_Select_Character.nut
|
||||
sqr/User/UI/Window/233_HUD_Message.nut
|
||||
|
||||
sqr/User/main.nut
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
文件名:233_HUD_Message.nut
|
||||
路径:User/UI/Window/233_HUD_Message.nut
|
||||
创建日期:2024-12-14 08:10
|
||||
文件用途: 公告或信息弹窗
|
||||
*/
|
||||
|
||||
class HUD_Message extends Yosin_Window {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
// NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
BackGroundMusic = null;
|
||||
|
||||
cacheW = 230;
|
||||
cacheH = 155;
|
||||
|
||||
titleTextActor = null;
|
||||
messageTextActor = null;
|
||||
|
||||
constructor(gX, gY, message, info = {
|
||||
// 标题
|
||||
title = "公告",
|
||||
// 水平边距
|
||||
horizontalMargin = 20,
|
||||
// 垂直边距
|
||||
verticalMargin = 20,
|
||||
} ) {
|
||||
|
||||
local title = info.rawin("title") ? info.title : "公告";
|
||||
local horizontalMargin = info.rawin("horizontalMargin") ? info.horizontalMargin : 20;
|
||||
local verticalMargin = info.rawin("verticalMargin") ? info.verticalMargin : 20;
|
||||
|
||||
// 标题
|
||||
titleTextActor = FontAssetManager.GenerateNormal(title, true, {
|
||||
color = sq_RGBA(206, 189, 140, 255),
|
||||
alignment = TextAlign.Center,
|
||||
});
|
||||
|
||||
// 标题动态宽度
|
||||
if (titleTextActor.GetSize().w > cacheW - 40) {
|
||||
cacheW = titleTextActor.GetSize().w + 40;
|
||||
}
|
||||
|
||||
|
||||
// 内容
|
||||
messageTextActor = FontAssetManager.GenerateNormal(message, false, {
|
||||
color = sq_RGBA(206, 189, 140, 255),
|
||||
alignment = TextAlign.Center,
|
||||
wrap_width = cacheW - horizontalMargin * 2,
|
||||
});
|
||||
|
||||
// 内容动态高度
|
||||
local verticalMargin = 50 + verticalMargin * 2;
|
||||
cacheH = messageTextActor.GetSize().h + verticalMargin;
|
||||
|
||||
print("cacheW:" + cacheW.tostring());
|
||||
print("cacheH:" + cacheH.tostring());
|
||||
|
||||
// 默认构造数据
|
||||
base.constructor("公告或信息弹窗" + clock().tostring() , gX, gY, cacheW, cacheH, 20);
|
||||
|
||||
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
//注册绘制
|
||||
RegisterDraw();
|
||||
}
|
||||
|
||||
function RegisterWidget() {
|
||||
//背景
|
||||
local background = Yosin_NineBoxStretch(-1, 15, cacheW + 2, cacheH, "sprite/interface/lenheartwindowcommon.img", 97);
|
||||
AddUIChild(background);
|
||||
local twoBackground = Yosin_NineBoxStretch(4, 20, cacheW - 8, cacheH - 36, "sprite/interface/lenheartwindowcommon.img", 97);
|
||||
AddUIChild(twoBackground);
|
||||
|
||||
// 绘制标题背景
|
||||
local titleBackground = Yosin_EmeStretch(0, 0, cacheW, 20, "sprite/interface/lenheartwindowcommon.img", 609);
|
||||
AddUIChild(titleBackground);
|
||||
|
||||
//确认按钮
|
||||
local confirmButton = Yosin_BaseButton( cacheW / 2 - 28, cacheH - 15, 56, 24 "sprite/interface/lenheartwindowcommon.img", 12);
|
||||
confirmButton.OnClick = function(Button) {
|
||||
this.RemoveSelf();
|
||||
}.bindenv(this);
|
||||
AddUIChild(confirmButton);
|
||||
|
||||
// 绘制标题
|
||||
local confirmTextActor = FontAssetManager.GenerateNormal("确认", sq_RGBA(206, 189, 140, 255), true);
|
||||
confirmTextActor.SetPosition(17, 6);
|
||||
confirmButton.Addchild(confirmTextActor);
|
||||
|
||||
//关闭按钮
|
||||
local closeButton = Yosin_BaseButton( cacheW - 15, 5, 10, 9 "sprite/interface/lenheartwindowcommon.img", 42);
|
||||
closeButton.OnClick = function(Button) {
|
||||
this.RemoveSelf();
|
||||
}.bindenv(this);
|
||||
AddUIChild(closeButton);
|
||||
|
||||
|
||||
}
|
||||
|
||||
function RegisterDraw() {
|
||||
|
||||
local titleX = cacheW / 2 - titleTextActor.GetSize().w / 2;
|
||||
// 绘制标题
|
||||
titleTextActor.SetPosition( titleX , 2);
|
||||
Addchild(titleTextActor);
|
||||
|
||||
|
||||
local messageX = cacheW / 2 - messageTextActor.GetSize().w / 2;
|
||||
local messageY = cacheH / 2 - messageTextActor.GetSize().h / 2;
|
||||
|
||||
// 绘制内容
|
||||
messageTextActor.SetPosition( messageX , messageY );
|
||||
Addchild(messageTextActor);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//逻辑入口
|
||||
function Proc(Dt) {
|
||||
|
||||
SyncPos(X, Y);
|
||||
base.Proc(Dt);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -169,5 +169,8 @@
|
|||
},
|
||||
"User/UI/Widget/Drag_Button.nut": {
|
||||
"description": "拖动按钮"
|
||||
},
|
||||
"User/UI/Window/233_HUD_Message.nut": {
|
||||
"description": "公告弹窗"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue