Punksolid Tecnologia, Curiosidades, Sistemas de Informacion y un poco de Religion

11sep/0810

Hacer Medidor de Bateria en Flash Lite

Ayer experimentando con flash lite, empezé a cureosear entre las funciones sobre el celular que trae flash lite, y encontré el medidor de bateria entre otras cosas, buscando el funcionamiento de la función fscommand2("GetBatteryLevel");

Encontré un tutorial que explicaba como hacer un medidor de bateria (En ingles), y lo hice, así que explico como hacerlo.

1.- Primero creamos el archivo en File/New/Templates/Global Handsets/Nokia S60 240x320

Luego creamos un movie clip vacio (Ctrl + F8) y ponemos los keyframes que vayamos a utilizar, en mi caso puse 9.

En cada keyframe ponemos una animación a nuestro gusto, en todos los ejemplos ponen baterías, pero a mi se me antojó poner un monito que fuera cayendo conforme baja el nivel de batería,

Nuestros dibujos van a ser de menor a mayor batería, en otras palabras el primer frame el mono en la posición mas cansada y en el ultimo frame en la posición mas enérgica.

Dentro del movie clip monitos yo puse mas movie clips para ponerle animación mas interesante, como el Ki y una especie de respiración, el Ki lo hice en un movie clip con 3 frames y la respiración con un tween shape, es el único frame al que le puse mas movie clips y solo fue para darle mas vida al personaje.

2.- Nos vamos al Scenario y arrastramos desde la librería (Ctrl + L) hacia el scenario el movie clip del monito, tiene que estar seleccionado el layer del action script.

3.- En la pestaña de properties debemos poner el nombre de instancia del monito para poder manejarlo desde el action script, yo lo llamé "monito_mc".

4.- Con F9 abrimos el recuadro de Actions donde va insertado el siguiente codigo

/*Está linea se pone por default y es para poner a pantalla completa el flash*/
fscommand2("FullScreen",true);
/*Debemos sacar el nivel de bateria, en escala decimal ya que no todas las baterias duran lo mismo siempre para eso ocupamos el nivel de bateria actual.*/
current = fscommand2("GetBatteryLevel");
 
/*Y el nivel máximo de batería que puede alcanzar el celular*/
max = fscommand2("GetMaxBatteryLevel");
 
/*Dividimos el nivel actual de bateria entre el maximo 
y nos dará un valor decimal del 0 al 1*/
currentRatio = current / max;
 
/*En currentFrame multiplicamos el decimal por el numero de frames del movieclip para determinar en cual frame está, pero ocupamos convertirlo a int por que los frames son enteros y asi eliminamos los decimales*/
currentFrame = int(currentRatio * monito_mc._totalframes);
 
/*Con tellTarget decimos que monito avance y se detenga según el resultado de currentFrame*/
tellTarget ("monito_mc") {
gotoAndStop(/:currentFrame);
}

5.-Agregamos un frame normal en el layer actionscript para que no corra como si fuese animación.

6.-Creamos el movieClip (Ctrl + Alt + Shift + S) y lo guardamos en el celular, no es necesario moverle a las propiedades del Flash Lite.

Desconozco los limites de flash lite y es mi primera practica en el, y no sé que tantos movie clips, tweens son los máximos, pero estos han funcionado en mi celular Nokia 6300.

Código fuente final monito-bateria.fla

Respondo dudas

Talvez te interese leer

Comentarios (10) Trackbacks (0)
  1. 0ola shema:
    0orale ehhh este blog esta muy interesante tienes muy buena informacion y novedades.. no habia tenido el gusto de pasar a visitarlo pero de verdad vale la pena….me parecen muy buenas tus aportaciones como este del medidor de bateria ke la verdad cuando dijiste de eso se me hizo un poco loco y hasta me paso por la mente ke no lo harias pero de ayer a hoy ahora si ke como dicen “me tapaste la boca” jajajajaja y lo mejor de todo es que eres de las personas que comparten sus conocimientos…sigue asi shema yo se ke llegaras lejos y espero ir de tras de ti jejejejeje =) sale poes nos tamos viendo… ke tes bien

  2. jahjah ahh pinche chema y tus ideas ajhajah chingon y simple w.
    Saludos.

  3. Hola, como seria el script para FlashLite 3.0??

    gracias!

  4. Yo sé una cosa. Estoy utilizando el Flash Lite 2.1 y el siguiente error se produce:
    gotoAndStop(/:currentframe) – “Unexpected’/'encontered”
    ¿Me pueden ayudar?

  5. Ya probaste quitándole la diagonal?, en estos momentos no puedo probarlo, pero te aseguro te respondo pronto.

  6. gracias lo estaba buscando y solo veia lo ke los demas hacian pero no compartian

  7. Que bueno que te haya servido Oliver

  8. Hola, estoy intentando hacerlo en ActionScript 2 y Flashlite 3 y me da error en la linea /:currentFrame

    Lamentablemente google no indexa /: por lo que googleando no hay nada XD…

    Debe de ser un cambio entre la version 1 y la 2 del actionscript…
    Ayuda por favor :D

  9. Hola Ciro:
    La verdad es que no se lo suficiente de action script para explicarte esa parte, pero con seguridad se que te la puedes brincar y hacer tu propio algoritmo ya que ese no funciona, este programa tiene un pequeño bug, en el que cuando la batería está casi nula, la animación se repite infinitamente. Eso se debe a que el celular maneja 3 estados de batería 33 66 99 y 100 o algo similar. Ya ni tengo instalado windows para poder ayudarte.

  10. que tal camarada vaya pense que esto era mas dificil de lo que parecia jejej excelente te felicito mejor explicado no pudo haber estado,olle abusando de tu confianza podiras explicar uno de como hacer wallpapers flash con track id para los telefonos sonyericsson ??? en flashlite 1.1 o 2.1 ??? veo que sabes de esto y te estaria demaciado agradecido si me explicas como hacerlo o bien un tutorial de como hacerlo seria fantastico :D

    gracias de antemano hermano

    saludos


Leave a comment

(required)

Aún no hay trackbacks.