Comunidad de diseño web y desarrollo en internet online

ayuda con el sonido urgentemente porfavor

Citar            
MensajeEscrito el 10 May 2005 12:51 am
ante todo gracias por leer el mensaje.
mi problema es que nececito dentro de una funcion controlar ciertos sonidos y de echo me funciona.
la funcion esta establecida con mousemove entonces al producirse el evento que el raton se encuentre dentro de una area especifica
me activa el sonido con my_sound.start();
de echo me funciona pero al mover el raton se siguen produciendo los eventos y el sonido comienza y comenza y comienza que hago?
gracia [email protected]

Por frank

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 10 May 2005 01:39 am
hay millones de maneras para hacerlo de hecho no te sorprendas de que te digan que esa no es la mejor manera de hacerlo, pero como ya lo tienes hecho asi, yo te recomendaria que usaras una bandera o flag, osea, en castellano, declara una variable e inicializala en 0 y antes de darle play al sonido preguntas el valor de la variable si es 0 le das play una vez que hagas eso le pones a esa variable 1 y ya, bueno esa es la solucion mas mala que se me puede ocurrir, lo que tendrias que hacer es dividir las partes que tienen sonido distinto en MC y por cada uno, le colocas onClipEvent(load) y le das play al sonido y al salir(Unload) de el lo paras y colocas el otro y asi, claro tendrais que montar los MC con AS :P bueno espero que te ayude y recuerda que la idea no es hacer las cosas sino hacerlas bien, jeje, claro primero siempren se hacen mal yo q te lo digo :P

Saludos

Por Prozac

SWAT Team

1546 de clabLevel

1 tutorial

Genero:Masculino   SWAT

donde se regresa el viento

firefox
Citar            
MensajeEscrito el 10 May 2005 05:24 pm
Hola.
Soy mas o menos nuevo en este foro, pero creo que puedo darte unos alcances.

A lo que dices del sonido no mencionas si lo estas cargando via AS o si lo tienes insertado en la linea de tiempo.

Tu problema esta en que el sonido esta respondiendo a un evento, en este caso al MouseMove. Es por eso que cada vez que se produce (cada vez que se mueve el mouse) se reproduce el sonido una y otra vez.

Prozac te da una buena idea, podrias usar un Flag para ver si el sonido esta o no ejecutandose. O, si hubieras puesto el sonido en la linea de tiempo deberias ver las propiedades del fotograma en que esta insertado el sonido. Ahí, en la zona Sincronizacion del panel propiedades podrias cambiar de Evento, que es el modo por defecto, a Inicio. Eso podria evitar que se produjera el siguiente sonido hasta que termine el anterior.

De todas maneras seria bueno que explicaras un poco mejor como estas manejando tu funcion.

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox
Citar            
MensajeEscrito el 13 May 2005 12:37 am
gracias por tu ayuda.
mira: el codigo lo tengo dentro de la linea de tiempo y el codigo es una funcion que responde al evento de mousemove.
dentro del script haga una pregunta, la cual es si el mouse se encuentra sobre cierta area me muestre una ventana que sigue al cursor y me reproduce el sonido.si no esta dentro del area detenga el sonido.
de hecho con la ventana me funcionaba perfecto, pero cuando le inserte los sonidos empezaron los problemas. cada vez que se da el evento de moverlo me muestra la ventana y me reproduce el sonido bien cuando detengo el mouse, pero cuando lo sigo moviendo el sonido comienza y se detiene, comienza y se detiene y asi. y fuera de eso la ventanita que sigue al mouse se vuelve lenta. algun consejo: gracias.
oye donde estudiaste flash?

Por frank

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 May 2005 01:03 am
lo del sonido(que empieza se detiene, empieza se detiene) es porque como dice camuss, tienes el inicio del sonido en la accion de mover el mouse, y como te podras haber imaginado cada vez que mueves el mouse se ejecutan esas instrucciones lo que tienes que hacer es que se ejecute el play del sonido una sola vez,

¿como?
con la bandera que antes te mencione, 0 cuando este fuera del area que mencionas luego preguntas si es igual a 0, dentro de la accion de movimiento del mouse, y dentro del if le cambias el valor a 1 y le das play al sonido, esto te garantiza que solo lo hace la primera vez que el mouse entre a esa area

claro esto si es un solo sonido por area....

Saludos 8)

Por Prozac

SWAT Team

1546 de clabLevel

1 tutorial

Genero:Masculino   SWAT

donde se regresa el viento

firefox
Citar            
MensajeEscrito el 13 May 2005 02:28 am
y nada que me da:
he aqui la parte del codigo a ver si entienden mi inquietud mejor.

