Question #689241 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/689241

    Status: Open => Answered

RaiMan proposed the following answer:
looks like some stopObserver overkill ;-)

my suggestion:

def boxObserve():
    def changed(event):
        global someChanges
        event.changes[-1].click() #click on the last changed area
        someChanges = True
        event.stopObserver()    
    box = Region(684,552,266,371)
    box.onChange(500, changed)
    someChanges = False
    box.observe(0.5,background=False)
    if someChanges:
        doSomethingAfterClicking() #Do this after clicking
    else:
        doSomethingIfNothingChanged() #Do this function if Observer didnt 
detect any changes.

some comments:
- in a handler should not be lengthy activities, because the main thread is 
paused meanwhile
- when the observe time is reached, the observer is stopped anyways
- when the handler is visited, event.changes contains at least one entry
- global variables can be used to communicate between handler and main thread

hope it helps

-- 
You received this question notification because your team Sikuli Drivers
is an answer contact for Sikuli.

_______________________________________________
Mailing list: https://launchpad.net/~sikuli-driver
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~sikuli-driver
More help   : https://help.launchpad.net/ListHelp

Reply via email to