screen模块

状态 最后更新 API版本
Active 2020-1-7 V1.00.00

描述

这个模块提供对屏幕及一些UI控件的访问。

MainUI

MainUI是一般用户使用表头的地方,一般情况下,表头界面上的所有操作都是由MainUI完成的。当您调用screen.open()时,MainUI进程被挂起,您可能会遇到一些诸如MainUI在screen.close()后没有自动重新渲染,或者在screen.open()后仍有MainUI的控件残留的情况。您可以很容易避免这些问题,这些问题可能会在未来的结构性优化里解决。

THEME_COLOR

THEME_COLOR 是用户设定的主题色。

刷新实现

为了避免出现用户可察觉的刷新感,表头实现一个GRAM。 当显示内容发生过更改(如,画一个矩形,显示字符串),且GRAM不再更改时,后台一个进程会将GRAM送到屏幕中完成刷新。 如果您希望在更改后立刻刷新屏幕,请调用screen.forceUpdate()函数。

color

表头实现一个有限颜色的GRAM,您不能选择任意颜色显示,这里是当前的调色板:

颜色 Note
color.red
color.blue
color.green
color.cyan
color.black
color.white
color.purple
color.orange
color.grey
color.yellow
color.lightGreen
color.lightRed
color.lightYellow
color.lightBlue
color.lightPurple
color.dimGray
color.transparent 常作为背景色使用

font

表头有几种字库,其中有的是部分字库,有的是全字库:

字体 Note
font.f1616 16*16字体, ASCII字符为半宽。 这包含了常用汉字及日文汉字与假名(请使用UTF-8编码)。
font.f1212 12*12字体, ASCII字符为半宽。 这包含了常用汉字及日文汉字与假名(请使用UTF-8编码)。
font.f0508 5*8字体, 仅包含ASCII字符。
font.f1424 14*24字体, 只有数字和部分字母有包含 (通常用于显示读数)。
font.f2030 20*30字体, 字体, 只有数字和部分字母有包含 (通常用于显示读数)。

screen.open()

描述

打开屏幕,屏幕不再被默认用户界面MainUI占用。

参数

nil

返回值

nil

调用例

screen.open()

screen.close()

描述

关闭屏幕,将控制权转回默认用户界面。

参数

nil

返回值

nil

调用例

screen.close()

screen.clear()

描述

清空屏幕(全黑)。

参数

nil

返回值

nil

调用例

screen.clear()

screen.drawPoint()

描述

在指定位置画指定颜色的点。

参数

名称 类型 范围 用途
<x> number 0-159 指定x位置
<y> number 0-127 指定y位置
[color] color 可选参数,指定颜色,如果不存在 , 颜色为THEME_COLOR

返回值

nil

调用例

screen.drawPoint(0,0,color.white)

screen.drawRect()

描述

在指定位置画指定颜色的矩形。

参数

名称 类型 范围 用途
<x1> number 0~159 指定第一个点的x坐标
<y1> number 0~127 指定第一个点的y坐标
<x2> number x1~159 指定第二个点的x坐标
<y2> number y1~159 指定第二个点的y坐标
[color] color 可选参数,指定颜色,如果不存在,颜色为 THEME_COLOR

返回值

nil

调用例

screen.drawRect(0,0,159,127,color.white)

screen.fillRect()

描述

在指定位置填充指定颜色的矩形。

参数

名称 类型 范围 用途
<x1> number 0~159 指定第一个点的x坐标
<y1> number 0~127 指定第一个点的y坐标
<x2> number x1~159 指定第二个点的x坐标
<y2> number y1~159 指定第二个点的y坐标
[color] color 可选参数,指定颜色,如果不存在,颜色为 THEME_COLOR

返回值

nil

调用例

screen.fillRect(0,0,159,127,color.white)

screen.forceUpdate()

描述

强制将GRAM送到屏幕,大多数情况下无需使用。

参数

nil

返回值

nil

调用例

