viernes, 19 de diciembre de 2008

Capítulo 10) Volvimos....(el semáforo se puso en verde)

Bueno, acá les dejo un componente llamado Semaforo. Lo necesitaba para un desarrollo que estoy haciendo y me pareció que les podría llegar a interesarles.

Lo pueden ver aquí como siempre con los fuentes.

De paso, le quería mostrar un ejemplo de uso de enumerados que es algo que en lo que Flex no se muestra muy amigable, pero con este ejemplo se les puede simplificar la tarea de transplantarlo a sus necesidades. Todo esto lo van a encontrar en la clase public final class LuzEncendida

¿Qué más?

Una clase LuzDeSemaforo.as: les permitirá aprender a hacer un uso muy simple de la propiedad graphics en este caso de un Box. BeginFill, DrawCircle y EndFill son usados para que se dibujen los circulos de colores y con el Alpha, cambiaremos la intensidad de la luz. Todo eso en la función pintar().
Las propiedades agregadas al Box del cual hereda son brillante (Boolean), colorDeLuz (int) y radio(int). Muy simple, pero que reune varias de las funcionlides básicas a la hora de pintar "a mano".

Un componente Semaforo.mxml: hereda de un Canvas (apropiado para aprender a usar la property autolayout en false. Embebe una imagen en tonos de grises con forma de semáforo (si no saben embeber imágenes, les puede ser util) y, como es obvio, las 3 luces (una LuzDeSemaforo por cada color). Si se preguntan como coloque las x e y de las mismas para que coincidan: prueba y error. Lo mismo con el radio. En el codigo declarado en la seccion Script (SemaforoCode.as), aparecerá la property luzActiva (que es un String pero que la vamos a usar restringida al enumerado) y la funcion apagarLuces() (tan simple como necesaria).

Una aplicación Main.mxml: para ver todo lo anterior, de paso para los que no tienen los TabBar muy presentes, pueden ver como se usa. Fijensé que los labels del TabBar salen del Array colores definido con el mismo enumerado que tienen las luces. Al TabBar, de paso, lo usamos para manejar las luces de Semaforo que obviamente incluimos. Pueden ver que la escala en x y en y está duplicada ( scaleX="2" scaleY="2" ), esto lo puse porque me ayudó a elegir los x e y de las luces, pero ya que estaba lo dejé por si no jugaron con esto todavía.

Cuando lo tenga incluido en el juego, les muestro el semaforo en funcionamiento real.

Bueno, será hasta la próxima, espero sus comentarios.

Hasta Siempre.