Comunidad de diseño web y desarrollo en internet online

Problema con sonido desde swf externo

Citar            
MensajeEscrito el 15 Feb 2006 12:30 pm
Me he creado, a partir de un tutorial, una especie de reproductor de música con su volumen incluido. Funciona a pedir de boca, pero cuando lo meto dentro de otra película, en particular dentro de un símbolo no hay forma de que suene.

Necesito cargar muchas canciones, por eso quiero que cada una vaya en un swf independiente. Igual la solución pasa por no poner el control de volumen en cada canción, si no un control de volumen en la película principal ¿Alguien sabe como hacer esto?

También he probado a cargarlo en la peli principal de alguna forma más sencilla, pero ya en el level 1 deja de funcionar: carga todo, pero el sonido no se oye. Sólo se oye si se carga en el level 0.

Os dejo el código.

Este es el del primer fotograma:

Código :

this._lockroot = true;
myMusic = new Sound();
myMusic.attachSound("myMusic01");
myMusicVolume = 100;
myMusic.setVolume(myMusicVolume);
   myMusic.start(0, 1);
   sonando = true;
play_mc.onRelease = function() {
   if (sonando == false) {
      sonando = true;
      myMusic.start(0, 1);
   }
};
stop_mc.onRelease = function() {
   if (sonando == true) {
      sonando = false;
      stopAllSounds();
   }
};


Y este es el código que tiene el símbolo con el que controlo el volumen:

Código :

onClipEvent (load) {
   left = (_root.hslider._x);
   top = _root.base._y+1;
   right = (_root.hslider._x)+136;
   bottom = _root.base._y-1;
   volCalc = _root.hslider._x-hslider._width/2;
   _root.hslider._x = _root.base._x;
}
onClipEvent (mouseDown) {
   startDrag(this, false, left, top, right, bottom);
}
onClipEvent (mouseUp) {
   this.stopDrag();
}
onClipEvent (enterFrame) {
   sliderx = _root.hslider._x;
   myMusicVolume = (sliderx-volCalc)/2;
   _root.myMusic.setVolume(myMusicVolume);
   _root.currentVolume = _root.myMusic.getVolume();
}


Muchas gracias

Por luisfiction

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 15 Feb 2006 05:45 pm
El problema creo que esta en que cuando usas _root, haces referencia a un objeto situado directamente situado en la raiz:

cuando cargas tu reproductor de pelicula individualmente, y haces referencia al _root.<elementosReproductor>, no hay problema, pero cuando llamas este reproductor dentro de otra pelicula entonces deberas usar algo como _root.<peliculaQueCargaElReproductor>.<elementosReproductor>.

tambien puedes usar _parent, que hace referencia al objeto padre que llamo la pelicula.

Por diegoluisr

35 de clabLevel



 

Armenia, Quindio

firefox
Citar            
MensajeEscrito el 15 Feb 2006 06:15 pm
Muchas gracias! Pero me temo que no sé lo suficiente de action script. Ya te digo que el código que he usado lo he sacado de un tutorial. ¿Me podrías decir exactamente que tengo que cambiar? Muchas gracias de nuevo!

Por luisfiction

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 15 Feb 2006 06:37 pm
Bueno...

revisando bien el codigo me di cuenta que en la primera linea:

Código :

this._lockroot = true;

lo que hace es decirle a la pelicula que carga que todas las llamadas al _root son locales; o sea, que cuando se llame _root.<elementoDelReproductor>, se haga al _root local y no al global (a la pelicula cargada).

Dejeme yo miro bien el codigo.

Por diegoluisr

35 de clabLevel



 

Armenia, Quindio

firefox
Citar            
MensajeEscrito el 15 Feb 2006 06:41 pm
Jo, de verdad que muchas gracias!!! Llevo dos semanas desesperado sin saber como resolverlo.

Un saludo!!

Por luisfiction

1 de clabLevel



Genero:Masculino  

msie

 

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