venerdì 21 agosto 2009

6) Flex tutorial - DataGrid e Xml


Come popolare un semplice DataGrid


Creiamo un nuovo Flex project con Flex Builder e chiamiamolo DataGridDaXml.
Andiamo nell'area design e inseriamo un Panel e al suo interno un DataGrid.
Ogni componente grafico che espone dei dati prende come fonte un dataProvider composto da una collection generata differentemente a seconda degli input ricevuti, in particolare:

  • Una stringa contenente valido testo XML è convertita in una XMLListCollection.
  • Un XMLNode è convertito in una XMLListCollection.
  • Una XMLList è convertita in una XMLListCollection.
  • Ogni oggetto che implementa una ICollectionView interface è castato ad una ICollectionView.
  • Un Array è convertito in un ArrayCollection.
Nel nostro caso creiamo un file xml che chiamiamo prodotti.xml con il seguente contenuto :

<?xml version="1.0" encoding="UTF-8"?>
<prodotti>
<detailProd>
<products_name>4CENTO402</products_name> <products_image>images/giubbotto.jpg</products_image> <weight>1</weight>
<price>461.40</price>
<code>3004QWR10</code>
</detailProd>
<detailProd>
<products_name>4CENTO403</products_name> <products_image>images/giubbotto1.jpg</products_image> <weight>1</weight>
<price>30.50</price>
<code>3004ASE1078</code>
</detailProd>
<detailProd>
<products_name>4CENTO404</products_name> <products_image>images/giubbotto2.jpg</products_image> <weight>1</weight>
<price>90.80</price>
<code>3004GE103</code>
</detailProd>
</prodotti>


Lo inseriamo in una variabile Xml caricandolo con un UrlLoader nel seguente modo:

import flash.net.*;
import mx.events.*;
private var xmlLoader:URLLoader = new URLLoader();
[Bindable]
private var productList:XML;
private var pathFile:String = "prodotti.xml";

private function loadXml(e:FlexEvent):void {
xmlLoader.addEventListener(Event.COMPLETE,parseXml);
xmlLoader.load(new URLRequest(pathFile));
}
private function parseXml(e:Event):void {
productList = new XML(e.target.data);
}


...e diamo in pasto al DataGrid l'XmlList ottenuta interrogando il nostro file Xml(productList.detailProd) e definendone i DataField nelle DataGridColoum con gli attributi che vogliamo caricare dai record. Alla fine il codice della nostra applicazione risulterà esser il seguente:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="loadXml(event)">
<mx:Script>

<![CDATA[
import flash.net.*;
import mx.events.*;

private var xmlLoader:URLLoader = new URLLoader();
[Bindable]

private var productList:XML;

private var pathFile:String = "prodotti.xml";
private function loadXml(e:FlexEvent):void { xmlLoader.addEventListener(Event.COMPLETE, parseXml);
xmlLoader.load(new URLRequest(pathFile)); }

private function parseXml(e:Event):void {
productList = new XML(e.target.data); }
]]>

</mx:Script>

<mx:Panel y="10" height="100%" layout="absolute" title="Esempio DataGrid" right="10" left="10">

<mx:DataGrid id="Prodotti" dataProvider="{productList.detailProd}" variableRowHeight="true" height="100%">
<mx:columns>
<mx:DataGridColumn dataField="products_name" headerText="Nome Prodotto" width="200" wordWrap="true" />
<mx:DataGridColumn dataField="products_image" headerText="Immagine" width="200">
<mx:itemRenderer>
<mx:Component> <mx:Image /> </mx:Component> </mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="weight" headerText="Peso" width="40" />
<mx:DataGridColumn dataField="price" headerText="Prezzo" width="150" />
<mx:DataGridColumn dataField="code" headerText="Codice Prodotto" width="200" wordWrap="true" />
</mx:columns>
</mx:DataGrid>

</mx:Panel>

</mx:Application>
Da notare l'utilizzo dell'ItemRenderer, tecnica usata quando è necessario renderizzare un componente differende da quello standard visualizzato nel conteiner.
Nel nostro caso abbiamo voluto visualizzare un immagine in una griglia che di default visualizza solo testo.

