在制作大屏或者后台原型时,经常会有时间的显示,为了让原型更加高保真,我们可以利用axure的函数来获取当前时间,并动态显示。如下图:
大屏实时倒计时要想获得时间的刷新,我们可以使用动态面板来实现,当动态面板转换页面时,设置时间文本显示当前时间。
Step1:准备一个文本标签,点右键并把它转为动态面板,选中动态面板的state1,右键,选择复制状态,复制出“state2”。
文本标签 状态Step2:设置动作:
给动态面板增加载入时的动作,设置动态面板循环显示下一页面,循环周期为1秒钟(1000毫秒)。
动作设置Step3:设置时间文本,这里我们需要利用一些函数:
1.函数介绍
首先是一些时间函数,这里无需解释
年:Now.getFullYear()
月:Now.getMonth()
日:Now.getDate()
时:Now.getHours()
分:Now.getMinutes()
秒:Now.getSeconds()
然后是一些连接函数:
LVAR.concat('string'):这个函数是在字符串后面附加字符串,这里使用的目的,是在月、日、时、分、秒的前面加上0,后面详解;
LVAR.substr(start,length):这个函数是从目标字符串的指定位置开始,截取固定长度的字符串,起始位置从0开始;
LVAR.length:取得目标字符串的长度。
2. 函数编写
日期的获取和连接并不困难,这里的难点,是在如何将1位文字转换为2位文字,上一步提到的函数是关键。
以秒为例,先在获取到的秒前面加0,比如:010、05
我们最后要保留的是2位数,其实就是最后两位数,但是Axure中没有Right()函数,所以我们只能迂回取得。
1、获取添加0后的长度;
2、用长度减去2,作为截取字符串的起始位置;
3、截取的长度为2。
如:010,从字符串下标为1的位置开始,取两位,结果为10
05,从字符串下标为0的位置开始,取两位,结果为05
这就是我们要的效果
以秒为例写出相应函数:
[[(0.concat(Now.getSeconds())).substr((0.concat(Now.getSeconds())).length-2,2)]];
整体的函数如下:
[[(0.concat(Now.getFullYear())).substr((0.concat(Now.getFullYear())).length-4,4)]]/[[(0.concat(Now.getMonth())).substr((0.concat(Now.getMonth())).length-2,2)]]/[[(0.concat(Now.getDate())).substr((0.concat(Now.getDate())).length-2,2)]]/[[(0.concat(Now.getHours())).substr((0.concat(Now.getHours())).length-2,2)]]:[[(0.concat(Now.getMinutes())).substr((0.concat(Now.getMinutes())).length-2,2)]]:[[(0.concat(Now.getSeconds())).substr((0.concat(Now.getSeconds())).length-2,2)]]
网友评论