Mostrando entradas con la etiqueta Flex. Mostrar todas las entradas
Mostrando entradas con la etiqueta Flex. Mostrar todas las entradas

domingo, 16 de agosto de 2009

Incluir fuentes en un proyecto Flex

Esta es una de esas tareas que suenan sencillas pero que tienen sus vueltas: ¿cómo incluir una fuente en un proyecto Flex?

Lo primero que debe hacerse es declarar una variable en la clase principal de proyecto. La variable es usada solamente con el fin de que el compilador vincule a la fuente. Veamos el código:


[Embed(source="C:\\Windows\\Fonts\\framd.ttf", fontFamily="Franklin Gothic Medium Normal", mimeType="application/x-font")]
private var fontFranklin:String;

Lo siguiente es definir un TextFormat y aplicarlo al campo de texto sobre el cual queremos aplicar la fuente.

En este caso se creó un campo de texto de nombre "txt" al cual se le aplicó el TextFormat:


//Creamos el TextFormat
var myFormat:TextFormat = new TextFormat("Franklin Gothic Medium Normal", 12, 0x000000);

//Creamos el campo de texto
var txt : TextField     = new TextField();
txt.text                = "Hola mundo!";
txt.embedFonts          = true;
txt.setTextFormat(myFormat);

//Agregamos el campo de texto al documento
addChild(txt);

Listo! Si compilamos el proyecto deberíamos ver el campo de texto suavizado con la fuente incluida.

Para mayor información puede consultarse el artículo Using embedded fonts en el sitio de Adobe

miércoles, 12 de agosto de 2009

Obtener la clase de un objeto en Actionscript 3

Este es uno de esos tips que siempre vienen bien tener a mano (visto en el sitio de Dave Keen)
Una forma rápida y útil de obtener la clase de un objeto en actionscript es la siguiente:

static function getClass(obj : Object) : Class {
  return Class(getDefinitionByName (getQualifiedClassName(obj)));
}

Esto es muy útil por ejemplo para comparar los tipos de dos objetos:

if (firstObject is getClass(secondObject)) {
    trace("Ambos objetos son del mismo tipo!");
}

Para obtener la clase padre de la clase de un objeto puede usarse:

static function getSuperClass(o : Object) : Object {
  var n: String = getQualifiedSuperclassName(o);
  if(n == null) {
    return(null);
  }
  return(getDefinitionByName(n));
}

jueves, 30 de julio de 2009

An internal build error has occurred. Right-click for more information.

Hace tiempo ya que vengo trabajando en una aplicación desarrollada con Flex Builder 3.

Se trata de un proyecto Actionscript.
Si bien el IDE tiene todas las ventajas y comodidad de trabajar con Eclipse, también tiene su lado oscuro.

Hemos tenido toda suerte de problemas a la hora de compilar, básicamente por falta de experiencia al comienzo.
Una vez fuimos ganando en experiencia (hace casi un año que estamos trabajando) nos hemos topado con esos errores que a uno lo dejan con ganas de arrancarse uno a uno todos los pelos.

En particular hablaré de este tan poco descriptivo error que nos tuvo en jaque casi dos días:

An internal build error has occurred. Right-click for more information.

Luego de buscar y buscar en internet no tuvimos mayor suerte.
Hasta que luego de prácticamente revisar cada bloque de código encontré esto:


    switch (value) {
       /*case "first":
             trace ("first item");
         break;*/ 
  
     }


Al parecer, Flex enloquece con este comentario dentro del bloque del switch.

Al descomentarlo, el error desapareció y nos permitió por fin compilar!

Espero pueda servirte este dato!
Hasta la próxima.