Dentro del código (2): Las Funciones

Ya hemos creado los menus y definidos los listeners para los mismos, así como otro listener para comprobar el estado de la ventana. Es hora de escribir las funciones que deben ejecutarse para cada uno:

  1. cerrarAplicación eliminará el icono de la barra (como dijimos, sólo hace falta vaciar la propiedad bitmaps de shell.icon) y cerrará la aplicación
  2. restaurarVentana restaurará la ventana mediante el método restore()
  3. mostrarOcultarIconoSistema comprobará el estado: Si está minimizada (atributo displayState) cargará el icono (asignando a bitmaps el valor del array arrIcons que definiremos más adelante y que contiene el bitmapData de la imagen) y ocultará la ventana, en el resto de casos, se asegura de que esté visible y quita el icono (de nuevo, vaciando shell.icon.bitmaps)

function cerrarAplicacion(event){
air.Shell.shell.icon.bitmaps = [];
air.Shell.shell.exit();
}

function restaurarVentana(event){
window.nativeWindow.restore();
}

function mostrarOcultarIconoSistema(event){
if(event.target.displayState == air.NativeWindowDisplayState.MINIMIZED){
air.Shell.shell.icon.bitmaps=arrIcons;
window.nativeWindow.visible=false;
}else{
air.Shell.shell.icon.bitmaps = [];
window.nativeWindow.visible=true;
}
}

 

Para terminar con las funciones, una que invocaremos más adelante. Esta función, a la que hemos llamado iconLoadComplete se ejecutará cuando termine la carga de la imagen en el loader y asignará el array bitmapData de la misma a nuestro array arrIcons(que utilizamos antes en la función “mostrarOcultarIconoSistema” para gestionar el icono).
La parte interesante es que el evento nos permite acceder al loader que ha llamado a esta función a través de la propiedad target (todos las instancias de Event lo permiten). La propiedad content nos permite acceder a la imagen cargada (el contenido del loader) y finalmente sólo nos queda llegar a la propiedad bitmapData, que contiene el array que buscamos.

function iconLoadComplete(event){
arrIcons = new runtime.Array(event.target.content.bitmapData);
}

Paginas: 1 2 3 4