DOF/sqr/Core/BaseClass/TextObject/TextActor.nut

97 lines
2.8 KiB
Plaintext

/*
文件名:TextActor.nut
路径:Core/BaseClass/TextObject/TextActor.nut
创建日期:2024-12-01 19:51
文件用途:文本样式
*/
class TextActor extends CL_BaseObject {
//不需要Update函数
NoUpdate = true;
/*
* @函数作用: 构造文本精灵
* @参数 font 可传入全局font Id 或 传入 font对象
* @参数 textstyle Map 可选对象:
alignment 对其方式
wrap_width 自动换行宽度
word_wrapping 自动换行模式
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);
}
//设置描边
function SetOutline(color = Color.Black, flag = true) {
TextActor_SetOutLine(this.C_Object, color, flag);
}
// //设置描边
// 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);
}
//设置坐标
function SetPosition(Value, ...) {
if (vargv.len() == 0) {
X = Value.x;
Y = Value.y;
} else if (vargv.len() == 1) {
X = Value;
Y = vargv[0];
}
X = X.tointeger();
Y = Y.tointeger();
BaseObject_SetPosition(this.C_Object, X, Y);
}
//移动坐标
function MoveTo(Value, ...) {
if (vargv.len() == 0)
BaseObject_MoveTo(this.C_Object, Value.tointeger());
else if (vargv.len() == 1)
BaseObject_MoveTo(this.C_Object, Value.tointeger(), vargv[0].tointeger());
}
//移动相对坐标
function MoveBy(Value, ...) {
if (vargv.len() == 0)
BaseObject_MoveBy(this.C_Object, Value.tointeger());
else if (vargv.len() == 1)
BaseObject_MoveBy(this.C_Object, Value.tointeger(), vargv[0].tointeger());
}
}