http://www.javierpc.com.ar/

http://my.opera.com/J-21/

Crear Fondo Flash para Sony Ericsson

[/img]
en http://www.se-planet.com/ encontré como hacer un fondo flash con reloj
en lugar de "copiar y pegar" voy a tratar de explicar como logre hacer mi fondo y agregarle unas cositas mas como día de la semana con un switch, batería y demás...


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 lógicamente tu teléfono no solo tiene que soportar flash lite, sino que ademas tiene que tener la opción de poder utilizarlo como fondo, en mi k310@w200 para poder hacer aparecer esta opción tuve que aplicar un parche (crédito: se-planet) que lo podes encontrar aquí 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 programación en C


--Inicio y Preparación del Documento--

iniciamos macromedia flash 8
y esta es nuestra pantalla inicial donde simplemente cliqueamos en nuevo documento flash




y a continuación tenemos que preparar el documento para poder crear nuestro fondo, para eso tenemos que configurar el tamaño la versión de flash y demás, así que vamos al menú Modificar / Documento (o CTRL + J) y ajustamos el tamaño según nuestro teléfono, en mi caso 128x160 pixeles



luego al menú Archivo / Configuración de Publicación
en la pestaña Flash seleccionamos "Versión Flash lite 1.1"
esto es importante sino nuestro teléfono no reconocerá nuestro swf y simplemente quedara una imagen estática o directamente no mostrara nada



por ultimo antes de comenzar, menú Archivo / Configuración de Dispositivo
seleccionamos y añadimos alguno de los teléfonos y listo
esto sirve simplemente para que cuando probemos la película flash simule un teléfono.




listo, ya esta todo configurado


--Creación 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 ubicación de los objetos para no superponerlos por ejemplo sobre la batería o sobre el nombre del operador, por eso yo voy a comenzar insertando una captura de mi teléfono
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 menú 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 menú Archivo / Importar / Importar a Escenario, elijo 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, día, batería etc.... solo cambia el código de programación 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 área de texto y tipeamos los dígitos para guiarnos, les recomiendo tipear los dígitos mas anchos así evitaremos lineas dobles.
(si no disponen de la ventana propiedades pueden activarla en el menú "ventana/propiedades/propiedades")
en el cuadro de propiedades cuando terminen de ajustar la fuente color y tamaño, asegurensen de seleccionar tipo de texto dinámico (esta en la esquina superior izquierda de las propiedades) y luego donde dice variable hay que elegir un nombre identificativo, yo elegí RELOJ, pueden elegir HORA o lo que prefieran, pulsen sobre el botón incorporar y eligen "numerales" y agregan el símbolo de "dos puntos"  o si prefieren elijan "todos", esta opción 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, menú 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 código
el código 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 "Código"
(si no disponen de la ventana acciones, activenla desde menu "ventana / acciones")
entonces sobre nuestra capa de programación (al que llame "Código") 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 menú control / probar película
el fondo parpadeando puede ser molesto así que lo solucionan agregando un fotograma al fondo para eso seleccionen la capa de fondo y pulsen F5 así quedaran dos fotogramas de fondo y dos de reloj



-Día 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 día con mas caracteres o mas ancho (según la fuente) así evitamos lineas dobles como sorpresas durante el transcurso de la semana
elegimos un nombre para la variable, yo elegí "Día"
agregamos todas las fuentes
y listo



vamos al código, click sobre la capa de código, desplegamos acciones.

quien nos va a dar el día de la semana es "GetDateWeekday", pero en números, por lo tanto a cada uno de esos números tenemos que asignarles el dia correspondiente (0 = Domingo, 1 = Lunes, etc...) o pueden ser mas creativos
esto pueden lograrlo fácilmente con IF pero yo lo voy a hacer con switch (es la versión de SELECT CASE del lenguaje Basic)
aquí les paso el código completo, deben agregarlo debajo del código de reloj

switch (fscommand2("GetDateWeekday")) {
    case 0:
DIA = "Domingo";
        break;
    case 1:
DIA = "Lunes";
        break;
    case 2:
DIA="Martes";
        break;
    case 3:
DIA="Miércoles";
        break;
    case 4:
DIA = "Jueves";
        break;
    case 5:
DIA = "Viernes";
        break;
    case 6:
DIA = "Sábado";
        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 introducirá el texto "Lunes" en nuestra variable Dia y como nuestra variable Dia es visible en pantalla nos la va a mostrar

este mismo método sirve para los meses con fscommand2("GetDateMonth")


-Batería

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 código (acciones)



vamos a utilizar GetBatteryLevel para obtener el nivel de batería, 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 batería
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 batería
Noten que Bateria ="--" hace que aparezca en pantalla "--" y estos no son números, 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 código seria

señal = fscommand2("GetSignalLevel");

y veremos en pantalla el nivel de señal



-Finalizar

para cambiar el fondo podríamos 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 película, vamos a menú Archivo / Exportar / Exportar Película
en el cuadro asegurensen que sea Flash Lite 1.1 y demás...

y aquí tienen los resultados, estas son capturas de mi teléfono





-Posible errores

Parpadeos
si tenes objetos que parpadean asegúrate de que estén en capas separadas,
si tenes mas de dos fotogramas asegúrate de que todos tengan la misma cantidad de fotogramas

no aparece el código de programación
antes de abrir acciones tenes que tener seleccionada la capa donde estas programando

el fondo tapa todo
esto se soluciona muy fácil
arrastra la capa donde tenes el fondo hasta que quede ultima

error en código
asegúrate de haber configurado flash lite 1.1 y no flash 1
también tene en cuenta que no se simula niveles de señal bateria y demas, eso tenes que probarlo en el teléfono

reloj tarda en actualizarse
seguramente pusiste una animación como fondo
en la linea de tiempo tenes que copiar los fotogramas de código (solo de código) y pegarlos hasta completar el total de fotogramas que tengas

la animación transcurre demasiado rápido
pues ese efecto se da cuando esta activo como fondo
proba bajando la velocidad de fotogramas


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



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.



Capitán Tsubasa 2Correo Basura (Hoax)