May 19, 2004

Bug en el TextFormat?

No se si esto será un bug o no pero me ha pasado que si quiero agregar mas texto a un TextField que tiene aplicado un TextFormat este queda anulado al insertarse el nuevo texto. Pero esto pasa solo si el TextField no es del tipo HTML.
En el ejemplo que sigue verán que al apretar el botón "Add Text" el String "is a long" pierde todo su formato ( bold y italic ) cuando el TextField no es del tipo HTML.
Ejemplo:
Y el código que uso es el siguiente:
t = "this is a long text bla bla bla bla bla";

tfield1.html = true;
tfield1.border = true;
tfield1.htmlText = t;

tfield2.html = false;
tfield2.border = true;
tfield2.text = t;

var tformat = new TextFormat();
tformat.bold = true;
tformat.italic = true;

tfield1.setTextFormat( 4 ,15, tformat );
tfield2.setTextFormat( 4 ,15, tformat );


but.onRelease = function()
{ tfield1.htmlText += " more text "; tfield2.htmlText += " more text "; }
nota: En el escenario tengo dos textfields con los nombres tfield1 para el HTML y tfield2 para el que no es HTML

Comentarios

No es que sea precisamente un bug, sino que si te fijas, al aplicar un "TextFormat" a un campo, este objeto crea las etiquetas <TEXTFORMAT> dentro del mismo (para referencia, en Flash al darle CTRL+ENTER ve al menu "Debug" y dale "List Variables" o "List Objects" y lo veras), mas bien creo que para hacernos la vida mas facil, los desarrolladores de Macromedia permitieron ambiguedad en su uso con o sin html activado; pero ya ves que sin, como no es HTML, al agregar texto se actualiza del modelo de datos la vista en pantalla :(

Ya está la bitácora listada en Bitacoras.com ;)

Puedes hacer ping e informar así de las actualizaciones a través de nuestra página: http://www.bitacoras.com/directorio/ping.php

Deberás hacer ping con la dirección URL con que estás registrado en el directorio...

Gracias :-)

Va bien el ping...

Muy bien, Gracias por incluirnos :)

Justamente estaba experimentando hoy con esto para hacer un menu, y me he dado cuenta de lo mismo...

Como bien dice Freddie, no creo que sea un bug, lo que pasa es que cada vez que cambias el texto has de incluirle de nuevo el formato que deseas. Así el código del botón debería quedarte como sigue...

but.onRelease = function(){
tfield1.htmlText += " more text ";
tfield2.htmlText += " more text ";
tfield1.setTextFormat( 4 ,15, tformat );
tfield2.setTextFormat( 4 ,15, tformat );
}

De esta manera te aseguras que siempre tendrás el formato que quieras.

Un saludo!!

Si raul tienes razon en lo que dices, pero si nuetro texto es grande y tiene muchos text formats la cosa no es tan comoda que digamos por que tienes que ir guardando uno y cado uno de los textFormats que vas aplicando para luego aplicarselos de nuevo. Esto en el html no sucede, y al ser el comportamiento diferente crea confusion.
aqui va un ejemplo con dos textFormats:
but.onRelease = function(){
tfield1.htmlText += " more text ";
tfield2.text += " more text ";
tfield2.setTextFormat( 4 ,15, tformat );
tfield2.setTextFormat( 40 ,45, tformat );
}

Que quieres que te diga, para textos grandes yo también prefiero el htmltext... de hecho, casi lo prefiero para todo, aunque lo mejor de Flash MX 2004 fue la incorporación de soporte CSS, cosa que hace que descarte del todo el TextFormat.

Si es que donde este una buena CSS... jejeje





Leave this field empty: