Salve a tutti,
tempo fa abbiamo visto come utilizzare la proprietà
htmlText della classe textField per aggiugere un link ad un campo di testo utilizzando Actionscrpt 3.0 .
In quella occasione non utilizzammo alcun evento per dire ad Flash di indirzzare l' utente ad una pagina web specifica, era il tag HTML href che assegna l' evento.
Allora mi sono chiesto...mettiamo il caso che ho uno script lato server che mi fornisce il testo html con il tag href, ma che non mi serve per indirizzare l' utente ad una certa pagina web bensì per farne altro...se utilizzassi la tecnica vista la volta scorsa, allora il testo verrebbe cliccato partirebbe una richiesta url verso il browser.
In questo tutorial vedremo come utilizzare una stringa html con tag href asseganata alla proprietà htmltext di un campo di testo ma senza che al click venga lanciata un' altra pagina web.
Utilizzando l' evento LINK della classe TextEvent possiamo delegare la funzione chiamata dall' evento ad eseguire un dato codice sempre recuperando l' url del tag html href.
In sostanza, possiamo decidere cosa farne di quell' url contenuto nel testo html.
Vediamo come fare...*
Creo il solito FLA che salvo con nome ' main.fla '.
Creo al Document Class, un file AS che salvo con ome ' Main.as ', implementata in questo modo:
Code:
package
{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.TextEvent;
import flash.net.URLRequest;
import flash.net.navigateToURL;
public class Main extends MovieClip
{
private var field:TextField;
public function Main()
{
createField();
}
private function createField():void
{
field=new TextField();
addChild(field);
field.selectable=false;
field.wordWrap=true;
field.textColor=0xFFFFFF;
field.x=50;
field.y=50;
field.width=150;
field.htmlText="Clicca quì per vedere il mio sito web";
field.addEventListener(TextEvent.LINK,clickin);
}
private function clickin(evt:TextEvent):void
{
trace(evt.text);
}
}
}
Analizziamo il codice
Propretà
una istanza della classe TextField
private var field:TextField;
Metodi
createField();
creo un campo di testo con le proprietà che peferisco in base alle mie esigenze
field=new TextField();
addChild(field);
field.selectable=false;
field.wordWrap=true;
field.textColor=0xFFFFFF;
field.x=50;
field.y=50;
field.width=150;
ecco il fulcro del tutorial. Da notare che l' url del tag href è preceduto da ' event: ' . Questo ci permette di dire a Flash di non chiamare subito il browser quando il testo viene cliccato. Poi aggiungiamo un listener in ascolto dell' evento LINK della classe TextEvent che chiamerà la funzione clickin
field.htmlText="
Clicca quì per vedere il mio sito web";
field.addEventListener(TextEvent.LINK,clickin);
clickin();
ecco recuperato l' url dalla stringa html. Ora posiamo farne l' uso che vogliamo.
trace(evt.text);
L' output del trace sarà il seguente:
Stay tuned !