estoy preparando desde hace unos dias un reprodutor de fotos/videos con mis propios controles en el flash 8. luego pensaba dejarlo como un tutorial para que otros que lo necesiten como yo, puedan usarlo. el tema es que lo estoy haciendo en un archivo SWF a parte, para despues sencillamente crear un MC desde cualquier otro SWF y montarlo encima, teniendo un reproductor funcional en cuestion de segundos con tus propios controles, teniendo solo que cambiar los diseños de los MC's que hacer de botones, etc...
el tema es que he conseguido que funcione casi a la perfeccion, menos un par de cositas que hay que pulir como los loader y una cosita de mi seekbar (que cuando presionas sobre ella, tines que hacer un click mas o menos prolongado para que te vaya a la reproduccion de ese punto, si das un click rapido no lo pilla y tambien que funciono con porcentajes y entonces, el redondeo da lugar a errores...pero todavia no se como resolver estos problemas)
el tema es que funciona cuando lo ejecuto, pero cuando lo llamo desde otro archivo externo, carga todo menos el movimiento del controlSlider, que no lo mueve...puedo arrastrarlo y la pelicula se reproduce en el punto donde este el control, pero no se mueve...solo reproduce y creo que el problema esta en que uso un Tween para hacer el movimiento y desde el archivo que lo carga no funciona correctamente, aun usando posiciones relativas a los demas obejtos del reproductor...
aqui os pego el codigo de esa parte a ver si veis donde esta ese fallo
la parte del Tween es al final, si no quereis, no hace falta que os leais el resto.
si alguien quiere probarlo en u archivo propio, deberia crear a mano los componentes que utilizo, como los botones, los controles, el reproductor FLV, etc...
Código :
//BIBLIOTECAS IMPORTADAS
import mx.transitions.Tween;
import mx.transitions.easing.*;
import mx.video.*;
Stage.scaleMode="exactFit";
btn1_1.enabled=false;
currentPos = 15;
draggin=false;
//utilizo una variable video_tmp para por si quiero poder reproucir varios videos, usar una combo o lo que sea
//para navegar por los distntos videos, luego llamarlo video_tmp al video seleccionado y a correr
video_tmp="videos/Don_t_get_drunk_by_the_pool.flv"
video.autoPlay = false;
video.contentPath = video_tmp;
//play
btn1.onPress = function() {
video.play();
btn2._x=btn1._x;
btn1._x+=500;
btn1_1.enabled=true;
mcfotos.enabled=false;
};
//stop
btn1_1.onPress = function() {
video.stop();
btn1_1.enabled=false;
btn1._x=70;
btn2._x+=500;
currentPos=15;
};
//pausa
btn2.onPress = function() {
video.pause();
btn1._x=btn2._x;
btn2._x+=500;
mcfotos.enabled=true;
XcontrolSlider=controlSlider._x;
};
controlSlider.onPress = function() {
controlSlider.startDrag(false,barraSlider._x,this._y,barraSlider._x+barraSlider._width,this._y)
draggin=true;
}
controlSlider.onRelease = function() {
controlSlider.stopDrag();
draggin=false;
video.seekPercent(xPorcentaje);
}
controlSlider.onReleaseOutside = function() {
controlSlider.stopDrag();
draggin=false;
video.seekPercent(xPorcentaje);
}
barraSlider.onRollOver = function(){
barraSlider._alpha=90;
}
barraSlider.onRollOut = function() {
barraSlider._alpha=30;
}
barraSlider.onPress = function() {
draggin=true;
//controlSlider._x = _root._xmouse;
}
barraSlider.onRelease = function() {
draggin=false;
controlSlider._x = _root._xmouse;
xPorcentaje=(controlSlider._x*100)/255;
video.seekPercent(xPorcentaje);
}
video.onEnterFrame = function() {
//aqui vamos a llevar al video a la parte donde se ha arrastrado el control
//lo vamos a hacer con procentajes, calculando el porcentaje de la x de la barra donde se ha parado el
//control y aplicandolo al porcentaje del video (255=x_inicio+longitud_barra)
//255 ---------------------- 100%
//controlSlider._x --------- X%
// =>x=(controlSlider*100)/255;
xPorcentaje=(controlSlider._x*100)/255;
if (video.state=="stopped")
{
if (reproducido==true)
{
btn1._x=70;
btn2._x+=500;
}
controlSlider._x=barraSlider._x;
mcfotos.enabled=true;
currentPos=15;
}
if (video.state=="playing")
{
reproducido=true;
//el tamaño que hay que sumarle al controlSlider lo divido entrer 10 al igual que el tiempo del tween
//porque asi tengo un control sobre el cada decima de segundo y si quiero pausarlo, el control se detiene,
//como mucho, una decima de segundo despues de que haya presionado el boton
//cree la variable draggin porque si no no me deja arrastrar el controlSlider a lo largo de la barra
if (draggin==false)
new Tween(controlSlider, "_x", None.easeNone, controlSlider._x, controlSlider._x + ((barraSlider._width/video.totalTime)/10), .1, true);
}
};muchas gracias por adelantado
atentamente
maije
