Lavorare con i campi di testo in Actionscript 3.0

(scritto da , il giorno 07-03-2008 01:38)
add to my flexgala

Lavorare con il testo in Actionscript 3, significa fondamentalmente utilizzare la classe TextField. Ad esso associamoci poi la possibilità di impostare il testo (colore, font, ecc..) a nostro piacimento tramite la classe TextFormat. Sia in Flash CS3 che in Flex 3 possiamo creare istanze di componenti (TextArea, Text, ecc..) oppure generare aree di testo in maniera dinamica.

Lavorare con il testo in Actionscript 3, significa fondamentalmente utilizzare la classe TextField.
Ad esso associamoci poi la possibilità di impostare il testo (colore, font, ecc..) a nostro piacimento tramite la classe TextFormat. Sia in Flash CS3 che in Flex 3 possiamo creare istanze di componenti (TextArea, Text, ecc..) oppure generare aree di testo in maniera dinamica.

Il contenuto di un singolo campo di testo può essere ovviamente caricato da file esterno (come risultato ad esempio di una elaborazione da database da parte di un linguaggio server-side) o da un file di variabili, oppure da un file XML.

Essendo fondamentalmente un linguaggio di programmazione, Actionscript mette a disposizione non solo semplici campi di testo ma anche "testi di input" all'interno del quale l'utente può scrivere ed Actionscript lavorare l'informazione in esso contenuta. Pensiamo ad un semplice modulo di accesso tramite password e username.

Nell'accezione più semplice della questione, possiamo dire che se in Flash CS3 abbiamo le istanze del campo di testo "dinamico" (uno dei 3 tipi di testo insieme a "statico" e "input"), in Adobe Flex 3 abbiamo invece il componente "Label", come elemento più semplice per l'inseriemnto di testi all'interno di un lavoro creato appunto con Flex Builder. Insieme alla "label" abbiamo anche altri componenti: TextArea e TextInput, di simile utilizzo.

Entrabe le forme di "campi di testo" sfruttano quindi la classe TextField, che tra le sue proprietà annovera appunto la "text". Tramite questa proprietà noi possiamo scrivere in un campo di testo , o label, oppure riprenderne il valore in esso contenuto.
Questo significa che data un'istanza di una label o di un campo di testo dinamico avremo queste due opzioni:

Flex 3
<codice Flex 2/Actionscript 3>

  1. <mx:Label name="label_txt" text="Hello World!"/>


Flash CS3
<codice Flex 2/Actionscript 3>

  1. var label_txt:TextField=new TextField();
  2. addChild(label_txt);
  3. label_txt.text="Hello World!";


Ovviamente nell'esempio per Flash CS3 abbiamo creato un campo di testo in maniera dinamica, mentre nel primo abbiamo solo inserito un componente Label e ne abbiamo impostato la proprietà text.

Il risultato però alla fine non ci cambia di molto: per scrivere usiamo la proprietà "text".
Scrivere del testo in applicazioni Web o Desktop potrebbe tuttavia comportare alcune variazioni importanti: ad esempio dover usare il grassetto. Oppure il corsivo, o altro ancora.
In questo caso a venirci in contro è niente di meno che l'HTML. Possiamo infatti sfruttare i tag dell'HTML per formattare, almeno in minima parte, il contenuto di un campo di testo. Utilizzeremo quindi il tag "b" per il grassetto, "i" per il corsivo, "br" per l'a capo, ecc.. .

NOTA
: Ovviamente non tutti i tag sono supportati. Fanno parte dell'elenco di quelli sfruttabili anche tag come: font e img.
In aggiunta a questo, va ricordato che il Flash Player renderizza anche i CSS interni che esterni, tuttavia questo (i CSS) sarà studio di un successivo articolo. Pertanto tralasceremo l'argoemtno per trattarlo più completamente in un successivo articolo.

Certo, l'uso dell'HTML per la formattazione è una soluzione. Non "la" soluzione. Se non altro pratica nel suo utilizzo.

Non consideriamo in questo caso la classe TextFormat, usata invece per gestire le caratteristiche del testo nel suo complesso.

In base a quanto detto quindi, per scrivere del testo, impostato orientativamente con l'HTML, dobbiamo usare un'altra proprietà rispetto a quella precedente: non più "text" bensì "htmlText".

Flex 3:
<codice Flex 2/Actionscript 3>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
  3. <mx:Script>
  4. <![CDATA[
  5. public var label_txt:TextField=new TextField();
  6. public function init():void
  7. {
  8. label_txt.htmlText="<b>Testo</b> <i>in prova</i>";
  9. stage.addChild(label_txt);
  10. }
  11. ]]>
  12. </mx:Script>
  13. </mx:WindowedApplication>


Flash CS3
<codice Flex 2/Actionscript 3>

  1. var label_txt:TextField=new TextField();
  2. addChild(label_txt);
  3. label_txt.htmlText="<b>Testo</b> <i>in prova</i>";



