en lugar de "copiar y pegar" voy a tratar de explicar como logre hacer mi fondo y agregarle unas cositas mas como dia de la semana con un switch, bateria y demas...
teoricamente esto deberia funcionar para cualquier marca de telefono pero lo probe en un nokia 6131 sin resultados positivos, por eso lo publico aqui en sony
lo que necesitas conseguirte es el flash 8, si tenes flash mx no te va a servir ya que no tiene "flash lite" y el formato que se requiere es "flash lite 1.1" y no es lo mismo "flash 1" que "flash lite 1"
en segundo lugar logicamente tu telefono no solo tiene que soportar flash lite, sino que ademas tiene que tener la opcion de poder utilizarlo como fondo, en mi k310@w200 para poder hacer aparecer esta opcion tuve que aplicar un parche (credito: se-planet) que lo podes encontrar aqui adjunto
tene en cuenta que necesitar tener conocimientos de:
-capas
-formato de fuentes (no voy a explicar que es y como se logra fuentes negritas)
-nodos
-objetos
-no necesariamente algo de programacion en C
--Inicio y Preparacion del Documento--
iniciamos macromedia flash 8
y esta es nuestra pantalla inicial donde simplemente cliqueamos en nuevo documento flash

y a continuacion tenemos que preparar el documento para poder crear nuestro fondo, para eso tenemos que configurar el tamaño la version de flash y demas, asi que vamos al menu Modificar / Documento (o CTRL + J) y ajustamos el tamaño segun nuestro telefono, en mi caso 128x160 pixeles

luego al menu Archivo / Configuracion de Publicacion
en la pestaña Flash seleccionamos "Version Flash lite 1.1"
esto es importante sino nuestro telefono no reconocera nuestro swf y simplemente quedara una imagen estatica o directamente no mostrara nada

por ultimo antes de comenzar, menu Archivo / Configuracion de Dispositivo
seleccionamos y añadimos alguno de los telefonos y listo
esto sirve simplemente para que cuando probemos la pelicula flash simule un telefono.

listo, ya esta todo configurado
--Creacion del Fondo--
si lo que quieren hacer es un protector de pantalla podemos trabajar libremente, pero a la hora de crear un fondo es importante saber la ubicacion de los objetos para no superponerlos por ejemplo sobre la bateria o sobre el nombre del operador, por eso yo voy a comenzar insertando una captura de mi telefono
primero insertamos una nueva capa, eso lo hacemos siempre haciendo click sobre el boton que esta en la esquina inferior izquierda del cuadro de capas

luego sobre esa capa desplegamos el menu contextual (click derecho) elegimos propiedades y le damos un nombre ya que vamos a trabajar con muchas capas, de esta forma evitaremos confundirlas

por ultimo desde el menu Archivo / Importar / Importar a Escenario, eligo mi captura y acepto
(mas adelante le agregaremos un fotograma)

ahora si comenzamos a crear nuestro fondo Flash
-Reloj
comencemos por el reloj.
estos pasos son importantes y se repiten tanto para crear un reloj, dia, bateria etc.... solo cambia el codigo de programacion y las fuentes que agregamos.
lo primero que vamos a hacer es crear nuestra capa para el reloj, y renombrarla, yo use el nombre RELOJ
luego seleccionamos la herramienta TEXTO, dibujamos un area de texto y tipeamos los digitos para guiarnos, les recomiendo tipear los digitos mas anchos asi evitaremos lineas dobles.
(si no disponen de la ventana propiedades pueden activarla en el menu "ventana/propiedades/propiedades")
en el cuadro de propiedades cuando terminen de ajustar la fuente color y tamaño, asegurensen de seleccionar tipo de texto dinamico (esta en la esquina superior izquierda de las propiedades) y luego donde dice variable hay que elegir un nombre identificativo, yo elegi RELOJ, pueden elegir HORA o lo que prefieran, pulsen sobre el boton incorporar y eligen "numerales" y agregan el simbolo de "dos puntos" o si prefieren elijan "todos", esta opcion lo que hace es agregar fuentes al swf.
por ultimo insertamos un fotograma de manera que en total queden dos fotogramas
seleccionamos nuestra capa de reloj, menu Insertar / Linea de tiempo / Fotograma (o F5)
nota: con fscommand2 ("GetLocaleLongDate","DATE"); se obtiene la fecha, en mi caso funciona bien pero con el pequeño problemita de que me presenta dos caracteres extraños

