命令方块里怎么弄悬浮文字,命令方块怎么让屏幕出现文字

首页 > 经验 > 作者:YD1662024-03-24 06:00:20

大家好,我是公众号3分钟学堂的郭立员

前言

一般软件在有新版本更新的时候会有一个弹窗提示,我们这期教程是给脚本增加一个类似的提示。

命令方块里怎么弄悬浮文字,命令方块怎么让屏幕出现文字(1)

制作过程

①、准备一个背景图

命令方块里怎么弄悬浮文字,命令方块怎么让屏幕出现文字(2)

②、新建一个悬浮窗,并把准备图片作为悬浮窗的背景图。

FW.NewFWindow("悬浮窗",120,300,480,640) FW.SetPicture("悬浮窗", "/sdcard/pictures/更新提示/bg.jpg") FW.Show("悬浮窗") do Delay 1000 Loop

③、给悬浮窗增加文字

这个文字主要是脚本更新的内容,新版本脚本更新了什么,这里就写什么,当然也可以加一些别的,比如版本号、新版本文件大小。

考虑到悬浮窗自适应大小比较麻烦,所以更新的文字尽量不要太多,防止超过悬浮窗的范围而被隐藏。

FW.NewFWindow("悬浮窗",120,300,480,640) FW.SetPicture "悬浮窗", "/sdcard/pictures/更新提示/bg.jpg" FW.AddTextView("悬浮窗", "更新标题", "是否升级V3.1版本?", 50, 260, 400, 100) FW.AddTextView("悬浮窗", "更新内容", "1.增加了跑图功能\n\n2.修复了界面配置加载错误\n\n3.修复未知错误", 50, 330, 400, 300) FW.SetTextSize("更新内容", 12) FW.SetTextColor("更新内容","333333") FW.Show("悬浮窗") Do Delay 1000 Loop

命令方块里怎么弄悬浮文字,命令方块怎么让屏幕出现文字(3)

为了好看增加了一些细节,比如换行是用\n,但是间距太小,代码里面没有行间距命令,所以使用两个\n用多一个空行增加了行间距。

另外文字颜色也做了区分,使用了灰色,增强主次关系。

④、增加按钮

需要在悬浮窗上加两个按钮,一个是“取消”,一个是“立即更新”。

“取消”按钮为灰色,“立即更新”按钮为彩色,字体颜色为白色,这里调整按钮的大小和位置使整体看着和谐一些。

命令方块里怎么弄悬浮文字,命令方块怎么让屏幕出现文字(4)

FW.NewFWindow("悬浮窗",120,300,480,640) FW.SetPicture "悬浮窗", "/sdcard/pictures/更新提示/bg.jpg" FW.AddTextView("悬浮窗", "更新标题", "是否升级V3.1版本?", 50, 260, 400, 100) FW.AddTextView("悬浮窗", "更新内容", "1.增加了跑图功能\n\n2.修复了界面配置加载错误\n\n3.修复未知错误", 50, 330, 400, 300) FW.SetTextSize("更新内容", 12) FW.SetTextColor("更新内容","333333") FW.AddButton("悬浮窗", "取消", "取消", 50, 530, 180, 60) FW.AddButton "悬浮窗", "立即更新", "立即更新", 255, 530, 180, 60 FW.SetBackColor("取消","aaaaaa") FW.SetBackColor("立即更新","E29F07") FW.SetTextColor "取消", "FFFFFF" FW.SetTextColor("立即更新","FFFFFF") FW.Show("悬浮窗") Do Delay 1000 Loop

⑤、设置按钮功能

悬浮窗的样子弄好之后,就要开始做功能了。

取消更新:

FW.SetOnClick("取消", 取消更新) FW.Show("悬浮窗") Do Delay 1000 Dim ret = FW.GetValue("悬浮窗") If ret["Left"] Then Else Exit Do End If Loop TracePrint 1 Function 取消更新() FW.Close ("悬浮窗") End Function

给“取消”按钮增加了一个点击事件,点击按钮后关闭悬浮窗,正常来说到这一步悬浮窗就消失了,但是对于代码来说还有一个死循环(do循环)

如果想要脚本继续运行,就需要结束do循环,这里在do循环里面加上一个获取悬浮窗是否存在的判断,当悬浮窗关闭后,跳出do循环。

立即更新:

这个其实和“取消”按钮是一样的,也是点击后关闭悬浮窗并且结束do循环。

不同之处是需要加上你更新脚本的操作,而且需要在更新脚本结束之后在关闭悬浮窗。

以下是完整代码:

FW.NewFWindow("悬浮窗",120,300,480,640) FW.SetPicture "悬浮窗", "/sdcard/pictures/更新提示/bg.jpg" FW.AddTextView("悬浮窗", "更新标题", "是否升级V3.1版本?", 50, 260, 400, 100) FW.AddTextView("悬浮窗", "更新内容", "1.增加了跑图功能\n\n2.修复了界面配置加载错误\n\n3.修复未知错误", 50, 330, 400, 300) FW.SetTextSize("更新内容", 12) FW.SetTextColor("更新内容","333333") FW.AddButton("悬浮窗", "取消", "取消", 50, 530, 180, 60) FW.AddButton "悬浮窗", "立即更新", "立即更新", 255, 530, 180, 60 FW.SetBackColor("取消","aaaaaa") FW.SetBackColor("立即更新","E29F07") FW.SetTextColor "取消", "FFFFFF" FW.SetTextColor "立即更新", "FFFFFF" FW.SetOnClick "取消", 取消更新 FW.SetOnClick("立即更新", 立即更新) FW.Show("悬浮窗") Do Delay 1000 Dim ret = FW.GetValue("悬浮窗") If ret["Left"] Then Else Exit Do End If Loop Function 取消更新() FW.Close ("悬浮窗") End Function Function 立即更新() For i = 1 To 100 ShowMessage "开始更新脚本" & 100 - i delay 1000 Next FW.Close ("悬浮窗") End Function

⑥、细节补充

给整个悬浮窗加上圆角,原本想直接用倒角命令,由于加了背景图使得此命令失效,只能是做一个带圆角的背景图。

在点击完“立即更新”按钮后,悬浮窗不是立即消失,而是要等待脚本更新完成,这段时间为了防止按钮被再次点击,可以设置成按钮禁止点击。

更新过程如果需要时间较长,可以用进度条显示,减少用户的焦虑感。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.