Tu botón
ON tiene:
Código :
on (release)
{
sonido = new Sound();
sonido.loadSound("santo.mp3", false);
sonido.start(0, 17);
gotoAndPlay(17);
}Tu botón
Off tiene
Código :
on (release)
{
stopAllSounds();
gotoAndStop(36);
}Y en tu primer frame tienes:

Código :
sonido = new Sound();
sonido.loadSound("santo.mp3", true);
sonido.start(0, 1);
sonido.onSoundComplete = function ()
{
sonido.start(0, 1);
};La ayuda de Flash dice:
-----------------------------------------------------------------------------------
Sound.loadSound()
Disponibilidad
Flash Player 6.
Sintaxis
my_sound.loadSound("url", isStreaming)
Parámetros
url Ubicación de un archivo de sonido MP3 en un servidor.
isStreaming Valor booleano que indica si el sonido es un flujo de sonido (true) o un sonido de evento (false).
Valor devuelto
Ninguno.
Descripción
Método; carga un archivo MP3 en un objeto Sound. Puede utilizar el parámetro isStreaming para indicar si el sonido es de evento o de flujo.
Los sonidos de evento se cargan completamente antes de reproducirse. Los gestiona la clase Sound de ActionScript y responden a todos los métodos y las propiedades de esta clase.
Los sonidos de flujo se reproducen mientras se descargan. La reproducción empieza cuando se han recibido suficientes datos para iniciar el descompresor.
Todos los archivos MP3 (de evento o flujo) cargados con este método se guardan en la memoria caché de archivos del navegador del sistema del usuario.
Ejemplo
En el ejemplo siguiente se carga un sonido de evento:
my_sound.loadSound( "http://serverpath:port/mp3filename", false);
En el ejemplo siguiente se carga un sonido de flujo:
my_sound.loadSound( "http://serverpath:port/mp3filename", true);
Véase también
Sound.onLoad
Sound.onLoad
Disponibilidad
Flash Player 6.
Sintaxis
my_sound.onLoad = function(success){
// las sentencias se escriben aquí
}
Parámetros
success Valor booleano true si my_sound se ha cargado correctamente; de lo contrario, tendrá el valor false.
Valor devuelto
Ninguno.
Descripción
Controlador de eventos; se invoca automáticamente cuando se carga un sonido. Debe crear una función que se ejecute cuando se invoque este controlador. Puede utilizar una función anónima o una función con nombre (para obtener un ejemplo, véase Sound.onSoundComplete). Debe definir este controlador antes de llamar a my_sound.loadSound().
---------------------------------------------------------------------------------
Sound.start()
Disponibilidad
Flash Player 5.
Sintaxis
my_sound.start([secondOffset, loop])
Parámetros
secondOffset Parámetro opcional que permite iniciar la reproducción del sonido en un momento específico. Por ejemplo, si tiene un sonido de 30 segundos y desea que el sonido comience a reproducirse a la mitad, especifique 15 en el parámetro secondOffset. El sonido no se retrasa 15 segundos, sino que comienza a reproducirse en la marca de 15 segundos.
loop Parámetro opcional que permite especificar el número de veces que debe reproducirse el sonido de manera consecutiva.
Valor devuelto
Ninguno.
Descripción
Método; comienza a reproducir el último sonido asociado desde el principio, si no se especifican parámetros o desde un punto determinado del sonido especificado por el parámetro secondOffset.
Véase también
Sound.stop()
Sound.stop()
Disponibilidad
Flash Player 5.
Sintaxis
my_sound.stop(["idName"])
Parámetros
idName Parámetro opcional que especifica que se detenga la reproducción de un sonido concreto. El parámetro idName debe escribirse entre comillas (" ").
Valor devuelto
Ninguno.
Descripción
Método; detiene todos los sonidos que se están reproduciendo actualmente si no se especifican parámetros o solamente el sonido especificado en el parámetro idName.
Creo que si ya declaraste en tu primer frame:
sonido = new Sound();, en tu botón
On no es necesario volverlo a declarar, si estoy mal corríjanme por favor.
Ahora, no sé si eso tenga que ver con que esté funcionando mal, pero haz la prueba y ya nos cuentas.