54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								文件名:Font.nut
							 | 
						||
| 
								 | 
							
								路径:Core/BaseClass/TextObject/Font.nut
							 | 
						||
| 
								 | 
							
								创建日期:2024-12-01	19:54
							 | 
						||
| 
								 | 
							
								文件用途:字体对象
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								__Font__Map__ <- {};
							 | 
						||
| 
								 | 
							
								class Font extends CL_BaseObject {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function _typeof() {
							 | 
						||
| 
								 | 
							
								        return "font_data";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /*
							 | 
						||
| 
								 | 
							
								     * @函数作用: 构造函数
							 | 
						||
| 
								 | 
							
								     * @参数 不传参默认使用系统默认字体
							 | 
						||
| 
								 | 
							
								     * @参数 1: 字体名称
							 | 
						||
| 
								 | 
							
								     * @参数 2: 字体大小
							 | 
						||
| 
								 | 
							
								     * @参数 3: 字体粗细    (可选)
							 | 
						||
| 
								 | 
							
								     * @参数 4: 字体倾斜    (可选)
							 | 
						||
| 
								 | 
							
								     * @参数 5: 字体拉伸    (可选)
							 | 
						||
| 
								 | 
							
								     * @返回值
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    constructor(...) {
							 | 
						||
| 
								 | 
							
								        local vargc = vargv.len();
							 | 
						||
| 
								 | 
							
								        //通过参数构造字体
							 | 
						||
| 
								 | 
							
								        if (vargc > 0) {
							 | 
						||
| 
								 | 
							
								            local family_name = vargv[0];
							 | 
						||
| 
								 | 
							
								            local size = vargv[1];
							 | 
						||
| 
								 | 
							
								            local weight = FontWeight.Normal;
							 | 
						||
| 
								 | 
							
								            if (vargc >= 3) weight = vargv[2];
							 | 
						||
| 
								 | 
							
								            local posture = FontPosture.Normal;
							 | 
						||
| 
								 | 
							
								            if (vargc >= 4) posture = vargv[3];
							 | 
						||
| 
								 | 
							
								            local stretch = FontStretch.Normal;
							 | 
						||
| 
								 | 
							
								            if (vargc >= 5) stretch = vargv[4];
							 | 
						||
| 
								 | 
							
								            C_Object = Font_CreateFont(family_name, size, weight, posture, stretch);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        //初始化系统默认字体
							 | 
						||
| 
								 | 
							
								        else {
							 | 
						||
| 
								 | 
							
								            C_Object = Font_CreateFont();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        base.constructor(C_Object);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function PreLoad(name) {
							 | 
						||
| 
								 | 
							
								        Font_PreloadFont(name);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //注册到全局表
							 | 
						||
| 
								 | 
							
								    function Register(Id) {
							 | 
						||
| 
								 | 
							
								        __Font__Map__[Id] <- this;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |