Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

La struttura di una applicazione Flex

I file e le cartelle del progetto e i namespace coinvolti nell'applicazione
I file e le cartelle del progetto e i namespace coinvolti nell'applicazione
Link copiato negli appunti

In questa lezione esaminiamo le cartelle e i file che compongono un progetto Flex. All'interno del Package Explorer, ogni cartella rappresenta una cartella corrispondente nel file system. L'unica eccezione a questo schema è la cartella SDK e le relative librerie che invece sono racchiuse dentro una cartella virtuale che non ha un corrispondente nella struttura fisica.

Figura 17. Struttura di una applicazione Flex
Struttura di una applicazione Flex

La cartella 'src' contiene il codice sorgente dell'applicazione. Tutto il codice è raggruppato in package, come in un progetto Java, tutte le classi ActionScript e tutte le pagine MXML vengono poste all'interno di un package di default se non altrimenti specificato.

Il cuore della nostra applicazione è il file Applicazione (MXML Application). Si tratta di un file XML e, come tale, ha nella prima riga la dichiarazione del documento, deve essere "ben formato", quindi struttura gerarchica deve essere sintatticamente corretta ed avere un solo elemento radice, all'interno del quale trovano posto tutti gli altri elementi.

I namespace

Nell'instestazione del file vengono elencati tutti i namespace che verranno utilizzati dai componenti che inseriremo all'interno del nostro documento. L'elemento radice può essere di diverso tipo: tipicamente una Applicazione, un Componente o un Modulo uno Skin ect.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/halo"
               minWidth="1024" minHeight="768">
<!-- ... -->
</s:Application>

Nel file MXML i namespaces servono per mappare i tagName degli elementi del file a classi o gruppi di classi ActionScript e forniscono informazioni al compilatore per recuperare le librerie necessarie alla compilazione.

In Flex 2 e 3 le applicazioni definivano un unico namespace:

xmlns:mx="http://www.adobe.com/2006/mxml"

che conteneva le informazioni per il linguaggio e per i componenti utilizzati.

Come si vede nel codice, Flash Builder inserisce 3 namespace nei file MXML: il primo contiene tutte le dichiarazioni del linguaggio, gli altri due quelle relative ai componenti.

È interessante notare che Flash Builder introduce di default il namespace s: che corrisponde alla libreria di componenti Spark. Approfondiremo ancora questo aspetto, per ora è utile sottolineare che, a differenza delle vecchie versioni, dove l'applicazione di default era <mx:Application>, in Flash Builder abbiamo <s:Application>. È comunque possibile utilizzare il vecchio markup (con prefisso xm:) riscrivendo a mano i tag in modalità source.

Flash Builder compila correttamente applicazioni e moduli appartenenti alle versioni precedenti, tuttavia un file MXML deve contenere uno solo dei namespace relativo al linguaggio: il 2006 o il 2009.

In Flash Builder inoltre tutto ciò che non è un componente visuale non può più essere inserito come child dell'oggetto radice della applicazione o del componente, ma trova posto come child del tag <fx:Declarations>. Ad esempio:

<s:Application>
  <fx:Declarations>
    <fx:String>Questa è una stringa</fx:String>
    <fx:Array>
      ...
    </fx:Array>
  </fx:Declarations>
</s:Application>

Quindi il file applicazione fornisce un pannello in cui posizionare tutte le parti costituenti del nostro progetto: i componenti. Se per piccoli progetti possiamo inserire i componenti direttamente sulla pagina, in progetti più grandi e complessi è meglio suddividere l'interfaccia in componenti custom.

Se poi operiamo in accordo con i concetti di base della programmazione Object Oriented, avremo come vantaggi la riduzione della complessità del progetto e la possibilità di riutilizzare i componenti.

Approfondimenti

Ecco due link utili per approfondire i concetti base di XML:

Ti consigliamo anche