ahora vamos al codigo
el codigo al igual que el reloj quedara en una capa separada pese a que no sea visible
entonces ya saben, crean una capa (sera "capa 4") y la renombran, yo la llame "Codigo"
(si no disponen de la ventana acciones, activenla desde menu "ventana / acciones")
entonces sobre nuestra capa de programacion (al que llame "Codigo") abrimos el cuadro de acciones y tipeamos lo siguiente
fscommand2 ("GetLocaleTime","Reloj");

lo que hace fscommand2 ("GetLocaleTime","Reloj") es tomar la hora del dispositivo (telefono, pc, ...) mediante GetLocaleTime y la introduce en la variable Reloj, y como nuestra variable es visible podremos disfrutarla en pantalla.
para probarla seleccionen menu control / probar pelicula
el fondo parpadeando puede ser molesto asi que lo solucionan agregando un fotograma al fondo para eso seleccionen la capa de fondo y pulsen F5 asi quedaran dos fotogramas de fondo y dos de reloj
-Dia de la Semana
seguiremos los mismos pasos que para crear un reloj
creamos y renombramos la capa (noten que ya incluye dos fotogramas, si no es asi la agregamos)
luego con la herramienta texto escriben el dia con mas caraceteres o mas ancho (segun la fuente) asi evitamos lineas dobles como sorpresas durante el transcurso de la semana
elegimos un nombre para la variable, yo elegi "Dia"
agregamos todas las fuentes
y listo

vamos al codigo, click sobre la capa de codigo, desplegamos acciones.
quien nos va a dar el dia de la semana es "GetDateWeekday", pero en numeros, por lo tanto a cada uno de esos numeros tenemos que asignarles el dia correspondiente (0 = Domingo, 1 = Lunes, etc...) o pueden ser mas creativos
esto pueden lograrlo facilmente con IF pero yo lo voy a hacer con switch (es la version de SELECT CASE del lenguaje Basic)
aqui les paso el codigo completo, deben agregarlo debajo del codigo de reloj
switch (fscommand2("GetDateWeekday")) {
case 0:
DIA = "Domingo";
break;
case 1:
DIA = "Lunes";
break;
case 2:
DIA="Martes";
break;
case 3:
DIA="Miercoles";
break;
case 4:
DIA = "Jueves";
break;
case 5:
DIA = "Viernes";
break;
case 6:
DIA = "Sabado";
break;
default:
DIA="ERROR!";
}
lo que hace switch es muy simple
dependiendo del valor que devuelve fscommand2("GetDateWeekday") selecciona un "CASE"
por ejemplo, si es Lunes fscommand2("GetDateWeekday") va a devolver 1 (uno) y directamente seleccionara y ejecutara todo lo que se encuentre entre CASE 1 y BREAK
en este caso DIA = "Lunes"
lo que introducira el texto "Lunes" en nuestra variable Dia y como nuestra variable Dia es visible en pantalla nos la va a mostrar
este mismo metodo sirve para los meses con fscommand2("GetDateMonth")
-Bateria
seguimos los mismos pasos para crear un nuevo objeto
nueva capa, la renombramos
herramienta texto
creamos un texto
yo use los valores 100 como texto ya que es mi nivel maximo de bateria
le damos nombre a la variable, esto es muy importante, yo use el nombre Bateria
agregamos fuentes
y vamos al codigo (acciones)

