107 lines
2.7 KiB
Plaintext
107 lines
2.7 KiB
Plaintext
/*
|
|
文件名:TextActor.nut
|
|
路径:Core/BaseClass/TextObject/TextActor.nut
|
|
创建日期:2024-12-01 19:51
|
|
文件用途:文本样式
|
|
*/
|
|
class TextActor extends CL_BaseObject {
|
|
|
|
//不需要Update函数
|
|
NoUpdate = true;
|
|
|
|
OutlineChild = null;
|
|
Strokeoffsets = [{
|
|
x = 1,
|
|
y = 0
|
|
}, // 右
|
|
{
|
|
x = 1,
|
|
y = 1
|
|
}, // 右上
|
|
{
|
|
x = 0,
|
|
y = 1
|
|
}, // 上
|
|
{
|
|
x = -1,
|
|
y = 1
|
|
}, // 左上
|
|
{
|
|
x = -1,
|
|
y = 0
|
|
}, // 左
|
|
{
|
|
x = -1,
|
|
y = -1
|
|
}, // 左下
|
|
{
|
|
x = 0,
|
|
y = -1
|
|
}, // 下
|
|
{
|
|
x = 1,
|
|
y = -1
|
|
} // 右下
|
|
];
|
|
|
|
/*
|
|
* @函数作用: 构造文本精灵
|
|
* @参数 font 可传入全局font Id 或 传入 font对象
|
|
* @参数 textstyle Map 可选对象:
|
|
alignment 对其方式
|
|
wrap_width 自动换行宽度
|
|
line_spacing 行间距
|
|
show_underline 显示下划线
|
|
show_strikethrough 显示删除线
|
|
color 颜色
|
|
* @返回值
|
|
*/
|
|
constructor(font, textstyle = {}) {
|
|
switch (typeof font) {
|
|
case "integer":
|
|
C_Object = TextActor_Create(__Font__Map__[font].C_Object, textstyle);
|
|
break;
|
|
case "font_data":
|
|
C_Object = TextActor_Create(font.C_Object, textstyle);
|
|
break;
|
|
default:
|
|
C_Object = TextActor_Create(Font().C_Object, textstyle);
|
|
break;
|
|
}
|
|
//传递字体类
|
|
base.constructor(C_Object);
|
|
}
|
|
|
|
//设置文本内容
|
|
function SetText(str) {
|
|
TextActor_SetText(this.C_Object, str);
|
|
if (OutlineChild) {
|
|
foreach(obj in OutlineChild) {
|
|
obj.SetText(str);
|
|
}
|
|
}
|
|
}
|
|
|
|
//设置描边
|
|
function SetOutline(width, color = Color.Black, cap = CapStyle.Square, line_join = LineJoinStyle.Round, dash = DashStyle.Solid) {
|
|
TextActor_SetOutLine(this.C_Object, width, color, cap, line_join, dash);
|
|
}
|
|
|
|
// //设置描边
|
|
// function SetOutline(style) {
|
|
// OutlineChild = [];
|
|
// for (local i = 0; i< 8; i++) {
|
|
// style.color = 0xff000000;
|
|
// local buf = FontAssetManager.GenerateNormal("", false, style);
|
|
// buf.SetPosition(Strokeoffsets[i]);
|
|
// buf.SetZOrder(-1);
|
|
// OutlineChild.push(buf);
|
|
// Addchild(buf);
|
|
// }
|
|
// }
|
|
|
|
//设置填充颜色
|
|
function SetFillColor(Color) {
|
|
TextActor_SetFillColor(this.C_Object, Color);
|
|
}
|
|
} |