最近对PersimmonUI的clock控件进行操作发现一个问题,就是对时钟进行初始后显示都是从6点开始(时、分、秒)。请问原因?
代码如下:
var page = {
timer : 0,//定时器
time: 0,//时间,秒数
/* 此方法在第一次显示窗体前发生 */
onLoad: function (event) {
var that = this;
that.timer = setInterval(function(){
that.setData({Clock1 : {value : that.time , refresh : true}});
that.time++;
},1000)
},
/* 此方法关闭窗体前发生 */
onExit: function (event) {
clearInterval(this.timer);//清除定时器
},
};
Page(page);
page = 0;
一般clock控件 需要设置指针的旋转点
//在 onload 函数内设置
onLoad: function (event) {
this.setData({
Clock1: {
hour: { x: 4, y: 45 }, //(x, y) = (素材的宽度/2, 素材高度)
minute: { x: 3, y: 58 }, // (x, y) = (素材的宽度/2, 素材高度)
second: { x: 2, y: 60 } //(x, y) = (素材的宽度/2, 素材高度)
}
})
},
你可以加入柿饼交流群(QQ: 321116336),并且有问题可以及时沟通。
版本号是1.4.2。您说的方法是有效的,谢谢!
但我再实验中还发现如果我再onload对时钟设置一个初始值,譬如设置为3时15分45秒。运行时发现时钟的画面还是会从0点0时0秒突跳到我设置的时间上,再开始走秒。请问这个是不是软件在加载图片初始化的过程中出现了问题?我的测试代码如下:
var page = {
time : 0,
clockTime : 0,
clockhour : 3,
clockMinute : 15,
clockDecond : 45,
/* 此方法在第一次显示窗体前发生 */
onLoad: function (event) {
var thiz = this;
this.setData({
Clock1: {
hour: { x: 4, y: 45 },
minute: { x: 3, y: 58 },
second: { x: 2, y: 60 }
}
});
thiz.clockTime = this.clockhour * 60 *60 + this.clockMinute *60 + this.clockDecond;
this.time = setInterval(function(){
thiz.setData({ Clock1: { value: thiz.clockTime, refresh: true } });
thiz.clockTime += 1;
console.log(thiz.clockTime);
},1000);
......
请问原因在那里?
是你这里的原因, 定时器在1000毫秒之后才会给clock设值, 你可以在定时器上面设置一次值试下
PS: 你在我的评论下回复, 这样我可以收到即时消息, 不然不会收到
谢谢,这个地方疏忽了。