Al prox post.

Davide Graziani


mercoledì 5 agosto 2009

5) Flex - Tecniche di programmazione: uso di Swf loader e Module loader

Meglio la rapidità e separation of concern o la semplicità di avere qualcosa di già fatto?


Tra le tecniche più usate nella programmazione in Flex esiste l'utilizzo dei componenti Swf loader e Module Loader.

Essi permettono di includere nella propria RIA (Rich Internet Application)
componenti di applicativi già realizzati (module) o applicativi stessi (swf),
garantendo una modularità e un riutilizzo del codice notevole, caretteristica fondamentale in progetti di grande dimensione come insegna l'ingegneria del
software.


La differenza sostanziale tra i due componenti è che l'Swf loader
permette di caricare file swf (racchiusi tra tag Application), cioè applicativi che lanciati singolarmente han vita propria (essendo RIA già realizzate),

mentre il Module loader carica dei moduli (racchiusi tra tag Module) che non possono essere
lanciati singolarmente e che quindi in genere garantiscono dei componenti
standard per gli applicativi e dei quali il carimento è molto più rapido ed
efficiente.



Cari progettisti, ora sta a voi scegliere la tecnica migliore... ;-)


Davide Graziani

lunedì 27 luglio 2009

3) Trucchi pc - Velocizzare avvio e chiusura di Windows XP

E' ora di dare un freno alle attese

Grazie al registro di sistema è possibile apportare migliorie sia all'avvio che alla chiusura di Windows, velocizzando diverse operazioni. Vi ricordo di fare sempre un backup del registro di sistema prima di procedere.

Cercate nel registro la seguente stringa: HKEY_CURRENT_USER\Control Panel\Desktop

Qui modificate i valori delle chiavi:

"HungAppTimeout"="1000" - (default=5000)

"WaitToKillAppTimeout"="1000" - (default=20000)

Poi andate in: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

e modificate anche:

"WaitToKillServiceTimeout"="1000" - (default=20000)

Riavviate il PC.


Davide Graziani

venerdì 10 luglio 2009

Come far soldi GRATIS su internet! Tutto vero!!! - 2 parte


Lotterie Gratis


Le lotterie Gratis sono dei servizi 100 % gratis che offrono agli utenti la possibilità di vincere fantastici premi sia in denaro che in oggetto anche di valore molto alto! L’iscrizioni sono completamente gratis e ti verrà offerta la possibilità di giocare compilando una normalissima schedina se sarai fortunato ti potrà far vincere tanti premi.

Il servizio messo a disposizione è gratuito grazie all'elevato numero di visitatori giornaliero presenti sul sito ed i premi sono messi in palio dagli sponsor presenti sul sito. Giocare è facile evincere lo è anche di più!!


Kingo Lotto



Lingua Quanto pagano Programma di affiliazione Metodo di pagamento
Italiano Dipende No PayPal, Premi. Bonifico




Sky 8




Lingua Quanto pagano Programma di affiliazione Metodo di pagamento
Italiano Dipende No PayPal, Premi. Bonifico


Stampa Foto Gratis

Sono sempre di più i servizi che permettono di stampare e di ricevere a casa le stampe delle nostre foto digitali.

Grazie alla concorrenza che si è venuta a creare, molti di questi servizi mettono a disposizione degli utenti interessati offerte che permettono gratuitamente la stampa di un certo numero di foto digitali.

Approfittando di queste offerte potrai stampare e ricevere direttamente a casa senza spendere 1 € molte delle tue foto scattate per esempio durante le vacanze.



PhotoBox – Stampa 100 foto gratis

Iscriviti gratis al sito e potrai stampare gratis 100 foto digitali da ricevere direttamente a casa


MyPix – Stampa 50 foto gratis


Iscriviti gratis al sito e potrai stampare gratis 50 foto digitali da ricevere direttamente a casa


SnapFish – Stampa 40 foto gratis

