因此,对于工作中的项目,我们的任务是为客户创建Roku应用程序.很抱歉,如果这是一个愚蠢的问题,但我从未接触过一般的brightscript或Roku开发,而且我主要是一个反应/ javascript开发人员.
我正在插入我的方式,现在我正在尝试创建一个scenegraph组件来显示一个键盘,并在下面显示一个ButtonGroup.按钮组主要用于选择提交键盘文本字段中的内容,或取消输入.
到目前为止,我将组件渲染和焦点中的所有元素都设置到键盘上(这似乎是必要的,否则,只需按下遥控器上下键盘就无法选择键盘).
但是,当在键盘周围导航时,我找不到任何方法将焦点移动到按钮组.基本上,如果我按下键盘底行的遥控器,它什么都不做.它永远不会将焦点移动到buttongroup.
我只是希望有人可以帮我解决这个问题.我知道答案可能是显而易见的,我只是错过了,但是我整个上午都在反对这个问题,摆弄一些事情,我似乎无法弄明白.
下面是一个包含键盘和按键组件的组件示例.随意批评你看到的任何其他事情我也做得很糟糕,再说一遍,我对Roku dev没有真正的线索.
<?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>
Run Code Online (Sandbox Code Playgroud)
您可能想要阅读文档中的onKeyEvent函数.将此功能添加到您的组件:
function onKeyEvent(key as String, press as Boolean) as Boolean
handled = false
if press
if key = "down" and not m.emailButtonGroup.hasFocus()
m.emailButtonGroup.setFocus(true)
handled = true
else if key = "up" and not m.emailKeyboard.hasFocus()
m.emailKeyboard.setFocus(true)
handled = true
end if
end if
return handled
end function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |