Comunidad de diseño web y desarrollo en internet online

Reproductor que funciona, ¡¡excepto la barra!!

Citar            
MensajeEscrito el 28 Abr 2007 11:23 pm
:(
Estoy muy triste, porque no se porque no me funciona con unos y con otros si la barra de mi reproductor...

Yo tengo un SWF Madre. En el que pongo botones con el nombre de la canción, y al presionar sobre ellos..
cargo en un clip vacio, el reproductor de dicha canción...
HASTA AHÍ FENOMENAL... porque me sale...

Cuando creo un reproductor de canción lo hago así...
Imaginemos que quiero crear el reproductor de una cancion llamada "Pozi" :lol:

En un swf nuevo, importo el sonido POZI. Y lo exporto a action script con nombre "Sonido" en la vinculacion

Creo 6 capas:
La primera capa (la de arriba del todo) la llamo: Acciones
La segunda: Botones
La tercera: Marcador
La cuarta: Barra
La quinta: BarraFija
La sexta: Fondo

En los primer frames de TODAS las capas, no pongo nada, excepto en la de Acciones que pongo esto:

Código :


Sonido = new Sound();
Sonido.attachSound("Sonido");
_root.parado = true;
_root.pausado=false;
_root.paradoen=0;
_root.adelanterapido=false;
_root.atrasrapido=false;
_root.saltorapido=600;


En la capa Botones, creo 5 botones.
play,pause,stop,rratras y rradelante
y en las acciones de estos botones inluyo esto.

BOTON PLAY:

Código :


on (press) {
if (_root.parado) {
_root.Sonido.start();
_root.parado = false;
_root.pausado = false;
}
else
if (_root.pausado)
{
_root.pausado = false;
_root.Sonido.start(_root.paradoen/1000);
}
}



BOTON STOP:

Código :


on (press) {

_root.Sonido.start();
_root.Sonido.stop();

_root.paradoen = 0;
_root.pausado = false;
_root.parado = true;

}



BOTON PAUSE:

Código :


on (press) {
if ((not _root.parado) and (not _root.pausado)){
_root.paradoen = _root.Sonido.position;
_root.Sonido.stop();
_root.pausado = true;
} else 
if (_root.pausado)
{
_root.pausado = false;
_root.Sonido.start(_root.paradoen/1000);

}
}



EN RRATRAS PONGO ESTO:

Código :


on (press,release) {

if (_root.atrasrapido)
_root.atrasrapido=false;
else 
_root.atrasrapido=true;


}
on(ReleaseOutside) {
_root.atrasrapido=false;

}



Y POR FIN EN RRADELANTE PONGO:

Código :


on (press,release) {

if (_root.adelanterapido)
_root.adelanterapido=false;
else 
_root.adelanterapido=true;


}
on(ReleaseOutside) {
_root.adelanterapido=false;

}



EN EL FRAME donde puse los botones, osea, el 2frame de la capa botones. pongo esto como acción.

Código :


if (_root.adelanterapido)
{
trace(_root.Sonido.position);

temp = _root.Sonido.position;
temp = temp+_root.saltorapido;
_root.Sonido.stop();
_root.Sonido.start(temp/1000);
_root.parado=false;
_root.pausado=false;

}

if (_root.atrasrapido)
{
trace(_root.Sonido.position);

temp = _root.Sonido.position;
temp = temp-_root.saltorapido;
_root.Sonido.stop();
_root.Sonido.start(temp/1000);
_root.parado=false;
_root.pausado=false;

}



Y EN EL SEGUNDO FRAME, de la capa ACCIONES. Pongo esto como acción: Porque llamé al frame 2 de Botones con instancia "inicio"

Código :


gotoAndPlay("inicio");



Y ahora viene mi duda, porque estoy que me vuelvo locaaaaaaaaaaaaa
Porque yo los botones del reproductor me funcionan perfectamente, es más podeis comprobarlo aqui (aunq tarda un poco en cargar):

pero la barra de posicionamiento NO ME FUNCIONAAAAA

Se supone que se hace de esta manera segun dice un tutorial perdido por
ahí que encontré (pero no me ha salido):



Ahora vamos a hacer una barra que se situe donde vaya la reproducción, avanzando conforme avanza esta.

Para ello, creamos dos nuevas capa (Capa BARRA y Capa BarraFija) , y en ellas ponemos dos rectángulos,en la de arriba uno gris(el color será indiferente, pues será una máscara) y en la de abajo uno verde, uno será el que se mueve, y tapará al otro, que permanecerá estático detrás de él, para ello nos ponemos en la capa de arriba, la del gris y la transformamos en mask(máscara).
También creamos una capa con un rectángulo dibujado, encima de estas, para que le de un borde a nuestra barra de progreso.
Transformamos en objeto movieclip la barra gris, que será la que necesite moverse, y le llamamos barra.
Inicializamos la pos de la barra, y lo ponemos en las acciones de la primera capa, junto con el resto de inicializaciones:

Código :


_root.barraini_x=-220.7; //Cambia el número segun tu coloques la barra
_root.barraini_y=206.4;//Cambia el número segun tu coloques la barra
_root.barra._x=-220.7;//Cambia el número segun tu coloques la barra
_root.barra._y=206.4;//Cambia el número segun tu coloques la barra
 


La barra se tendrá que situar siempre en corcondancia con la posición del sonido, por lo tanto, en las acciones de la capa donde está la barra ponemos:

Código :

_root.barra._x= (_root.barraini_x + _root.barra._width/2) + (_root.Sonido.position/_root.Sonido.duration)*_root.barra._width;






Esto significa:

(_root.barraini_x + _root.barra._width/2) situa la posición de partida de la barra.
(_root.Sonido.position/_root.Sonido.duration) es el porcentaje que se lleva de canción
(_root.Sonido.position/_root.Sonido.duration)*_root.barra._width la duración de la canción normalizada.

Por último, haremos que podamos marcar en la barra donde queremos situarnos en la canción, para ello crearemos un botón partiendo del rectángulo del fondo, pero lo situaremos en una capa por encima, y lo volveremos invisible(alpha a 0).

En las actions de ese botón, escribimos:

Código :


on(press){
_root.Sonido.stop();
porcentajeenelboton= (_root.marcador._xmouse + _root.marcador._width/2)/_root.marcador._width;
_root.Sonido.start((porcentajeenelboton*_root.Sonido.duration)/1000);
}






porcentajeenelboton nos valdrá para averiguar en que porcentaje del sonido se tiene que situar, como observación, si hacemos un ._xmouse sobre un objeto, el resultado serán posiciones relativas a este objeto, como las coordenadas 0,0 del objeto están en su centro tendremos que arreglárnoslas para pasarlo a formato 0..tamañodelobjeto, lo que conseguimos con _root.marcador._xmouse + _root.marcador._width/2




:( POR FAVOR AYUDENMEEEEE
os dejo aqui mi fla, para que lo reviseis(pesa un poco, porque tiene una cancion gordota... para qe veais que se puede Rebobinar y ni se ve la barrita ni nada)... porque quizas es que no se poner las coordenadas de mi mascara bien, y por eso no furula..... Porfiiii Porfiiiii


http://alanis.unlugar.com/reproduce_gente.fla

Por SadlyMistaken

104 de clabLevel



 

msie
Citar            
MensajeEscrito el 29 Abr 2007 02:02 am
:D :D :D :D

Ya lo solucioné!!!!
Era efectivamente lo de la mascara que no habia puesto bien las coordenadas JAJAJA
y bueno, tb que al marcador no le habia puesto el nombre de instancia

jajajaja QUE GARRULA SOY :lol:

Por SadlyMistaken

104 de clabLevel



 

msie

 

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