Un aspetto importante in un'applicazione, specie se di complessità medio-alta, è la possibilità di utilizzare pannelli e finestre; è infatti molto difficile inserire in un'unica interfaccia tutti i comandi, per cui può essere preferibile affidarsi a finestre esterne.
Altrettanto importante è il poter posizionare ad esempio la finestra dell'applicazione in un determinato punto del desktop quando viene aperta, per esempio se creiamo delle widget da usare sul desktop e che dovranno quindi posizionarsi di default su uno dei lati dello schermo.
AIR offre principalmente due modi per interagire con le finestre e crearne di nuove, ovvero la classe NativeWindow
e la classe Window
, quest'ultima non ancora pienamente sviluppata (presenta qualche bug) ma già diponibile nelle beta di Flex 3 ed AIR.
Dimesioni e posizione
Per prima cosa vediamo come interagire con la finestra "base" dell'applicazione, che è di fatto una NativeWindow. è possibile ridimensionare e spostare la finestra tramite Actionscript, prendiamo ad esempio il seguente codice:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" applicationComplete="inizia()">
<mx:Script>
<![CDATA[
public function inizia():void
{
var finestra:NativeWindow = this.stage.nativeWindow;
finestra.x = 200;
finestra.width = 800;
}
]]>
</mx:Script>
</mx:WindowedApplication>
Viene creato un riferimento (finestra
) alla finestra dell'applicazione, quindi usando le proprietà width
e x
vengono impostate rispettivamente la larghezza di 800 pixel e un posizionamento orizzontale a 200 pixel; possiamo controllare anche la posizione verticale (y
) e l'altezza (height
). Di default l'utente può sia spostare, sia ridimensionare la finestra dell'applicazione AIR, ma è possibile impostare altezza e larghezza massime e minime grazie alle proprietà maxSize
e minSize
.
public function inizia():void
{
var finestra:NativeWindow = this.stage.nativeWindow;
finestra.x = 200;
finestra.width = 800;
finestra.maxSize = new Point(800, 400);
finestra.minSize = new Point(400, 200);
}
Notiamo come queste proprietà vadano associate ad un oggetto Point
che indichi nell'ordine larghezza ed altezza.
Nota:impostando queste proprietà verrà ridimensionata la finestra dell'applicazione ma i contenuti rimarranno delle loro dimensioni, questo evita quindi che possano verificarsi problemi di perdita di qualità o di sfasamento dei layout impostati.