Diseño del Ejercicio
Como ya hemos dicho VDevelop nos puede ayudar poco en la parte gráfica de la postal navideña.
Disponemos de los siguientes componentes para solventar estas limitaciones.
oEl visor HTML de Velneo soporta HTML5 y por lo tanto contempla el elemento canvas y el lenguaje de descripción de gráficos SVG.
Los elementos canvas y svg se integran en el DOM (modelo de objetos del documento) del Visor HTML de Velneo y por lo tanto podremos manipularlos dinámicamente mediante JavaScript.
Es importante saber que el elemento canvas renderiza gráficos en modo pixel y svg renderiza gráficos vectoriales.
oEl API de Velneo nos facilitará la programación del modelo de objetos de Velneo usando JavaScript. Esto es necesario porque hay algunas funcionalidades de los objetos de Velneo que solo son accesibles a travé del API.
El visor HTML utiliza el motor de renderizado Webkit y es bastante estable pero es un componente independiente dentro de Velneo con el que tenemos pocas posibilidades de interacción desde los formulairos u otros componentes nativos. En la versión 7.17 se espera la incorporación de facilidades para incorporar de forma nativa potencia gráfica a nuestros desarrollos.
El uso de QML se ha desechado porque no me gusta nada la débil integración que tiene con Velneo a pesar de ser un producto QT. Es un lenguaje muy potente para describir pantallas gráficas pero ni siquiera disponemos de un diseñador visual básico integrado en vDevelop. Seguramente QML irá ganando peso en la comunidad de desarrollo de Velneo porque es imprescindible para el entorno de dispositivos móviles.
Volviendo a nuestra postal navideña vamos a plantear los componentes necesarios:
oFormulario de Velneo que sea el contenedor de la postal navideña. La postal navideña se renderiza gracias al visor HTML contenido en el formulario.
Este formulario se mostrará en modo SDI para que ocupe toda la ventana principal del vClient
oEl visor HTML contiene la estructura de la postal navideña y ejecutará el código javascript necesario para las animaciones de los componentes canvas y svg.
Desde el formulario se prepara todo el código HTML el cual asignamos al visor HTML para que lo muestre.
oPara el sonido de fondo disponemos del comando "Reproducir sonido" de Velneo que nos reproducirá el villancico en formato wav y de forma asíncrona.
oPara la nieve cayendo se ha buscado en Internet alguna animación que contemplara aquellos parámetros que consiguen un efecto lo más realista posible.
La animación siguiente http://jumptofive.com/canvas-como-crear-efecto-de-nieve-cayendo/ realmente está muy bien hecha y se ha copiado tal cual al contenido del visor HTML.
oLos usuarios que ejecuten la postal navideña tienen la opción de introducir su nombre al inicio de la Aplicación. El nombre se almacena en una tabla de Velneo.
oLa lista de nombres cayendo como copos de nieve se toma de la tabla Velneo. Para esta animación se ha optado por usar el lenguaje SVG.
Para facilitar la gestión de los elementos vectoriales de svg se ha recurrido a la librería pública snap.svg patrocinada por Adobe, muy sencilla de usar mediante programación orientada a objetos y con mucha documentación y ejemplos.
La animación de los nombres cayendo como copos de nieve ralentiza la ejecución total de la postal navideña cuando el número de nombres es alto. Por lo tanto se ha sustituído la animación SVG por la animación del contenido del CANVAS.
oNos queda el fondo estático de la postal navideña. Se ha montado con 3 elementos: una fotografía de paisaje nevado (Pineta en el pirineo oscense), una imagen 3D del logotipo de Velneo y el dibujo de un gorro de Papa Noel.
El logotipo de Velneo se ha extrusionado y dado perspectiva usando Corel Draw.
Para montar los tres componentes se ha usado Photoshop y la superposición de capas. La imagen resultante es un jpeg de 800x533 que determinará el tamaño en pantalla de la postal navideña.
oA última hora se ha pensado en añadir uno brillos animado cada 3 seg. que gira sobre su posición. Se ha usado un elemento SVG.
Created with the Personal Edition of HelpNDoc: What is a Help Authoring tool?