edit: поскольку isPlaying по умолчанию имеет значение false, он никогда не будет воспроизводить звук с самого начала. Ваше заявление if должно быть:
if(!isPlaying){
<code to play sound
}
Кроме того, я коснулся этого раньше, но я расширю: вам нужен дополнительный прослушиватель событий, который определяет, когда объекты не касаются, когда он вызывается, вы устанавливаете isPlaying в false. Прошло некоторое время с тех пор, как я запрограммировал в Actionscript, но это общая идея того, что вам нужно делать.
Используйте переменную и условный оператор. Каждый раз, когда объекты сталкиваются, он проверял, была ли эта переменная истинной. Если бы это было так, то он проигрывал бы звук и устанавливал переменную в true, иначе он бы ничего не делал. Когда объекты больше не касаются, переменная будет установлена в false.