Hola
Es algo simple de hacer, simplemente necesitas hacer una simple regla de tres para saber el porcentaje de distancia de la barra al incio de moviento para saber cuanto volumen aumentar o disminuir
Veamos:
Supongamos que queremos hacer una barra de volumen horizontal. Tenemos un boton que sirvira de barra y a la cual podremos desplazar. Pongamosle que la posicion inicial es 250 y la final 390 sobre el eje x, el valor del eje y siempre es el mismo ya q el movimiento es horizontal, supongamos q ese valor es 100.
Varmos a inicializar las variables que necesitamos
Código :
var inicio:Number = 150; //posicion inicial del movimiento
var fin:Number = 390; //posicion final del movimiento
var desplazamiento:Number = (fin - inicio) - barra._width; //cantidad de desplazamiento que puede realizar la barra, que en verdad es la distancia entre los dos puntos
var posY:Number = 100; //posicion en y de la barra
Ahora vamos a hacer que podamos desplazar la barra, y para ello usaremos startDrag y stopDrag
Código :
barra.onPress = function(){
this.startDrag(false, inicio, posY, fin-this._width, posY);
}
barra.onRelease = barra.onReleaseOutside = function(){
this.stopDrag();
}Fijate q en el anteultimo valor del startDrag ponemos "fin - this._width". Esto lo hacemos para que la barra no se vaya afuera de la guia que le dimos... o sea... si tenemos un espacio de 200 pixels para poner la barra, entonces el espacio "real", es de 200 menos el ancho de la barra, sino, al llegar al final la barra va a sobresalir y se solapara con otros elementos que haya en ese lugar.
Bueno, ya casi lo tenemos... ahora vamos hacer los calculos y veamos el codigo completo
Código :
var inicio:Number = 150;
var fin:Number = 390;
var desplazamiento:Number = (fin - inicio) - barra._width;
var posY:Number = 100;
barra.onPress = function(){
this.startDrag(false, inicio, posY, fin-this._width, posY);
this.onEnterFrame = function(){
porc = ((this._x - inicio) * 100) / desplazamiento;porc = (pos * 100) / desplazamiento;
_root.miMusica.setVolume(porc);
}
}
barra.onRelease = barra.onReleaseOutside = function(){
this.stopDrag();
delete this.onEnterFrame;
}Como veras, lo que hicimos fue q mientras estes desplazando la barra se calcule por medio de un enterframe el porcentaje de distancia que hay desde la posicion actual de la barra a su posicion inicial.
Espero q te sirva
Bye!