Darle formato a un texto con TextFormat en AS3. defaultTextFormat en AS3
Tuesday, 20. April 2010
Cuando creamos campos de texto en Flash utilizando ActionScript 3, o bien cuando los introducimos en el escenario y queremos que cambie su apariencia, lo podemos hacer desde el código mismo a través de una herramienta (clase) de AS3: TextFormat. Un objeto TextFormat funciona como si fuera una variable en la cual almacenas la información de cómo quieres que sea un texto, su formato, su parte visual. Después basta con asignarle ese formato al texto, para que tome sus características.
Veamos como utilizar un objeto TextFormat. En primer lugar, vamos a crear el objeto así:
var formatoTexto:TextFormat=new TextFormat();
Esta es la forma de crear un objeto del tipo TextFormat, al cual hemos puesto como nombre ‘formatoTexto’. Bien, ahora, este objeto tiene varias propiedades o características, las cuales podemos empezar a modificar. De momento vamos a cambiarle el color, el tamaño, la alineación, y la fuente del texto. Para eso lo hacemos de la misma forma en que modificamos las propiedades de cualquier objeto: poniendo el nombre, seguido de un punto, la propiedad, signo igual y el valor:
formatoTexto.color=0x990000;
formatoTexto.size=11;
formatoTexto.align='center';
formatoTexto.font='verdana';
Ahora, vamos a crear en este ejemplo un campo de texto a través del código. Si necesitas ayuda en este paso, puedes leer cómo crear un campo de texto con AS3.
var texto:TextField = new TextField();
addChild(texto);
Ahora, a través de estas dos líneas hemos creado un campo de texto, y lo hemos introducido al escenario, aunque no hemos escrito nada en el. ¿Por qué? porque debemos darle el formato antes de introducir el texo. Aquí viene la parte más importante:
Como asignar el formato al texto.
Aquí utilizaremos una sentencia fundamental que incluye ActionScript 3: defaultTextFormat. Esto será lo que nos permitirá relacionar el campo de texto y el formato, es decir, darle formato al texto. Para eso, podemos escribir lo siguiente:
texto.defaultTextFormat=formatoTexto;
Esta línea ha hecho que el texto tenga el formato que habíamos definido. Ya simplemente necesitamos introducir el texto.
texto.text="Este es mi texto";
Y listo. Tendremos un campo de texto con letras rojas, fuente Verdana, centrado y de tamaño 11. Esto es lo que debemos hacer para darle formato a un texto. Aquí, el código completo:
var formatoTexto:TextFormat=new TextFormat();
formatoTexto.color=0x990000;
formatoTexto.size=11;
formatoTexto.align='center';
formatoTexto.font='verdana';
var texto:TextField = new TextField();
addChild(texto);
texto.defaultTextFormat=formatoTexto;
texto.text="Este es mi texto";
Las propiedades que podemos cambiar de esta forma son bastantes. Aquí dejamos la lista, con los valores que traen de forma predeterminada, según nos muestra la ayuda de Flash:
align = “left”
blockIndent = 0
bold = false
bullet = false
color = 0×000000
font = “Times New Roman” (la fuente predeterminada es Times en Mac OS X)
indent = 0
italic = false
kerning = false
leading = 0
leftMargin = 0
letterSpacing = 0
rightMargin = 0
size = 12
tabStops = [] (matriz vacía)
target = “” (cadena vacía)
underline = false
url = “” (cadena vacía)
Espero que sea de utilidad este tutorial, y acepto sugerencias y dudas.
Saludos.
Samuel Jiménez. EsK






Bitacoras.com Says:
Información Bitacoras.com…
Valora en Bitacoras.com: Cuando creamos campos de texto en Flash utilizando ActionScript 3, o bien cuando los introducimos en el escenario y queremos que cambie su apariencia, lo podemos hacer desde el código mismo a través de una herramienta (clas……
Zorel Says:
Muchas gracias, tenía el problema de que lo asignaba con:
[code]
texto.setTextFormat(formatoTexto)
pero como era un campo de introduccion de texto
no me aplicaba el formato
[/code]
GUSUM Says:
Muy buen post, gracias por compartirlo!
Saludos!
manuelgk Says:
Hola, ¿es posible aplicar las propiedades en un texto dinámico que ya esté en la escena? Esto porque veo que estas creando un campo de texto diretamente con código, pero ¿qué pasa con una caja de texto que ya está en el escenario (con todo y texto incluido)? Observé que tienes que dejar la caja vacía y, obviamente, dar el formato (defaultText…) antes de escribir algo en la caja de texto pero si lo quiero (el formato) aplicar directo, no me deja.Salu2
manuelgk Says:
Problema resuelto!!! Es que uso Flash CS5 y tengo que cambiar las propiedades de suavizado a “Utilizar fuentes del dispositivo” ¬¬ para cambiar el formato de la caja de texto. Salu2 y gracias de todos modos
ARELI Says:
oye yo tengo una duda como puedo hacer un link en flash, como tengo que introducir los codigos, y tambien si van en algun orden especificamente. pero quiero que ese link entre a mi misma pagina, quiero que el link abra en la misma pagina. que tengo sin que tenga que abrir otra ventana. por fis ayuda te lo agradecere mucho
ARELI Says:
a se me olvidaba te dejo mi e-mail vale b_are30@hotmail.com, cuidate y grax
Samuel Ruiz Says:
Gracias tocallo, me han servido mucho tus post
Samael Suarez Says:
tengo el problema de que ya escrito el texto el usuario quiera modificarlo, en cuanto a color y tamaño, trabajo con flash cs5.5, lo de tu turotial me ha ayudado mucho pero ya llegue a esto, y ps me van a colgar jeje, grax
Hey! Says:
Hola y como hago que el texto quede en una caja de texto!