Comunidad de diseño web y desarrollo en internet online

Texto dinámico animado + Formato dinámico

Citar            
MensajeEscrito el 01 Ago 2008 08:19 am
Hola,

Llevo con un problema desde hace tiempo y es que resulta que debo escoger si el texto que cargo mediante XML será animado o podrá utilizar tags HTML para el formato de éste.

Para la animación le incorporo fuentes embebidas (embedFonts) y el formato de todo el TextField con TextFormat. En cambio, si doy prioridad al formato, le paso el texto como HTML, pero limita sus posibilidades de animación.

¿Hay alguna forma de poder darle formato al TextField mediante HTML o loquesea (pudiendo utilizar negritas y lo que me plazca) y animar el texto sin problemas? Utilizaba un apaño de ponerle un clip encima como "tapa", pero esta vez no me sirve.

Un saludo

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 01 Ago 2008 08:38 am
No importa el método que hayas utilizado para leer el texto, si las fuentes están embedidas utiliza el antiAliasType para decir que tipo de antialiasing va a tener el texto (el estado normal es el que tiene por defecto).

El siguiente ejemplo crea un texto con propiedad html, debes tener al la biblioteca dos fuentes una exportada para as como "Arial" y otra exportada como "ArialB".

Código :

var texto:TextField = this.createTextField("texto", this.getNextHighestDepth(), 100,100,0,0);
var inc:Number = 5;

with(texto){
   
   autoSize = true;
   embedFonts = true;
   antiAliasType = "normal";
   html = true;
   htmlText = "<font face='Arial'>Texto con una parte <font face='ArialB'>bold</font></font>";
   
}

this.onEnterFrame = function():Void{
   
   texto._rotation += 10;
   texto._x += inc;
   
   if(texto._x > Stage.width){
      
      inc = -5;
      
   }
   
}


A mi me gusta más para animar el antiAlias en normal, aunque si pruebas en advanced se podrá leer mejor el texto pero la animación queda un poco menos fluida, de todas formas prueba para que veas otro resultado.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Ago 2008 08:58 am
No había pensado en utilizar fuentes que ya vienen en negrita y claro, con el tag <b> la cosa no funcionaba. Creo que me he hecho un lio de algo bastante sencillo; aunque si queremos trabajar con la misma fuente pero con distinto tamaño, deberemos incorporar ambas en la biblioteca, ¿no?

Respecto al antialias, no lo he tocado, ya que trabajo con texto pequeño y a duras penas se deja leer.

Mil gracias por tu tiempo.

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 01 Ago 2008 09:10 am

Código :

_field = _container.createTextField("field",_container.getNextHighestDepth(),2,1,feedWidth-4,0);
_field.embedFonts = true;
_field.wordWrap = true;
_field.autoSize = true;
_field.selectable = false;
_field.tabEnabled = false;
_field.html = true;
_field.htmlText = "<font face='Arial' color='#FF0000' size='11'>"+_text+"</font>";
// inexplicable acontecimiento
trace("a: "+_field._height); // o sustituirlo por "var bug = _field._height;"
trace("b: "+_field._height);


Esto imprime:
a: 16.25
b: 53


Si no referencio la propiedad _height anteriormente (sea con trace o con var), no se actualiza, ¿alguna explicación?

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 01 Ago 2008 10:36 am
Bueno he copiado tu mismo código a mi flash lo pruebo y las dos veces me lanza 16.25, debe ser que estas leyendo el texto externo y primero te lanza la medida del campo de texto vacío y después te lanza la medida del campo de texto con el texto que se ha leido.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Ago 2008 10:40 am
Ahh lo que me preguntabas para tener la misma fuente en bold, debes tener las dos variantes importadas en tu flash, lo mismo en la biblioteca exportadas para AS, que en un frame al principio de tu película como texto dinámico y con la fuente en embed, en realidad utilicé ese ejemplo para que vieras la propiedad antialias, pero lo mejor es trabajar con css, de esa forma puedes formatear el texto diciéndole:

Código :

<span class="textosN">Este texto normal</span><span class="textosB">Este texto en bold</span>


Y no hay que enredarse con largos tags de <font>

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Ago 2008 02:23 pm

elchininet escribió:

Bueno he copiado tu mismo código a mi flash lo pruebo y las dos veces me lanza 16.25, debe ser que estas leyendo el texto externo y primero te lanza la medida del campo de texto vacío y después te lanza la medida del campo de texto con el texto que se ha leido.


En cualquier caso es bastante extraño, ¿una variable almacenando 2 valores? El texto ya está leído con bastante antelación, por lo que no hay ningún tiempo de espera de por medio (y menos de una linea a otra de código).

Lo del CSS parece la opción más elegante, así que apartir de ahora pensaré en ello.

Saludos!

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 01 Ago 2008 09:36 pm
Si el texto ya está leido hace rato, entonces si que es extraño el problema... jaaa, pero bueno, ya sabes que no es problema del código porque lo probé yo y me lanza dos veces la misma variable, quizás sean los duendes que se apoderaron de tu ordenador :lol:

Saludos

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.