To add to lionz suggestion. 'Trigger Once' means, trigger once when these conditions become true, not trigger once only ever. If the conditions become false again (in your case object not touching) then it will trigger again the next time.
Use lionz suggestion of a variable to keep track of if the trigger has been fired already.
On object touched
Is object Var_triggered=false
Trigger Once - Set object Var_triggered to True