_root.onMouseMove = function()
{
sonido1.stop();

this.mensaje._alpha=0;
this.mensaje.txt.text=" ";

if (_root.area1.hitTest(this._xmouse,this._ymouse))
{
this.mensaje._alpha=100;
this.mensaje.txt.text="avenida las vegas";
_root.mensaje._x=this._xmouse;
_root.mensaje._y=this._ymouse;
sonido1= new Sound()
sonido1.attachSound("carro");
sonido1.start();
}



updateAfterEvent();
}

Por frank

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 May 2005 02:33 am
asi quedaria tu codigo

frank escribió:



bandera_sondido=0; //esto lo puedes colocar al principio de la pelicula

_root.onMouseMove = function()
{
sonido1.stop();

this.mensaje._alpha=0;
this.mensaje.txt.text=" ";

if (_root.area1.hitTest(this._xmouse,this._ymouse))
{
this.mensaje._alpha=100;
this.mensaje.txt.text="avenida las vegas";
_root.mensaje._x=this._xmouse;
_root.mensaje._y=this._ymouse;
if(bandera_sondido==0){
sonido1= new Sound()
sonido1.attachSound("carro");
sonido1.start();
bandera_sonido=1;
}
}

updateAfterEvent();
}


prueba y nos dices como te fue

Saludos......

Por Prozac

SWAT Team

1546 de clabLevel

1 tutorial

Genero:Masculino   SWAT

donde se regresa el viento

firefox
Citar            
MensajeEscrito el 13 May 2005 02:47 am
mejoro en el aspecto de que no se siente el sonido repita y repita pero igual al momento de seguir moviendo el mouse sobre esa area se para el sonido y al momento se vulve a reproducir.
en sintesis lo que necesito es que cuando este sobre esa area me reprodusca el sonido una sola vez mientras estoy en esa area asi este moviendo el mouse sobre ella y que no me pare la reproducion del sonido al mover el mouse sobre el area, que solo la detenga cuando este fuera de esa area. gracias

Por frank

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 May 2005 03:32 am
el primer problema esta en movemouse

si kieres ke se escuche un sonido kuando el mouse se enkuentre en un area especifica solucionalo kolokando la pelicula dentro de un boton son el comando komo on (rollOver) {
mysound.start()
}
para solucionar el problema, esto hara ke el MC no pierda sus propiedades por ke solo esta dentro de un boton ke solo se destinguira de ser un boton al poner el mouse ensima y ke kambie el cursor pero la solucion es practika si esto realmente te urge

Por revo

68 de clabLevel



 



Ultima edición por revo el 13 May 2005 10:32 pm, editado 2 veces

Guadalajara, Mexico

msie
Citar            
MensajeEscrito el 13 May 2005 03:55 am
Hola Frank, mira he revisado el codigo y pues mira, mas o menos lo veo mejor de esta manera:

Código :

sonido1= new Sound();                //Aca inicio el sonido es mejor
sonido1.attachSound("carro");

var activado:Boolean=true;            //Esta es mi Flag, podria ser otra

_root.onMouseMove = function(){
   
   if (_root.area1.hitTest(this._xmouse,this._ymouse)){
      this.mensaje._alpha=100;
      this.mensaje.text="avenida las vegas";
      _root.mensaje._x=this._xmouse;
      _root.mensaje._y=this._ymouse;
            
      if (activado){                //Pregunto por el Flag asi sé
           sonido1.start();      //si el sonido ya se ha producido
           activado=false;      //de ser asi, lo desactivas 
      }

   }else{                                //cuando salgas del area1
      activado=true;           //se vuelve a activar el sonido
      this.mensaje._alpha=0;
      this.mensaje.text=" ";
   }

}


fijate que corregi lo siguiente

this.mensaje.txt.text="avenida las vegas";


debe decir:

this.mensaje.text="avenida las vegas";


Aqui en mi PC cada vez que entro en el area 1 se ejecuta el sonido 1 vez y ya. Asi mueva el mouse ya no se reproduce a menos que salga de la zona area1...


No es necesario que coloques el updateAfterEvent() ya que este solo se aplica a funciones con onClipEvent() o eventos generados por setInterval.

En fin, trate de encontrar una manera de que se reprodujera el sonido por completo y si seguias moviendo el mouse se reprodujera otra vez, pero no me ha salido...no hay mucho tiempo. pero creo que seria determinando el tiempo total de duracion asi sabrias cuando termina y en base a eso...volver a activar el sonido...
En fin, lo pruebo este fin de semana y te digo despues...


Que el AS te acompañe...

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.