因此,对于工作中的项目,我们一直负责为客户创建Roku应用程序。对不起,如果这是一个愚蠢的问题,但我从来没有碰过brightscript或Roku开发,而且大多是一个react/javascript开发人员。如何在屏幕上的键盘和按钮组之间移动焦点?
我插入我的方式,现在我正在尝试创建一个scenegraph组件来显示键盘和下面显示的ButtonGroup。按钮组基本上用于选择提交“键盘”文本字段中的内容,或者取消条目。到目前为止,我已经将组件渲染和焦点中的所有元素设置为键盘(这似乎是必需的,否则,只需在遥控器上按下即可选择键盘)。
但是,当在键盘周围导航时,我找不到任何将焦点移动到按钮组的方式。基本上,如果我按下键盘底部的遥控器,它什么也不做。它永远不会将焦点转移到团队。
我只是希望有人能帮我弄明白这一点。我知道答案可能很明显,我只是想念它,但是我整个上午一直在反对这件事,摆弄着一些东西,而我似乎无法弄清楚。
下面是一个组件的住房键盘和buttongroup的例子。随意批评你看到的其他任何事情,我也做得很糟糕,因为再次,我对Roku开发没有真正的线索。
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2016 Roku Corp. All Rights Reserved. -->
<component name="MemberEmail" extends="Group">
<children>
<LayoutGroup id="MemberEmailLayout" translation = "[ 0, 0 ]" itemSpacings="[20]">
<Keyboard id="EmailKeyboard" />
<ButtonGroup id="EmailButtonGroup" />
</LayoutGroup>
</children>
<script type = "text/brightscript" >
<![CDATA[
sub init()
m.parentNode = m.top.getParent()
m.memberEmailLayout = m.top.findNode("MemberEmailLayout")
m.emailKeyboard = m.top.findNode("EmailKeyboard")
m.emailButtonGroup = m.top.findNode("EmailButtonGroup")
m.emailButtonGroup.buttons = ["Submit", "Cancel"]
m.emailButtonGroup.observeField("buttonSelected","buttonPressed")
emailKeyboardRect = m.memberEmailLayout.boundingRect()
emailKeyboardCenterX = (1920 - emailKeyboardRect.width)/2
emailKeyboardCenterY = (1080 - emailKeyboardRect.height)/2
m.memberEmailLayout.translation = [ emailKeyboardCenterX, emailKeyboardCenterY ]
end sub
sub buttonPressed()
if m.emailButtonGroup.buttonSelected = 1 then
print "SUBMIT BUTTON SELECTED"
print "Input Value is"; m.emailKeyboard.text
m.parentNode.currentStep = "password"
else if m.emailButtonGroup.buttonSelected = 2 then
print "CANCEL BUTTON SELECTED"
end if
end sub
]]>
</script>
</component>
哦,天啊,谢谢!我知道onKeyEvent,因为我在其他地方使用onKeyEvent,但在这个组件的情况下,它忽略了它,即使在移动键盘字符或按钮组按钮时它会触发“向下”和“向上”。看到它在运动,完全知道它现在的工作方式。非常感谢您的快速回复和正确答案。 – curmudgeon1005
您的欢迎:) –