screen.forceUpdate()

screen.showString()

描述

在指定位置以指定颜色显示字符串。

参数

名称 类型 范围 用途
<x1> number 0~159 指定x起始坐标
<y1> number 0~127 指定y起始坐标
<string> string 要显示的字符串
<font> font 指定字体
[foreground_color] color 可选参数,指定前景色,若不存在, 前景色为 THEME_COLOR
[background_color] color 可选参数,指定背景色,若不存在, 背景色为 THEME_BACK_COLOR
[inverted] boolean 可选参数,指定是否反转显示(即,前景色背景色互换),若不存在,默认不反转

返回值

nil

调用例

screen.showString(0,0,"Hello World",font.f1616)

screen.printInBox()

描述

在一个矩形区域显示字符串。

参数

名称 类型 范围 用途
<x1> number 0~159 指定范围第一个点的x坐标
<y1> number 0~127 指定范围第一个点的y坐标
<x2> number x1~159 指定范围第二个点的x坐标
<y2> number y1~159 指定范围第二个点的y坐标
<string> string 要显示的字符串
<font> font 要使用的字体
[foreground_color] color 可选参数,指定前景色,若不存在, 前景色为 THEME_COLOR
[background_color] color 可选参数,指定背景色,若不存在, 背景色为 THEME_BACK_COLOR
[inverted] boolean 可选参数,指定是否反转显示(即,前景色背景色互换),若不存在,默认不反转

返回值

nil

调用例

screen.printInBox(0,0,159,127,"This is a text box. A happy text box, A very happy text box.",font.f1616)

screen.showDialogue()

描述

画一个没有按钮的对话框。

参数

名称 类型 范围 用途
<title> string 指定标题
[content] string 可选参数,指定内容,如果不存在,则不显示内容
[block_time] number 可选参数, 指定阻塞时间(ms),如果阻塞时间为0,则函数调用后立刻返回,默认为0(立刻返回)
[titleCentered] boolean 可选参数, 设置标题是否剧中,默认为不居中
[color] color 可选参数, 指定对话框的颜色,如果不存在,颜色为 THEME_COLOR

返回值

nil

调用例

screen.showDialogue("This is title","This is content",1000,true,color.yellow)

screen.popHint()

描述

弹出一个提示框。

参数

名称 类型 范围 用途
<content> string 指定内容。
[block_time] number 可选参数, 指定显示时间(ms),若为0,则函数立刻返回,若不为0,等待指定时间后返回,默认立刻返回。
[color] color 可选参数,指定提示框的颜色,如果不存在,颜色为 THEME_COLOR

返回值

nil

调用例

screen.popHint("Hint Box",1000)

screen.popYesOrNo()

描述

弹出确认框。

参数

名称 类型 范围 用途
<content> string 提问字符串
[color] color 可选参数。 指定对话框的颜色, 如果不存在,颜色为 THEME_COLOR
[completecallback] function 可选参数。 指定确认框完成后的回调函数,结果为回调函数调用时的第一个参数。如果不指定,则函数在用户选择后才返回

返回值

名称 类型 范围 用途
<result> boolean 结果, true 为确认, false 为取消。 如果指定了回调函数,返回值无意义

调用例

if(screen.popYesOrNo("Do you want to fire the boss?")) then 
    FireTheBoss();
end

screen.popMenu()

描述

弹出一个菜单。

参数

名称 类型 范围 用途
<content> table 指定菜单项,最多可有254个菜单项
[color] color 可选参数。 指定菜单的颜色, 如果不存在,颜色为 THEME_COLOR
[completecallback] function 可选参数。 指定确认框完成后的回调函数,结果为回调函数调用时的第一个参数。如果不指定,则函数在用户选择后才返回

返回值

名称 类型 范围 用途
<result> number 结果。如果为255,用户双击退出了选择。

调用例

result = screen.popMenu({"Small","Middle","Grand"})
if(result ~= 255) then
    -- do your stuff
end