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
Entonces solo hariamos algo asi:
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);
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Zguillez el 25 de Noviembre de 2008
Aunque como te dije la propiedad field es innecesaria.
Y yo delegaría la carga de los datos externos para hacer el código mas reutilizable
PD: También le hubiese venido bien un poco de explicación del código *tirón de orejas
Por Rafael Mendoza el 02 de Diciembre de 2008
Por M@U el 03 de Diciembre de 2008
Rafael Mendoza-blog :
Por JasonGamba el 07 de Diciembre de 2008
Por penHolder el 08 de Diciembre de 2008
Código :
Para probarlo, por ejemplo usa un codigo HTML basico en un archivo txt:
texto.txt
Código :
Y tambien creas un archivo css con los correspondientes estilos:
estilo.css
Código :
Entonces, para usarlo, solo hariamos algo asi:
Código :
Todos los archivos deben estar en el mismo directorio
para entender mas sobre la clase Loader, busca aqui en clab hay bastante info
Por PinkPonk el 15 de Diciembre de 2008
1046: No se encontró el tipo o no es una constante en tiempo de compilación:
private function cssComplete(e:Event):void {
y
private function txtComplete(e:Event):void {
Alguna idea ??? Mil gracias...
Por PinkPonk el 15 de Diciembre de 2008
import flash.events.*;
GRACIAS !!!!!
Por Sonsku el 17 de Diciembre de 2008
Ya sé que el post es antiguo, pero la necesidad me ha traido hasta él y después de mucho pelear me he encontrado con un error que no puedo solucionar principalmente porque no soy nada experta en esto
El error en cuestión es el siguiente:
1151: Existe un conflicto con la definición txt del espacio de nombres internal.
¿Alguien puede ayudar?
Mil gracias
Por yo el 31 de Diciembre de 2009
Recuperar las variables ya lo resolvi, ahora como formateo el texto resultante?.
Por lautaro el 05 de Mayo de 2010
me da el siguiente error:
5001: El nombre del paquete 'ph.display.text' no contiene la ubicación de este archivo. Cambie el nombre de la definición del paquete en este archivo, o mueva el archivo. C:\des\mb\TextHolder.as
ayuda por favor, gracias
[email protected], agradeceria me enviaras un mail