Iscriviti gratis al sito e potrai stampare gratis 40 foto digitali da ricevere direttamente a casa



Omaggi e Sconti.

Questa categoria degli omaggi e degli sconti è molto ricercata sul web e sono moltissime le aziende e i servizi che metto a disposizione degli utenti omaggi e sconti sia per far conoscere il loro prodotto a più persone sia per avere un buon prodotto ad un prezzo più basso della concorrenza visto che in internet di concorrenza ce ne è parecchia soprattutto nel settore degli acquisti online. Ecco per te alcuni dei servizi che offrono tali servizi.


Print 24 – 250 biglietti da visita gratis

Iscriviti gratis al sito e potrai creare gratis 250 biglietti da visita da ricevere direttamente a casa.




Vista Print– 250 biglietti da visita gratis

Iscriviti gratis al sito e potrai creare gratis 250 biglietti da visita da ricevere direttamente a casa.




Questi elencati sopra sono solamente alcuni dei servizi che offrono Omaggi e Sconti! Per vedere l’elenco completo visita il seguente link: http://www.concorsiapremi.net/cat-concorso/omaggi-sconto.htm L’elenco dei servizi che hai appena visto sono solamente alcuni dei tanti servizi che potrai trovare all’interno del sito http://www.concorsiapremi.net/


Il sito viene aggiornato costantemente e ogni mese potrai scoprire nuove offerte o come ricevere gratuitamente oggetti, buoni o denaro, tutto questo iscrivendoti gratuitamente ai servizi oppure dedicando un po’ di tempo a questi dove verrà richiesto. Naturalmente non dovrai spendere neanche un centesimo su questi servizi in quanto proponiamo solamente quelli GRATUITI che offrono gratis oggetti ed opportunità di lavoro e di guadagno Vero ! Se vuoi rimanere aggiornato sulle ultime novità abbiamo messo a disponibile un servizio di Newsletter che ti permetterà di ricevere ( circa 2 volte al mese ) direttamente nella tua casella di posta elettronica le ultime novità del mese in corso, scovate su internet ed inserite all’interno del sito.

Come vedi ti ho fatto conoscere tante valide opportunità per guadagnare senza dover spendere neanche un centesimo di euro, questo perché essendo anche io incappato in tranelli e truffe online come quella dei 5 € o più ho deciso di impegnarmi a salvaguardare gli altri utenti che come me possono aver bisogno di arrotondare un po lo stipendio senza però incappare in tranelli o truffe senza avere poi un vero e proprio ritorno economico.

Credo di averti messo davanti degli ottimi strumenti per guadagnare totalmente gratuiti, cheforse neanche sapevi che esistessero !!

Alla fine come dice il proverbio: LE COSE MIGLIORI SONO QUELLE PIU’ SEMPLICI! Informa tutti i tuoi amici di questa splendida opportunità che ti appena trovato invia anche a loro questo singolo file per far conoscere a quante più persone puoi questi servizi gratuiti per ricevere omaggi o denaro online.

Questa guida non prevede i diritti d’autore quindi puoi inviarla a chiunque o pubblicarla sul tuosito web o blog senza problemi, senza però modificare i contenuti di essa.

Se mi vorrai contattare puoi utilizzare il form dei contatti che puoi trovare alla seguente pagina: http://www.concorsiapremi.net/info/contattaci.htm .


L’ultimo consiglio che ti do è quello di iscriverti gratuitamente alla newsletter, http://www.concorsiapremi.net/info/newsletter.htm basta inserire la tua eMail e potrai ricevere in anteprima tutte le novità in più potrai scaricare subito gratuitamente 5 guide complete sul guadagno online e non solo. Adesso ti saluto e ti ringrazio per l’attenzione


Stefano



Secondo me è una bomba... Provatela!;-)



Davide Graziani

giovedì 9 luglio 2009

Come far soldi GRATIS su internet! Tutto vero!!!

Guadagnare soldi online Gratis con i Concorsi a Premi


