Prevent multiple execution when applying touch raycast behaviour

Hello there,
I need your help please. I am using this script to do the following. An object in the 3D world is touched and a certain function is called. The script works but I want the execution to be done only ONCE when I touched an object. The result now is firing the same script over and over again. I need it to stop until we have released the touch and retouched it again. Any help is really appreciated. I thought I could do this with the TouchOhase.Began command, but it is not working.

Thanks a lot in advance

Here is my script:

private var hit : RaycastHit;
private var ray : Ray; //ray we create when we touch the screen

function FixedUpdate () {

if (Input.GetTouch(0).phase == TouchPhase.Began) {

ray = Camera.main.ScreenPointToRay(Input.touches[0].position);
Debug.DrawLine(ray.origin,ray.direction * 10);
if(Physics.Raycast(ray.origin, ray.direction * 10,hit)){
Debug.Log(hit.transform.name+" touched"); // Object you touched

if (hit.transform.name==“playbutton_robot”) {
iPhoneUtils.Vibrate();
iPhoneUtils.PlayMovie(“movie.mp4”, Color.black, iPhoneMovieControlMode.CancelOnTouch, iPhoneMovieScalingMode.AspectFit);
}

}
}
}

See my reply here:
http://forum.unity3d.com/threads/77027-iPhone-touch-phase-.Began-and-.hittest-repeating

You are right. MouseDown ist the behaviour I was looking for.
It works perfectly fine.
Thanks!