Well. It should work. Apparently collision doesn't occur or cancolide is always false.
You know how to use collisions and you know how to you use IF statements and attributes. That's all you need to make collision occur just once. The way I showed above works. And makes code being executed only once at the continuous collision.