CAT | AS3
14
Resolución de DNS en Adobe AIR 2
Sin Comentarios · Posteado por Martin en Air, AS3, Ejemplos, Tutoriales
La nueva habilidad de Adobe Air 2 de resolver DNS, puede ayudar en gran a mejorar las operaciones relacionadas con el manejo de redes en nuestras aplicaciones, si a esto le sumamos el manejo de Sockte´s, que es otra de las innovaciones en la versión 2 de Adobe AIR, se puede ver claramente como despunta un potencial interesante en lo que respecta al desarrollo de aplicaciones que hagan uso de los recursos de red, como por ejemplo serian aplicaciones del estilo per2per o inclusive aplicaciones de telefonía Ip.
Veamos un poco más en profundidad que puede hacer Adobe Air con respecto a los DNS.
Para dar soporte a la resolución de DNS, Adobe a integrado una nueva clase llamada: DNSResolver, que se encuentra en el paquete “flash.net.dns”. Esta clase, resuelve DNS ejecutando un DNS Query estándar, y devolviéndonos una respuesta de los registros en lo que habitualmente se conoce como DNS Records.
Hay muchas clases de DNS Records, pero aquí les detallo cuales son los que Adobe Air 2, va a manejar.
- A: Los registros A son los que mapean una dirección IPv4 con un hostname. Este registro contiene: “hostname”, “TTL (Time To Live)” y la dirección “IPv4″.
- AAAA: Los registros AAA son los que mapean una dirección IPv6 con un hostname. Este registro contiene: “hostname”, “TTL” y la dirección “IPv6″.
- MX: Los registros MX mapean una lista de servidores de mail con un nombre de domino. Este registro contiene: “hostname”, “TTL”, “exchange server” y preferencias.
- PTR: Los registros PTR mapean un hostname con una dirección Ip, en esencia es lo que se conoce como “reverse DNSLookup” . Este registro contiene: “hostname”, “TTL”, y un puntero hacia el host.
- SRV: Los registros SRV mapean una lista de servicios con un hostname. Este registro contiene: “hostname”, “TTL”, “priority”, “weight”, “port”, y “target domain”
La sintaxis para usar la clase sería la siguiente:
public function DNSResolverExample()
{
//Create the resolver object
var resolver:DNSResolver = new DNSResolver();
resolver.addEventListener( DNSResolverEvent.LOOKUP, lookupComplete );
resolver.addEventListener( ErrorEvent.ERROR, lookupError );
//Look up records
resolver.lookup( "example.com.", ARecord );
resolver.lookup( "example.com", AAAARecord );
resolver.lookup( "example.com", MXRecord );
resolver.lookup( "208.77.188.166", PTRRecord );
resolver.lookup( "_sip._tcp.example.com.", SRVRecord );
}
Para probar un poco esta nueva funcionalidad he realizado esta pequeña aplicación, que aquí pueden ver y más abajo descargar.
nota: Es necesario para compilar está aplicación el SDK de Adobe AIR2 instalado en nuestro entrono de desarrollo, en este post hay un tutorial de como instalarlo.

Aquí se puede descargar la aplicación de ejemplo como sus fuentes.
AIR2 Ejemplo DNS
adobe air air beta 2 AS3 DNS DNS Lookup DNS Records Ejemplo Resolución DNS sdk
11
Iterador de Vectores en Flex
Sin Comentarios · Posteado por Martin en Air, AS3, Ejemplos, Flex
Una de las más esperadas adiciones en el Flex 3.4 SDK es la inclusión de la clase Vector.class. Los vectores son en particular especialmente esperados por que proporcionan la seguridad de tipos en tiempo de compilación, que de otra manera no estaría disponible cuando implementábamos cualquier solución personalizada como esta typed collection.
En esencia, los vectores son solo Arrays tipados. Y aunque no son tan robustos o de gran alcance, como lo son sus parientes de C # o Java, en Flex cumplen con su cometido.
Cuando se sabe en tiempo de diseño que se va a trabajar con una colección de un solo tipo, los vectores pueden utilizase de igual manera para proveer seguridad de tipos y también para permitir una mejora en el rendimiento comparado con otras colección de Flex.
Recientemente quise convertir a un buen número de implementaciones de Arrays con tipo en vectores, sin embargo, los Arrays se estaban atravesados con el iterador. Con el fin de reducir la cantidad de código a refactoriar en el cliente, simplemente puse en marcha un vector con un Iterator específico.
Si usted está familiarizado con el Patrón Iterator en general, y la interfaz Iterator en particular, entonces su uso le resultará muy sencillo. Usted puede utilizar el Iterator para realizar iteraciones estándar en un Vector.
A continuación se muestra un ejemplo de uso típico:
var abc:Vector.<String> = new Vector.<String>(3, true);
abc[0] = "a";
abc[1] = "b";
abc[2] = "c";
var it:Iterator = new VectorIterator( alpha );
while ( it.hasNext() )
{
trace( it.next() );
// a, b, c
}
El uso de un iterador con un vector asegura que sólo de pueda realizar una búsqueda lineal, lo que resulta útil con vectores que son Arrays densos. Sin embargo, una consideración debe hacerse cuando se utiliza un Iterator con un vector, la seguridad de tipos se pierde cuando accedemos al vector a través de iterator.next ().
Por eso yo sugiero solamente utilizar Iterator con vectores para apoyar la compatibilidad hacia atrás solamente.
Los archivos completos de este ejemplo se encuentra para descargar aquí: VectorIterator, VectorIteratorTest
Fuente original: Eric Feminella
Adobe Air AS3 Codigo Ejemplo Flex Iterator Patrones de diseño Vector