Ho trovato una guida di Stefano P. creatore e realizzatore del sito http://www.concorsiapremi.net al fine di far conoscere a più persone possibili che si può realmente guadagnare senza acquistare guide da 5 € e più o altri sistemi vari che chiedono dei pagamenti per partecipare.


Diffidate da chi vi promette enormi guadagni chiedendovi prima del denaro e magari facendovi vedere delle immagini dei loro estratti conti. Non sono assolutamente veri!!

Esistono metodi eccezionali totalmente gratuiti per guadagnare veramente, ma
che in pochi conoscono... Ecco perché è necessario DIFFONDERE QUESTA GUIDA!!! FATE CONOSCERE A TUTTI I VOSTRI AMICI QUESTO SISTEMA COMPLETAMENTE GRATIS AL 100 % !!


A voi la guida:


All’interno di questo documento ti metterò a conoscenza di alcuni dei tanti servizi che ti potranno far guadagnare, vincere o semplicemente ricevere gratis oggetti, gadgets e servizi al 100 % gratuiti ( l’intero archivio dei servizi lo puoi trovare accedendo al sito http://www.concorsiapremi.net


Sondaggi Retribuiti


I sondaggi retribuiti sono una validissima opportunità per guadagnare soldi online senza dover spendere neanche un soldo ! Basta effettuare l’iscrizione gratis al sito del servizio dopo di che verrai avvisato tramite email dei questionari disponibili che ti basterà completare inserendo semplicemente le tue opinioni. In media i questionari hanno una durata da 10 minuti a 30 e il valore dipende dall’argomento trattato e dalla durata del questionario in media si stima unguadagno di 5 € a sondaggio completato; naturalmente più sondaggi compilerai più alti saranno i tuoi guadagni.

Di seguito puoi trovare un elenco di società relative a questo settore:


LightSpeed



Lingua Quanto pagano Programma di affiliazione Metodo di pagamento


Italiano



da 2 a 7 € a sondaggi



SI



PayPal, PostePay, Bonifico


Ipsos



Lingua Quanto pagano Programma di affiliazione Metodo di pagamento


Italiano

Da 3 a 6 € a sondaggio


SI
PayPal, PostePay, Premi


MySurvey




Lingua Quanto pagano Programma di affiliazione Metodo di pagamento


Italiano

Da 1 a 7 € a sondaggio


SI
PayPal, Premi, Buoni


Alta Opinione




Lingua Quanto pagano Programma di affiliazione Metodo di pagamento


Italiano

Da 1 a 4 € a sondaggio


SI
PayPal


AltroMondo Opinione



Lingua Quanto pagano Programma di affiliazione Metodo di pagamento

Italiano

Da 1 a 3 € a sondaggio

SI
PayPal, Assegno



Questi elencati sopra sono solamente alcuni dei servizi che offrono sondaggi retribuiti! Per vedere l’elenco completo visita il seguente link: http://www.concorsiapremi.net/cat-concorso/sondaggiretribuiti.htm.




Il mio consiglio è quello di iscriversi a più servizi possibili in modo da ricevere costantemente un buon numero di annunci ( in genere è disponibile 1 sondaggio al giorno per servizio ) quindi iscrivendosi anche solo a 5 di questi servizi potrai ricevere in media 5 sondaggi al giorno e se ognuno vale 5 € puoi guadagnare in un solo giorno anche 25 € !! Mica male se poi lo moltiplichi per 30 arrivi alla bella cifra di 750 € !!!




Naturalmente puoi guadagnare ma ci devi mettere un po’ di volontà e tempo da dedicare.
Provarci non costa nulla. ;-)


Davide Graziani


4) Flex - Come creare animazioni con States e Transitions


La magia ottenibile con pochi click

Una peculiarità di Flex è la possibilità di creare animazioni con pochissimi click, facendo uso degli stati e delle transizioni.

Creiamo un nuovo progetto Flex e lo chiamiamo Animations.

Andiamo nella modalità design del file mxml e sulla destra notiamo il pannello 'State'. Non avendo definito nessuno stato il nostro currentState sarà uguale al BaseState che è identificato con lo stato vuoto = ' '.

