No loop

Is there a way to get an Event, for instance an roAudioplayer status message without a message loop? Or to make a loop that loops once and exits?
I need to get the info at the start of a function, in the first couple of lines and have been unable to make a loop that doesn’t take over and mess things up.

thanks

http://sdkdocs.roku.com/display/sdkdoc/Event+Loops

“end while”/“exit while” exits a message loop. So if you have this code -


port = CreateObject("roMessagePort")
screen = CreateObject("roSpringboardScreen") 
screen.SetMessagePort(port) ' instruct screen to send events to port
screen.Show()
while true
    msg = wait(0, port) ' wait for a message
    if type(msg) = "roSpringboardScreenEvent" then
        if msg.isScreenClosed() then
            return -1
        elseif msg.isButtonPressed()
            print "button pressed: ";msg.GetIndex()
        else
            ' ignore other unknown or uninteresting roSpringBoardScreenEvents
        endif
    else
        ' ignore other events, not type roSpringboardScreenEvent
    endif
end while

and you change it to


port = CreateObject("roMessagePort")
screen = CreateObject("roSpringboardScreen") 
screen.SetMessagePort(port) ' instruct screen to send events to port
screen.Show()
while true
    msg = wait(0, port) ' wait for a message
    if type(msg) = "roSpringboardScreenEvent" then
        if msg.isScreenClosed() then
            return -1
        elseif msg.isButtonPressed()
            print "button pressed: ";msg.GetIndex()

            EXIT WHILE

        else
            ' ignore other unknown or uninteresting roSpringBoardScreenEvents
        endif
    else
        ' ignore other events, not type roSpringboardScreenEvent
    endif
end while

Then when a button is pressed it will leave the loop.

Thank you destruk, those docs make a lot more sense after you explain something. I had tried the exit while , but i think i wasn’t tying it to an event, i was just hoping it would exit on its own which it didn’t seem to, or did but didn’t exit properly. You really helped me out this morning, i appreciate it.

Well in the end i got the same results as yesterday, that is any kind of loop, even the one you posted - prevents the springboard from reopening, and stops other things from working. Arrgg.