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

Inserire elementi nella finestra esterna

Gestire i contenuti delle finestre esterne e utilizzare la classe Window
Gestire i contenuti delle finestre esterne e utilizzare la classe Window
Link copiato negli appunti

Nota dolente della classe NativeWindow è la difficoltà a "popolare" la finestra esterna: è possibile usare i classici comandi Actionscript per creare testi e movieclip, ad esempio con il codice:

// Creo il movieclip
var mc:MovieClip = new MovieClip()

// Disegno un triangolo
mc.graphics.lineStyle(1,0x000000,1)
mc.graphics.beginFill(0x000099,.5)
mc.graphics.lineTo(200,200)
mc.graphics.lineTo(200,0)
mc.graphics.lineTo(0,0)

// Lo aggiungo alla finestra esterna
finestra_esterna.stage.addChild(mc);

// Creo il campo di testo e ne imposto il contenuto
var testo:TextField = new TextField();
testo.text = "Testo in finestra esterna";

// Rendo il campo di testo auto ridimensionate in base al suo contenuto
testo.autoSize = TextFieldAutoSize.LEFT;

// Imposto uno stile per il testo
// (in questo caso imposto font Arial, grande 20 px, nero e grassetto)
var formato_testo:TextFormat = new TextFormat("Arial","20",0x000000,true);
testo.setTextFormat(formato_testo);

// Lo posiziono e lo aggiungo alla finestra esterna
testo.y = 200
finestra_esterna.stage.addChild(testo):

Ecco il risultato:

Figura 2. Elementi inseriti nella finestra esterna
Screenshot del programma in esecuzione

Nota: Il testo nell'immagine risulta sgranato perchè è stata ridimensionata, non è un problema dato da AIR.

Questo sistema ha un grosso limite: non permette di inserire dinamicamente dei componenti, almeno con le attuali Beta. Altro svantaggio: l'impostazione di un layout nella finestra esterna risulterebbe decisamente scomodo dovendolo eseguire via Actionscript; in questi casi si può però fare affidamento alla classe Window.

La classe Window

Questa classe permette di aprire in una nuova finestra un documento già esistente, il che porta ovviamente diversi vantaggi. Creiamo un nuovo file MXML all'interno del nostro progetto e chiamiamolo "finestraEsterna.mxml", inseriamovi alcuni componenti. Torniamo quindi sul file principale e creiamo la funzione apri_win().

public function apri_win():void
{
  var finestra_est:finestraEsterna = new finestraEsterna();
  finestra_est.open();
}

Associamo quindi questa nuova funzione al pulsante di apertura finestra; testando il filmato il risultato sarà simile a questo:

Figura 3. Apertura in finestra del documento finestraEsterna
Screenshot del programma in esecuzione

La classe NativeWindow comunque è solitamente più "leggera" in termini di impegno del processore, quindi cerchiamo di distribuire bene l'utilizzo di queste due classi: Window è sicuramente da sfruttare quando è necessario che la finestra esterna presenti componenti o layout mediamente complessi, mentre nel caso in cui si vogliano mostare elementi generati dinamicamente e non vi sia comunque la necessità di disposizioni particolari, l'utilizzo di NativeWindow è consigliato.

Ti consigliamo anche