Ora inseriamo un Panel con l'attributo title = 'My Animation' e all'interno di esso inseriamo un'immagine, un text e un LinkButton con etichetta 'espandi' come in fugura:




Passando alla modalità source vedremo che il codice prodotto sarà il seguente:


<mx:Panel layout="absolute" width="306" height="231" title="My Animation" id="schedaProdotto">

<mx:Image y="10" width="112" height="125" source="boxes/flashBox.jpg" id="box" x="0"/>

<mx:LinkButton label="espandi &gt;" id="btnDettagli" right="0" bottom="0" click="currentState='dettagli'"/>

<mx:Text x="111" y="10" text="Adobe® Flash® CS4 Professional è dotato di un'interfaccia utente ottimizzata, avanzati strumenti di elaborazione video e un'eccezionale integrazione con le applicazioni correlate, che vi consentiranno di implementare un flusso di lavoro rapido ed efficiente." width="175" id="descrizione0" height="161"/>

</mx:Panel>



Ritorniamo in modalità design e clicchiamo con il destro sul pannello State e poi su new State. Chiamiamo 'dettagli' il nostro stato e gli indichiamo che si deve basare sullo stato di partenza (BaseState).

A questo punto ingrandiamo il nostro pannello, aggiungiamo un altro Text tra il testo già presente e il LinkButton e in quest'ultimo modifichiamo la scritta visualizzata in '< riduci'.

Nello stato 'dettagli' ora il nostro pannello risulterà il seguente:




Se provate a spostarvi dal BaseState all'altro noterete che effettivamente sono state memorizzati due 'fotografie' differenti del nostro pannello a seconda dello stato in cui vi trovate.

Se andate in modalità source noterete il seguente codice :


<mx:states>

<mx:State name="dettagli">

<mx:SetProperty target="{schedaProdotto}" name="width" value="360"/>

<mx:SetProperty target="{schedaProdotto}" name="height" value="376"/>

<mx:SetEventHandler target="{btnDettagli}" name="click" handler="currentState=''"/>

<mx:SetProperty target="{btnDettagli}" name="label" value="&lt; riduci"/>

<mx:AddChild relativeTo="{schedaProdotto}" position="lastChild">

<mx:Text x="15" y="190" text="Il nuovo Adobe® Flash® CS4 Professional è dotato di un'interfaccia utente ottimizzata, avanzati strumenti di elaborazione video e un'eccezionale integrazione con le applicazioni correlate, che vi consentiranno di implementare un flusso di lavoro rapido ed efficiente." width="310" id="descrizione" height="86"/>

</mx:AddChild>

</mx:State>


</mx:states>


