roku设备在调用函数时停止工作

时间:2016-08-23 06:47:35

标签: function reboot roku

我使用此代码进行验证。在点击键盘的ok后,roku设备重新启动。 我想要显示新的键盘密码。

sub init()       m.top.backgroundURI =“pkg:/images/rsgde_bg_hd.jpg”

  example = m.top.findNode("instructLabel")

  examplerect = example.boundingRect()
  centerx = (1280 - examplerect.width) / 2
  centery = (720 - examplerect.height) / 2
  example.translation = [ centerx, centery ]

  m.top.setFocus(true)
end sub

sub showdialog()
  keyboarddialog = createObject("roSGNode", "KeyboardDialog")
  keyboarddialog.backgroundUri = "pkg:/images/rsgde_dlg_bg_hd.9.png"
  keyboarddialog.title = "Example Keyboard Dialog"

  keyboarddialog.buttons=["OK","CANCEL"]
  keyboarddialog.optionsDialog=true

  m.top.dialog = keyboarddialog


KeyboardDialog.observeField("buttonSelected","onKeyPress")


end sub



 sub showpassword()
  keyboarddialog = createObject("roSGNode", "KeyboardDialog")
  keyboarddialog.backgroundUri = "pkg:/images/rsgde_dlg_bg_hd.9.png"
  keyboarddialog.title = "Example Keyboard Dialog"

  keyboarddialog.buttons=["OK","CANCEL"]
  keyboarddialog.optionsDialog=true

  m.top.dialog = keyboarddialog


end sub


function onKeyPress()
    check=CreateObject("roRegex", "^[A-Za-z0-9_%+-]+(\.[A-Za-z0-9_%+-]+)*@([A-Za-z0-9-]+\.)+[A-Za-z]{2,6}$", "i").IsMatch(m.top.dialog.text)

        if(check)
            showpassword()

    else
        print "invalid"
    end if
end Function




function onKeyEvent(key as String, press as Boolean) as Boolean
  if press then
    if key = "OK"
      showdialog()

      return true
    end if

    end if


  return false
end function

1 个答案:

答案 0 :(得分:0)

我尝试从另一个对话框打开一个对话框时遇到了同样的问题,我设法通过使用计时器来解决它。

在我的XML上我添加了

<Timer
      id="dialogTimer"
      repeat="false"
      duration="0.1"
/>

在第一个对话框中单击

m.top.dialog.close = true
m.dialogTimer = m.top.findNode("dialogTimer")
m.dialogTimer.control = "start"
m.dialogTimer.ObserveField("fire","showDialogTimer")

然后函数showDialogTimer处理下一个对话框

sub showDialogTimer()
    showDialog()
end sub