vamos a utilizar GetBatteryLevel para obtener el nivel de bateria, pero lo vamos a combinar mediante un IF con GetPowerSource para saber si se esta cargando o no, de esta forma aprovechamos y vemos como funciona IF (y tambien ELSE)
el codigo seria este:
if (fscommand2("GetPowerSource"))
{
Bateria ="--";
}
else
{
Bateria =fscommand2("GetBatteryLevel");
}
lo que hace fscommand2("GetPowerSource") es devolver verdadero si se esta cargando y falso si usa bateria
entonces lo que hace if es si se cumple (fscommand2("GetPowerSource")) ejecuta lo que esta entre las llaves, de lo contrario sigue con el codigo y no ejecuta nada
pero tenemos un ELSE, y sirve para ejecutar codigo en caso de que if (fscommand2("GetPowerSource")) sea falso
y si IF es falso ejecuta Bateria =fscommand2("GetBatteryLevel") lo que arroja el nivel de bateria
Noten que Bateria ="--" hace que aparezca en pantalla "--" y estos no son numeros, por lo tanto agreguen a la fuente tan como figura en la imagen.
-Nivel de Señal
el nivel de señal se logra con GetSignalLevel
por ejemplo
luego de haber seguido todos los pasos para agregar un objeto, lo llamamos "señal", el codigo seria
señal = fscommand2("GetSignalLevel");
y veremos en pantalla el nivel de señal
-Finalizar
para cambiar el fondo podriamos aprovechar la capa que tenemos, clickeamos sobre nuestro fondo actual y eliminarlo es tan simple como presionar la tecla SUPR
luego con CTRL + R agregamos nuestro fondo definitivo y decorativo
tengan en cuenta que si utilizan animaciones gif el tamaño del swf puede resultar demasiado grande, asi que sean generosos con la cantidad de cuadros y completen los fotogramas para que todos tengan la misma cantidad y no parpadeen
por ultimo para compilar la pelicula, vamos a menu Archivo / Exportar / Exportar Pelicula
en el cuadro asegurensen que sea Flash Lite 1.1 y demas...
y aqui tienen los resultados, estas son capturas de mi telefono

-Posible errores
Parpadeos
si tenes objetos que parpadean asegurate de que esten en capas separadas,
si tenes mas de dos fotogramas asegurate de que todos tengan la misma catidad de fotogramas
no aparece el codigo de programacion
antes de abrir acciones tenes que tener seleccionada la capa donde estas programando
el fondo tapa todo
esto se soluciona muy facil
arrastra la capa donde tenes el fondo hasta que quede ultima
error en codigo
asegurate de haber configurado flash lite 1.1 y no flash 1
tambien tene en cuenta que no se simula niveles de señal bateria y demas, eso tenes que probarlo en el telefono
reloj tarda en actualizarse
seguramente pusiste una animacion como fondo
en la linea de tiempo tenes que copiar los fotogramas de codigo (solo de codigo) y pegarlos hasta completar el total de fotogramas que tengas
la animacion transcurre demasiado rapido
pues ese efecto se da cuando esta activo como fondo
proba bajando la velocidad de fotogramas
por el momento es todo
espero que les haya gustado y que realicen sus propios fondos y salvapantallas flash, y que posteen sus creaciones, pero como se que no lo van hacer porque son ASI de perezosos, les adjunto el .fla con todo, asi le cambian la fuente a su gusto y lo recompilan de lo contrario dudo que se pongan a hacer codigo