Dentro il tag <mx:State> Vengono segnate le modifiche alle proprietà (tag <mx:SetProperty>) che han subito gli elementi del documento (indentificati con l'attributo 'target'), nel nostro caso la larghezza, l'altezza, l'evento click sul LinkButton che riporta allo stato iniziale (currentState='') e l'aggiunta del nuovo elemento Text tramite il tag <mx:AddChild>.


Ora tornate allo stato di partenza e aggiungete l'evento click sul LinkButton che mi fa fassare allo stato 'dettagli' :


click=" currentState='dettagli' ".

Diamo un tocco di animazione nel passaggio tra stati facendo entrare in gioco le transizioni:

Vogliamo che nel passaggio tra uno stato e l'altro il ridimensionamento non avvenga di colpo ma lentamente, rendendo dinamica l'applicazione.

Aggiungiamo i seguenti tags :

<mx:transitions>

<mx:Transition fromState="*" toState="*">

<mx:Resize target="{schedaProdotto}" duration="500"/>

</mx:Transition>

</mx:transitions>

Vogliamo quindi che ci sia una transizione tra tutti gli stati (indicato con *) che faccia un effetto di Resize per il nostro pannello (target='schedaProdotto') e abbia la durata di mezzo secondo (500 millisecondi).


Adesso proviamo la nostra application e per magia avremo il nostro effetto di ridimensiomento al click sul bottone.


Eccovi il codice completo del file Animations.mxml:


<?xml version="1.0" encoding="utf-8"?>

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

<mx:transitions>

<mx:Transition fromState="*" toState="*">

<mx:Resize target="{schedaProdotto}" duration="500"/>

</mx:Transition>

</mx:transitions>

<mx:states>

<mx:State name="dettagli">

<mx:SetProperty target="{schedaProdotto}" name="width" value="360"/>

<mx:SetProperty target="{schedaProdotto}" name="height" value="376"/>

<mx:SetEventHandler target="{btnDettagli}" name="click" handler="currentState=''"/>

<mx:SetProperty target="{btnDettagli}" name="label" value="&lt; riduci"/>

<mx:AddChild relativeTo="{schedaProdotto}" position="lastChild">

<mx:Text x="15" y="190" text="Il nuovo Adobe® Flash® CS3 Professional è dotato di un'interfaccia utente ottimizzata, avanzati strumenti di elaborazione video e un'eccezionale integrazione con le applicazioni correlate, che vi consentiranno di implementare un flusso di lavoro rapido ed efficiente." width="310" id="descrizione" height="86"/>

</mx:AddChild>

</mx:State>

</mx:states>

<mx:Panel layout="absolute" width="306" height="231" title="My Animation" id="schedaProdotto">

<mx:Image y="10" width="112" height="125" source="boxes/flashBox.jpg" id="box" x="0"/>

<mx:LinkButton label="espandi &gt;" id="btnDettagli" right="0" bottom="0" click="currentState='dettagli'"/>

<mx:Text x="111" y="10" text="Adobe® Flash® CS4 Professional è dotato di un'interfaccia utente ottimizzata, avanzati strumenti di elaborazione video e un'eccezionale integrazione con le applicazioni correlate, che vi consentiranno di implementare un flusso di lavoro rapido ed efficiente." width="175" id="descrizione0" height="161"/>

</mx:Panel>

</mx:Application>

Esistono altre tipologie di effetti come la trasparenza (Fade), la rotazione (Rotation), lo spostamento (Move) facenti parte del package mx.effects o derivanti da esso.

E' inoltre possibile porre più effetti sequenzialmente alla stessa Transition inserendoli dentro il tag <mx:Sequence > o in parallelo dentro il tag <mx:Parallel>.

Sta a voi adesso iniziare a sbizzarrirvi!

Davide Graziani


mercoledì 8 luglio 2009

3) Flex - Uso di Application e Components

Come destreggiarsi in Mxml

