En ActionScript 3 es posible, de forma fácil, ejecutar acciones actionscript cuando el usuario clickea sobre un enlace dentro de un campo de texto HTML de nuestra web. Tal como en versiones anteriores de Flash lo hacíamos por medio de asfunction. Esto lo conseguimos gracias al protocolo de detección de eventos de AS3.
Por ejemplo, este sería la forma típica de añadir un enlace externo a un campo de texto dinámico:
Código :
texto.htmlText = "Troiae qui <a href='http://www.cristalab.com'>primus</a> ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram."
Código :
texto.htmlText = "Troiae qui <a href='event:http://www.cristalab.com'>primus</a> ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram"
Código :
texto.addEventListener(TextEvent.LINK,clica);
function clica(event:TextEvent){
var url:String = event.text;
navigateToURL(new URLRequest(url));
}
Código :
texto.addEventListener(TextEvent.LINK,clica);
function clica(event:TextEvent){
var url:String = event.text;
navigateToURL(new URLRequest(url));
ejecuta_accion();
}
Código :
texto.htmlText = "Troiae qui <a href='event:1'>primus</a> ab oris Italiam, fato <a href='event:2'>profugus</a>, Laviniaque venit litora, multum ille et terris <a href='event:3'>iactatus</a> et alto vi superum saevae memorem Iunonis ob iram"
texto.addEventListener(TextEvent.LINK,clica);
function clica(event:TextEvent){
var accion:Number = event.text;
switch (accion) {
case 1 :
ejecuta_accion();
break;
case 2 :
ejecuta_otra_accion();
break;
case 3 :
ejecuta_otra_accion_mas();
break;
}
}
Código :
texto.htmlText = "Troiae qui <a href='event:1'>primus</a> ab oris Italiam, fato <a href='event:2'>profugus</a>, Laviniaque venit litora, multum ille et terris <a href='event:3'>iactatus</a> et alto vi superum saevae memorem Iunonis ob iram"
texto.addEventListener(TextEvent.LINK,clica);
function clica(event:TextEvent){
var accion:Number = event.text; --------->accion NO puede ser Number, ha de ser String
switch (accion) {
case 1 : --------> al ser accion un String deberia ser case "1"
Código :
import flash.text.StyleSheet
///////////////////DEFINICION DEL ESTILO///////////////////
var style:StyleSheet = new StyleSheet();
var styleObj:Object = new Object();
styleObj.fontSize = "bold";
styleObj.textDecoration = "underline";
styleObj.color = "#3E09BB";
style.setStyle(".Chulo", styleObj); //El estilo lo llamaremos Chulo
texto.styleSheet = style;
////////////////////////////////////////////
texto.htmlText = "Troiae qui <span class = 'Chulo'><a href='event:1'>primus</a></span> ab oris Italiam, fato <span class = 'Chulo'><a href='event:2'>profugus</a></span>, Laviniaque venit litora, multum ille et terris <span class = 'Chulo'><a href='event:3'>iactatus</a></span> et alto vi superum saevae memorem Iunonis ob iram"
addChild(texto)
////////////DETECTOR DE EVENTOS/////////////////////////
texto.addEventListener(TextEvent.LINK,clica);
function clica(event:TextEvent){
var accion:String = event.text;
switch (accion) {
case "1" :
trace("Hola soy el link 1");
break;
case "2" :
trace("Hola soy el link 2");;
break;
case "3" :
trace("Hola soy el link 3");;
break;
}
}