我正在尝试创建一个供个人使用的简单屏幕保护程序。
我一辈子都无法弄清楚时钟显示后如何更新。我有一个与消息端口绑定的全局变量,该变量应每隔x ms更新一次函数,但是无论出于何种原因,单个函数仍保持静态。我的背景发生了变化,屏幕淡入淡出的动画发生了变化,但是无论我将text=roDatetime
放在init()
之外的什么地方,它都永远不会更新。
所以,我希望这里的人可以告诉我我做错了什么,或者根本不做任何事情,这样我就可以使它正常工作。
编辑(为澄清起见):
我在旋转的背景上方有一个文本时钟(在标签中),并且我正在使用m.global.observeField和一个等待/端口配对来触发该函数来更新时间。
但是,我发现问题与我设置功能的顺序有关(即,功能触发器的顺序导致了问题),尽管并不是我想要的位置100%,但现在可以正常工作因此,这不再是编码问题。
答案 0 :(得分:2)
我不知道您在Roku中执行哪种时钟,因此,我仅在AnalogClock示例和数字时钟中简单地使用如下所示的Overhang标签。
<Overhang
showClock="true"
translation="[60,170]"
/>
使用突出标签。您显示了像这样的图像右端角。 希望这对您有帮助。
答案 1 :(得分:0)
我建议使用Timer node。您可以执行以下操作:
在xml中:
<Timer id="minuteTimer" repeat="true" duration="60"/>
并在您的BrightScript中:
sub init()
m.timer = m.top.findNode("minuteTimer")
m.timer.observeField("fire", "updateMinuteHand")
end sub
sub updateMinuteHand(event as object)
' do what you need to here
end sub
或者,您可以像这样在Brightscript中而不是在xml中创建Timer节点:
m.timer = createObject("roSGNode", "Timer")
m.timer.repeat = true
m.timer.duration = 60