Una delle splendide caratteristiche di Flex è la capacità di spostarsi e interagire tra file Application (dal quale viene lanciata l'applicazione) e files Components. La facoltà di creare separatamente i vari componenti permette, oltre che rendere il codice più leggibile, il riutilizzo dello stesso e la gestione dei componenti grafici con una migliore sintonia.

Creiamo la nostra applicazione d'esempio per rendere chiaro questo concetto:

Create un nuovo Flex Project con Flex Builder, chiamatelo MyComponents e avrete il relativo file Application. Adesso create una nuova cartella sotto src e chiamatela View. Dentro la view cliccate con il destro e poi selezionate New MXML Component. Chiamatelo FirstView e dove vi viene chiesto "based of" selezionate VBOX (Conteiner di oggetti verticali allineati ).

Dentro il Vbox in modalità Design inseriamo una Label che sarà il titolo della nostra view e un'altra che stamperà un messaggio proveniente da un campo di input della nostra Application. Coloriamo la nostra view di verde per distinguerla da quella che andremo a creare in seguito.

Il codice di FirstView.mxml risulterà alla fine il seguente:


<?xml version="1.0" encoding="utf-8"?>

<mx:VBox horizontalAlign="center" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" backgroundColor="#90F40E">

<mx:Script>

<![CDATA[

import mx.core.Application;

]]>

</mx:Script>

<mx:Label text="Prima view" width="403" height="27" textAlign="center" fontStyle="italic" fontWeight="bold" fontSize="15"/>

<mx:Label width="612" height="26" text="Ciao {Application.application.textInput.text}! Hai selezionato la prima view!"/>



</mx:VBox>

Da notate che facciamo riferimento alla nostra Application tramite le istruzioni Application.application e subentrando in tale nodo del file mxml possiamo accedere a qualsiasi suo componente indicandone l'id (nel nostro caso textInput) e le sue caratteristiche (nel nostro caso la 'text' che indica il contenuto del campo di testo).

A questo punto creiamo un altro Component VBOX, lo chiamiamo SecondView e imponiamo le stesse caratteristiche del precedente a parte il colore di sfondo (stavolta rosso) e il messaggio di saluto.
Eccovi il codice di SecondView.mxml :


<?xml version="1.0" encoding="utf-8"?>

<mx:VBox horizontalAlign="center" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" backgroundColor="#FA2010">

<mx:Script>

<![CDATA[

import mx.core.Application;

]]>

</mx:Script>

<mx:Label text="Second view" width="403" height="27" textAlign="center" fontStyle="italic" fontWeight="bold" fontSize="15"/>

<mx:Label width="628" height="28" text="Ciao {Application.application.textInput.text}! Hai selezionato la seconda view!"/>



</mx:VBox>

Ora andiamo nel file Application e creiamo la logica per rendere dinamica la nostra applicazione: passiamo alla modalità design e inseriamo una Label descrittiva (per indicare all'utente di scrivere il suo nome) e un TextInput (con id= 'textInput') attaverso il quale passero il testo alle views per il messaggio di saluto.


Creiamo la maschera di visualizzazione delle views attraverso il componente ViewStack (conteiner che visualizza i componenti al suo interno uno per volta) che viene inizializzato con un Canvas (conteiner generico) vuoto. Andiamo nella modalità codice e all'interno dello stack inseriamo le nostre 2 view richiamandole con dei tag apparentemente simili a quelli del documento mxml ma accessibili solo dopo aver definito un altro namespace nel tag application con il seguente codice:


<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:views="views.*">




e inserendo i 2 componenti nel ViewStack nel seguente modo:


<views:FirstBox id="First"/>

<views:SecondBox id ="Second" />


A questo punto Creiamo 2 button che ci permettono di spostarci da una View all'altra determinando quale componente il ViewStack dovrà visualizzare attraverso la sua proprietà selectedChild.

Alla fine il codice del file MyComponent.mxml risulterà il seguente:


<?xml version="1.0" encoding="utf-8"?>

<mx:Application creationComplete="{MyViewStack.selectedChild=start}" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:views="views.*">

<mx:Label x="40" y="10" text="Please insert your name e scroll views" width="263" height="28"/>

<mx:TextInput x="40" y="46" width="204" height="35" id="textInput"/>

<mx:ViewStack id="MyViewStack" x="342" y="46" width="700" height="285">



<mx:Canvas id="start" width="100%" height="100%">

<mx:Label x="0" y="10" text="Quale view vuoi selezionare?" width="321" height="67"/>

</mx:Canvas>

<views:FirstBox id="First"/>

<views:SecondBox id ="Second" />



</mx:ViewStack>



<mx:Button click="{MyViewStack.selectedChild=First}" x="40" y="89" label="First view" width="99"/>

<mx:Button click="{MyViewStack.selectedChild=Second}" x="147" y="89" label="Second view" width="97"/>


</mx:Application>



Da notare che nel tag Application ho aggiunto l'instruzione creationComplete="{MyViewStack.selectedChild=start}", per settare, al momento della creazione dell'applicazione, che lo stato iniziale del viewStack è sul Canvas vuoto ( in realtà vuoto del tutto non è avendo aggiunto una Label descrittiva).

Cliccate con il destro sul file MyComponent.mxml e lanciate la vostra applicazione.

Con questo tutorial spero di aver chiarito bene il legame fra i vari componenti in flex. Sono presenti anche altre metodologie di sviluppo tra componenti come l'uso dei moduli e degli swf, ma questi saranno probabili argomenti di prossime lezioni! :-)

Per qualsiasi dubbio sono a disposizione.

Davide Graziani