Scrubbing through timeline

Hello,

I’m not sure if this is a noob question or not (so it probably is).

I have a dial that scrubs through the timeline, when it gets to frame seven, a sound plays, the problem is that moving away and then back to frame seven, plays the sound again, despite the sound already playing…
and again, and again!

any ideas?
thanks for your time, here is my (messy) code:

var soundFactory7:Sound = new Sound;
        
	
		var channel7:SoundChannel;
    
	   var positionTimer7:Timer;
            soundFactory7 = new Sound(new URLRequest("tcp_d1_05_5_dashes_irdial.mp3"));


          

            channel7 = soundFactory7.play();
            channel7.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler7);

            positionTimer7 = new Timer(50);
         
            positionTimer7.start();
        
         function soundCompleteHandler7(event:Event):void {
            trace("soundCompleteHandler7: " + event);
            positionTimer7.stop();
			channel7 = soundFactory7.play();
			channel7.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler7);
			
		 }