无法为Roku创建基本的时钟应用程序

时间:2019-11-24 15:31:45

标签: roku brightscript

我正在尝试创建一个供个人使用的简单屏幕保护程序。

我一辈子都无法弄清楚时钟显示后如何更新。我有一个与消息端口绑定的全局变量,该变量应每隔x ms更新一次函数,但是无论出于何种原因,单个函数仍保持静态。我的背景发生了变化,屏幕淡入淡出的动画发生了变化,但是无论我将text=roDatetime放在init()之外的什么地方,它都永远不会更新。

所以,我希望这里的人可以告诉我我做错了什么,或者根本不做任何事情,这样我就可以使它正常工作。

编辑(为澄清起见):

我在旋转的背景上方有一个文本时钟(在标签中),并且我正在使用m.global.observeField和一个等待/端口配对来触发该函数来更新时间。

但是,我发现问题与我设置功能的顺序有关(即,功能触发器的顺序导致了问题),尽管并不是我想要的位置100%,但现在可以正常工作因此,这不再是编码问题。

2 个答案:

答案 0 :(得分:2)

我不知道您在Roku中执行哪种时钟,因此,我仅在AnalogClock示例和数字时钟中简单地使用如下所示的Overhang标签。

<Overhang
      showClock="true"
      translation="[60,170]" 
/>

enter image description here

使用突出标签。您显示了像这样的图像右端角。 希望这对您有帮助。

答案 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