les dejo el archivo completo
el .fla el .swf el bmp con la captura k310 para que se guien tal como lo desarrolle en la guia, el fondo de estrellas tal cual, y hasta les dejo las fuentes que use, y por supuesto el parche k310@w200 (credito: se-planet)
quedaria realizar baterias y niveles de señal graficos, en cuanto lo descubra lo publicare, o si alguno tiene conocimiento para colaborar seria genial, supongo que habra algun dato en tutoriales de menu flash, ya que es indispensable el movimiento
agradecimientos
mi hermana mayor por conseguirme el flash 8 (y prestarme el chip para publicar en el foro)
mi hermana menor por conseguirme el paquete de fuentes
Saludos
]::Javier::[
para lo que no tienen flash 8 les dejo la ayuda de flash para que tengan una idea de todo lo que se puede hacer, todos estos comandos se utilizan dentro de fscommand2()
Escape Codifica una cadena arbitraria en un formato seguro para la transferencia en red.
FullScreen Establece el tamaño del área de visualización que se utilizará en la representación.
GetBatteryLevel Devuelve el nivel de batería actual.
GetDateDay Devuelve el día de la fecha actual como un valor numérico.
GetDateMonth Devuelve el mes de la fecha actual como un valor numérico.
GetDateWeekday Devuelve el número del día de la fecha actual como un valor numérico.
GetDateYear Devuelve un valor número de cuatro dígitos correspondiente al año de la fecha actual.
GetDevice Define un parámetro que identifica el dispositivo en el que se está ejecutando Flash Lite.
GetDeviceID Define un parámetro que representa el identificador exclusivo del dispositivo (por ejemplo, el número de serie).
GetFreePlayerMemory Devuelve la cantidad de memoria de pila disponible para Flash Lite, expresada en kilobytes.
GetLanguage Establece un parámetro que identifica el idioma que se utiliza en el dispositivo.
GetLocaleLongDate Define un parámetro para una cadena que representa la fecha actual, en formato largo, según la configuración regional seleccionada.
GetLocaleShortDate Define un parámetro para una cadena que representa la fecha actual, en formato corto, según la configuración regional seleccionada.
GetLocaleTime Define un parámetro para una cadena que representa la hora actual, según la configuración regional seleccionada.
GetMaxBatteryLevel Devuelve el nivel máximo de batería del dispositivo.
GetMaxSignalLevel Devuelve el nivel máximo de intensidad de la señal.
GetMaxVolumeLevel Devuelve el nivel máximo de volumen del dispositivo como un valor numérico.
GetNetworkConnectStatus Devuelve un valor que indica el estado actual de la conexión de red.
GetNetworkName Establece un parámetro para el nombre de la red actual.
GetNetworkRequestStatus Devuelve un valor que indica el estado de la solicitud HTTP más reciente.
GetNetworkStatus Devuelve un valor que indica el estado de la red telefónica (es decir, si hay una red registrada y si el teléfono está lejos de la red doméstica).
GetPlatform Define un parámetro que identifica la plataforma actual, que describe ampliamente la clase de dispositivo. Para los dispositivos con sistemas operativos abiertos, este identificador es normalmente el nombre y la versión del sistema operativo.
GetPowerSource Devuelve un valor que indica si la fuente de alimentación es una batería o externa.
GetSignalLevel Devuelve la intensidad de la señal actual como un valor numérico.
GetTimeHours Devuelve el valor de hora de la hora actual del día, basada en un reloj de 24 horas como un valor numérico.
GetTimeMinutes Devuelve el minuto de la hora actual del día como un valor numérico.
GetTimeSeconds Devuelve el segundo de la hora actual del día como un valor numérico.
GetTimeZoneOffset Define un parámetro como el número de minutos de diferencia entre la zona horaria local y la hora universal (UTC).
GetTotalPlayerMemory Devuelve la cantidad de memoria de pila total asignada a Flash Lite, expresada en kilobytes.
GetVolumeLevel Devuelve el nivel actual del volumen del dispositivo como un valor numérico.
Quit Hace que el reproductor de Flash Lite detenga la reproducción y se cierre.
ResetSoftKeys Restablece la configuración original de las teclas programables.
SetInputTextType Especifica el modo en que debe abrirse el campo de introducción de texto.
SetQuality Define la calidad de la representación de la animación.
SetSoftKeys Cambia la asignación de las teclas programables izquierda y derecha del dispositivo, siempre que se pueda acceder a ellas y sea posible.
StartVibrate Inicia la vibración del teléfono.
StopVibrate Detiene la vibración del teléfono, si está activa.
Unescape Descodifica a su formato normal una cadena arbitraria que se codificó para protegerla durante transferencias en red.