2016-08-23 2 views
0

Ich habe diesen Code für die Validierung verwendet. Nach einem Klick auf OK der Tastatur wird das Gerät neu gestartet. Ich möchte neue Tastatur für Passwort angezeigt werden.roku Gerät funktioniert nicht mehr, während eine Funktion aufgerufen wird

Unter 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 

Antwort

0

ich das gleiche Problem gestoßen sind, während ein Dialog von einem anderen zu öffnen versucht, gelang es mir, um es mit einem Timer zu lösen.

Auf meinem XML Ich habe

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

Und auf dem ersten Dialog klicken

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

Und dann die Funktion showDialogTimer behandelt das nächste Dialog

sub showDialogTimer() 
    showDialog() 
end sub 
Verwandte Themen