Comunidad de diseño web y desarrollo en internet online

HSlider como línea de tiempo (minutos y segundos)

Citar            
MensajeEscrito el 12 Jun 2009 10:16 am
Wenasss cristalaberos! :P
Estoy realizando como una especie de línea de tiempo, para ello pensé que el componente HSlider era ideal y me facilitaría mucho las cosas; sin embargo, este control tiene establecido el sistema decimal como medida, es decir que entre el valor 0 y el valor 1 con una precisión de 0.01 habría 100 divisiones entre los dos valores... es decir:
0, 0.01, 0.02 ...... 0.98, 0.99, 1

Al querer representar el tiempo, necesito que entre el valor 0 y el valor 1, con una precisión de 0.01 hubiese 60 divisiones es decir:
0, 0.01, 0.02 ..... 0.58, 0.59, 1

De esta manera podría obtener los datos que quiero, como por ejemplo: minuto 1 y 50 segundos, minuto 3 y 10 segundos... etc.
He estado mirando los atributos del componente HSlider y no he encontrado ninguno que me permita realizar este cambio... así que me pregunto ¿existe? ¿hay alguna manera de hacer esto que describo?

Si la respuesta es NO. Lo único que se me ocurre es poner 2 controles HSlider, uno que me marque los minutos y otro que me marque los segundos... Algo un tanto feo, pero...

Gracias una vez mas!
Un saludete a todos!

Por Kárites

25 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Jun 2009 10:41 am
Sip, el HSlider usa la escala decimal y eso no es una propiedad customizable hasta donde se. Lo que se me ocurre es que ocultes la info que brinda automáticamente el slider y que manipules manualmente el toolTip para hacer la conversión por ti mismo ... o puedes mostrar la info en un campo de texto con una función auxiliar que convierta de segundos a hora:minuto:segundos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Jun 2009 10:45 am
ummm... gracias por los aportes! miraré eso de las conversiones que creo que tiene chicha :)

Por Kárites

25 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Jun 2009 10:59 am
Aquí usa la propiedad "dataTipFormatFunction" para llamar a una función que devuelve un valor en función de lo que marque el Slider -en el ejemplo sólo lo usa para poner "mínimo precio", no sé si servirá que tu slider marque segundos y en la función mostrar esos segundos como minutos:segundos

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Jun 2009 11:25 am
Gracias Eliseo! Era por ahí por donde estaba mirando.

Os explico lo que he hecho y lo dejo puesto por si a alguien le sirve en un futuro.
He hecho una linea de tiempo de 40 minutos (para un partido de baloncesto), así que esos 40 min = 2400 segundos que es lo que he puesto en el HSlider y he puesto el cickInterval cada 60 segundos (1 min):

Código Flex :

<mx:HSlider id="lineaTiempoSlider" y="20" minimum="0" maximum="2400"
value="0" width="100%" snapInterval="1" tickInterval="60" 
labels="['0 min.' , '10', '20', '30', '40 min.']" dataTipFormatFunction="cambiarDataTip" 
showTrackHighlight="true" dataTipStyleName="EtiquetaSlider"
change="lineaTiempoChange();"/>


La función para cambiar el Tip es la siguiente:

Código ActionScript :

private function cambiarDataTip(valor:String):String{
   var valor_num:int;
   var resto_division:int;
   var valor_final:String;
            
   valor_num = int(valor);
   resto_division = valor_num % 60;
   valor_num = valor_num / 60;
                        
   valor_final = "" + valor_num.toString() + "min " + resto_division.toString() + "seg";
            
   return valor_final;
}


En esta función hago las cuentas pertinentes para poder obtener la medida en minutos y segundos.
¡¡ SOLUCIONADO !!
Gracias chicos!

Por Kárites

25 de clabLevel



 

msie8
Citar            
MensajeEscrito el 26 Abr 2010 01:41 pm
:o Saludos a todos!!!
He estado viendo todos lo que han planteado sobre la propiedad del slider (dataTipFormatFunction), pero me asalta la duda de que aquí hacen referencia a ella solamente dentro del archivo del mxml de la aplicación y yo lo que realmente quiero es hacer algo similar a lo que ustedes han comentado aquí, pero desde una clase, o sea, trabajar con las propiedades del slider desde una pequeña clase que me permita visualizar lo mismo que si lo hiciera desde el mxml. ¿Es realmente posible hacer eso?¿Se trabaja con la misma propiedad?¿O hay que utilizar algún evento?
Les pregunto esto porque he tratado de hacerlo y me da el siguiente error:
error 1067: Conversión implícita de un valor de tipo String a un tipo Función no relacionado.
:cool:

Por S@UL

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Abr 2010 02:00 pm
El error "suena" a que has puesto entre comillas una función y debe ser sin comillas o que se te han olvidado los paréntesis al final de la función.

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2010 12:54 am
:D ...... gracias era eso que me decías, el problema era que le ponía las comillas..........muchas gracias.

Ahora tengo otra duda y es: ¿Es posible modificar el un slider utilizando imágenes u otras formas?, porque lo que quiero hacer es cambiar el tringulito que sale por otra figura si es posible, y también quisiera que la línea fuera un poco más ancha.

Gracias a todos por su ayuda!!!!!!!! :lol:

Por S@UL

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2010 07:32 am
En FlexExamples tienes bastantes ejemplos de cómo "customizar" un HSlider
En concreto, lo de cambiar el "icono" está aquí
Lo del "ancho" de la línea no he encontrado el modo. No sé si será la mejor opción, y se pueda hacer mediante "horizontalGradientMatrix, pero ya te digo que ni idea :(

Por Eliseo2

710 de clabLevel



 

firefox

 

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