Esta es una clase simple que facilita el cargado de un texto externo y su css correspondiente agilizando el uso de contenido externo. La clase extiende de TextField, y recibe solo la ruta del contenido y el css.
Código :
package ph.display.text{
//
import flash.text.TextField;
import flash.text.StyleSheet;
import flash.net.URLLoader;
import flash.net.URLRequest;
//
public class TextHolder extends TextField {
//
private var field:TextField;
private var externalTxt:String;
private var externalCss:String;
private var css:StyleSheet;
private var cssLoader:URLLoader;
private var txtLoader:URLLoader;
//
public function TextHolder():void {
//
field = this;
}
//
public function loadExternalContent(_externalTxt:String, _externalCss:String = ""):void {
//
externalTxt = _externalTxt;
externalCss = _externalCss;
//
loadText();
}
//
private function loadText():void {
//
cssLoader = new URLLoader;
cssLoader.load(new URLRequest(externalCss));
cssLoader.addEventListener(Event.COMPLETE, cssComplete);
//
txtLoader = new URLLoader;
txtLoader.load(new URLRequest(externalTxt));
txtLoader.addEventListener(Event.COMPLETE, txtComplete);
}
//
private function cssComplete(e:Event):void {
//
css = new StyleSheet();
css.parseCSS(e.target.data);
field.styleSheet = css;
}
//
private function txtComplete(e:Event):void {
//
field.htmlText = e.target.data;
}
//
}// class
}// package
Código :
import ph.display.text.TextHolder; // var texto:String = "miTexto.txt"; var estilo:String = "miEstilo.css"; var txt:TextHolder = new TextHolder(); txt.loadExternalContent(texto, estilo); addChild(txt);
Rafael Mendoza-blog :
Código :
package ph.display.text{
// importamos los paquetes necesarios
import flash.text.TextField;
import flash.text.StyleSheet;
import flash.net.URLLoader;
import flash.net.URLRequest;
//
public class TextHolder extends TextField {
//
private var field:TextField; // esta variable se pude obviar
private var externalTxt:String; // la ruta donde estara nuestro texto
private var externalCss:String; // la ruta donde estara nuestro estilo
private var css:StyleSheet; // el objeto de tipo css
private var cssLoader:URLLoader; // el loader para cargar el estilo
private var txtLoader:URLLoader; // el loader para cargar el texto
//
public function TextHolder():void {
//
field = this; // como dije, se puede ovbiar y usar directamente this
}
//
public function loadExternalContent(_externalTxt:String, _externalCss:String = ""):void {
// pisamos las variables e iniciamos la funcion que carga el texto
externalTxt = _externalTxt;
externalCss = _externalCss;
//
loadText();
}
//
private function loadText():void {
// instanciamos el primer loader y le pasamos la ruta del archivo por medio del metodo load()
cssLoader = new URLLoader;
cssLoader.load(new URLRequest(externalCss));
// llamamos una funcion cuando se haya completado la carga
cssLoader.addEventListener(Event.COMPLETE, cssComplete);
// lo mismo pero con el texto
txtLoader = new URLLoader;
txtLoader.load(new URLRequest(externalTxt));
txtLoader.addEventListener(Event.COMPLETE, txtComplete);
}
//
private function cssComplete(e:Event):void {
/*
primero instanciamos el objeto StyleSheet,
luego, mediante el metodo parseCSS() "leemos" el contenido y, finalmente,
le asignamos el contenido al texto
*/
css = new StyleSheet();
css.parseCSS(e.target.data);
field.styleSheet = css;
}
//
private function txtComplete(e:Event):void {
// finalmente nos queda cargar el texto
field.htmlText = e.target.data;
}
//
}// class
}// package
Código :
<p><h1>Bienvenidos a Cristalab</h1> <a href="http://www.cristalab.com/usuario/2-freddie" target="_blank">Freddie</a>. es el creador de <b>Cristalab</b> y confiesa que existen dos razones principales de su creación, la primera es muy íntima: <span class="quote">"Cristalab surge en respuesta al claro deseo de aniquilar, sin el menor miramiento, piedad o tregua, a Maestros del Web. La versión para el público es que Cristalab nació como una comunidad independiente, sin enlaces corporativos, obligaciones con terceros o simplemente la mentalidad tradicional.</span> <span class="foot">Fragmento tomado de la <a href="http://www.maestrosdelweb.com/editorial/freddie-vega-de-cristalab/" target="_blank">entrevista a Freddie en Maestros del Web</a>.<span/> </p>
Código :
h1 {
font-size:24px;
font-family:"verdana";
color:#336699;
text-align:center;
}
p {
font-family:"verdana";
font-size:12px;
color:#333333;
text-indent:10px;
text-align:left;
}
.quote { color:#AAAAAA; font-style:italic; }
.foot { font-size:9px; text-align:right;}
a:link { color:#006699; }
a:hover { color:#0099CC; text-decoration:underline; }
Código :
import ph.display.text.TextHolder; // var texto:String = "texto.txt"; var estilo:String = "estilo.css"; var txt:TextHolder = new TextHolder(); txt.loadExternalContent(texto, estilo); addChild(txt);