Come potete notare gli script sono pressapoco identici. Ovviamente il codice di Flex è leggermente più ampio perchè comprende delle parti in più che tuttavia non riguardano direttamente Actionscript 3.
La sostanza tuttavia rimane la stessa.
Apriamo però una piccola nota di merito riguardo al contenuto da inserire all'interno di un campo di testo. Ovviamente l'istanza TextField accetta solo contenuto di tipo "String". Non a caso il contenuto di un campo di testo è incluso tra " ".
In programmazione, come saprete, fa differenza scrivere "9" che è un valore di tipo "string"9 che è un valore di tipo "int".
Questo non significa che non possiamo inserire al suo interno valori numerici o derivati da altro tipo di variabile.
Semplicemente dobbiamo convertire il contenuto in formato "String", così:
[
code]
var mioTesto:TextField=new TextField();
var dataGiorno:Date=new Date();
addChild(mioTesto);
mioTesto.text=String(dataGiorno.getTime());
[/code]

Così facendo infatti ovviamo il problema del tipo di dato da inserire e quello accettato dai campi di testo.

Come dicevamo precedentemente, possiamo anche formattare il testo. Possiamo, cioè, impostare il colore, il tipo di font, ecc..
<codice Flex 2/Actionscript 3>

  1. var mioTesto:TextField=new TextField();
  2. addChild(mioTesto);
  3. mioTesto.text="Hello World!";
  4. var myFormat:TextFormat=new TextFormat();
  5. myFormat.font="Verdana";
  6. myFormat.size=15;
  7. mioTesto.setTextFormat(myFormat);


Provando, vedrete che ora il font e la dimensione del testo sono quelle indicate dall'istanza TextFormat.


Commenti (0)

Registrati ed esegui il login se vuoi lasciare un commento

Visualizza l'articolo in formato pdfScarica o stampa l'articolo "Lavorare con i campi di testo in Actionscript 3.0" in formato PDF

Torna indietro
Per collaborazioni, proposte, segnalazioni scrivete a:

Javaday 2010




  •  
    Articoli
     
  •  
    Blogs
     
  •  
    Eventi
     
  •  
    Layout
     
  •  
    in più
     
 

Utilizzare i Charts components in Flex 3 - I° parte (07-01-2010)
Una delle potenzialità messe a disposizione nel Flex Builder, nelle Flex SDK e nel futuro Flash Builder, è la possibilità di utilizzare i Charts...

JavaDay a Roma il 30 gennaio 2010 (11-12-2009)
Anche quest'anno si terrà a Roma - presso l'Università di Roma Tre - l'attesissimo evento JAVADAY oggi giunto alla 4° edizione. Una full...

Adobe AIR 2 beta su Adobe Labs (09-12-2009)
Già da qualche giorno è disponibile la nuova versione beta di Adobe AIR. Molte sono le novità che questa release presenta. Anzitutto, dato il...

FITC 2010: pronti per la 3° edizione! (22-11-2009)
Nel 2010 si terrà ad Amsterdam il 22 e 23 febbraio: segnate queste date sulla vostra agenda, mi raccomando! E' assolutamente vietato mancare! E...

Verso la creazione di Rich Web Applications con le novità di Spring 3.0 e l'integrazione con Adobe Flex (18-11-2009)
Un evento unico, completamente gratutito, condensato in 3 ore dense di contenuti e anteprime. Per la prima volta in Italia verrà presentata...

Nuovi e-seminar per FlexGALA in calendario (09-11-2009)
Come preannunciato lo scorso settembre, alla ripresa post-vacanze, eccoci con il primo appuntamento al quale faranno seguito altri eventi in...

Website Architecture and Design Using XML
Author : O'Reilly New Books

Take your web design skills to the next level with XML, and learn how to use the content behind the site to drive the information, navigation, and...


continua...

HTML5 Mobile Web Development
Author : O'Reilly New Books

Create mobile web applications using the latest HTML5 technologies. In this 10-session video course, you’ll learn how to style your apps to...


continua...

apri dettaglio news Microsoft Office Professional 2010 Step by Step
Author : O'Reilly New Books


apri dettaglio news Working on New and Legacy topics in the same time.
Author : Flexblog by Faratasystems


JavaDay IV edizione

Data di svolgimento: 30-01-2010

A day in a differtent universe è quello che si...

Rich Web Applications con Spring Training

Data di svolgimento: 30-11-2009

Un evento unico, completamente gratutito, conde...

WorkCity ospite allo SMAU 2009

Data di svolgimento: 21-10-2009

WorkCity, nato da un'idea del nostro collaborat...

Integrare LiveCycle DS nelle architetture Enterprise

Data di svolgimento: 27-11-2008

Livecycle DS e Flex 3 sono le soluzioni di ...

Live Cycle DS best practices: creare architetture per RIA

Data di svolgimento: 05-11-2008

Livecycle DS e Flex 3 rappresentano insieme il ...

Adobe e l\'Open Source: usare le tecnologie aperte di Adobe

Data di svolgimento: 28-10-2008

Non solo licenze a pagamento: Adobe ha detto sÃ...