Detonator – Explosion Framework para Unity3D

lunes, 15 de febrero de 2010 miguelMoraleda Sin comentarios

Detonator es un framework desarrollado por Ben Throop en el Unity Summer of Code 2009. Este conjunto de scripts hace facil la incorporacion de explosiones a nuestros proyectos con Unity. En su uso mas sencillo, Detonator es un componente que puede ser atachado a cualquier GameObject. En tiempo de ejecucion crea explosiones que son configurables en muchos aspectos, tales como color. tamaño, duracion detalle y sub’elementos como chispas, humo o ondas de choque. Tambien podemos usar Detonator para crear nuestras propias explosiones, extendiendo los scripts para modificarlos.

Este framework es una excelente extension para sus projectos hechos con unity.

PAGINA EN EL SITIO DE UNITY

DESCARGAR UNITY PACKAGE

Lean mas sobre este excelente recurso en el Blog de Ben Throop

Hagan click en una de las imagenes de abajo para verlo en accion. Necesitan tener instalado el plugin de Unity.
NOTA: Aveces me a dado problema con IE, si les pasa algo similar prueben con otro browser
explosion1



Categories: Unity3D Tags: ,

Trabajar con Flash Media Server en Influxis hosting

lunes, 15 de febrero de 2010 miguelMoraleda Sin comentarios

influxis

El servidor de medios Flash de Adobe (Adobe Flash Media Server (FMS)) permite streaming de video, audio y archivos de datos en tiempo real para aplicaciones interactivas desarrolladas en Flash. Es por esto que es ideal para desarrollar aplicaciones de colaboracion multiusuario, juegos multiplayer, video chat, etc.

Flash Media Server es un concentrador de aplicaciones basadas en Flash para conectarse a un centro de mensajería en tiempo real Protocolo (RTMP). El servidor puede enviar y recibir datos hacia y desde el usuarios conectados. Los clientes relacionados entre sí pueden hacer llamadas de procedimiento remoto (RPC) en el lado del servidor y el servidor puede llamar a los métodos específicos en los clientes. Tambien nos brinda la posibilidad de trabajar con SharedObject, los que se usan para sincronizar complicadas estructuras de datos y los métodos de llamada remota en varios clientes de una sola vez. Los objetos se transportan a través de un NetConnection utilizando el Formato de mensaje de acción (AMF), que se maneja transparentemente por el servidor y cliente de flash.

Influxis es una empresa especializada en Flash Media Server, ofrece los servicios de hosting, aplicaciones prefabricadas y recursos FMS para los usuarios, lo que hace que trabajar con FMS sea muy sencillo. La empresa me a dado una cuenta de prueba en sus servidores, es por esto que escribo este articulo, para mostrar lo facil que es trabajar con FMS en Influxis.

Las 10 Razones Mas Importantes Para Escoger Influxis (extraidas desde su sitio)

  • Expertos en FMS: Influxis es el unico especialista en FMS en el mercado, apoyado por un equipo interno de Expertos y desarrolladores profesionales en Flash.
  • Asociados con Adobe: Influxis tiene acceso a la ultima informacion sobre Adobe, a sus programas de beta y esta entre los primeros en ofrecer al mercado nuevos productos FMS.
  • Niveles de Tarifas: Influxis ofrece plandes de precios para acomodar todos los niveles: desde experimentos en pequena escala hasta una red completa de servidores dedicados para las aplicaciones mas robustas.
  • Aplicaciones predesarrolladas: Influxis ha desarrollado una biblioteca completa de aplicaciones personalizables para su uso. Todas ellas incluyen archivos .FLA, e incorporan URLs para vinculacion simple o puede incrustar el codigo directamente en su sitio web. Tambien puede descargar archivos facilmente y publicarlos a su sitio web. Todo esto disenado para que usted este funcional lo mas rapidamente posible.
  • Tambien somos desarrolladores: Nuestro personal esta compuesto por desarrolladores FMS de tiempo completo ? comprendemos. Ofrecemos ayuda con modificaciones menores en sus aplicaciones. Tambien puede encontrar una pletora de recursos disponibles que incluyen Influxis Labs, Preguntas Frecuentes, Foros, Tutoriales, y nuestro personal interno de desarrollo.
  • Servicio al Cliente: Influxis se esfuerza por ir mas alla y proveer personal amistoso y competente para ayudarlo ya sea a comenzar o a resolver un problema.
  • Facil de usar. Comience inmediatamente: Su cuenta Influxis se activa inmediatamente al inscribirse, y el Asistente de asdministracion de archivos Influxis simplifica la organizacion de sus archivos, la publicacion de nuevas aplicaciones, y ud. tiene control total sobre la configuracion de su cuenta.
  • Red mundial: Influxis tiene una red internacional con ubicaciones en EE.UU. y Europa para despliegue y streaming rapido a todas partes del mundo. Tambien podemos integrar nuestra red especializada de Flash Media Interactive Server con cualquier CDN de terceros o con nuestra solucion hibrida FMS/CDN.
  • Sin contratos: Servicio mes a mes le provee flexibilidad para proyectos de corto plazo y campanas publicitarias. Tambien estan disponibles tarifas por evento.
  • Nuestros clientes confian en nosotros: Nuestros clientes incluyen empresas Fortune 500, universidades de clase mundial, agencias de publicidad, servicios gubernamentales, deportes profesionales, desarrolladores y muchos mas que confian en nosotros para alojar sus aplicacione FMS.

Me gustaria agregar un punto a esta lista, algo que yo valoro mucho de Influxis, esto es que son uno de los mayores patrocinadores en toda la movida de flash, estan presentes si no en todos, en la mayoria de eventos relacionados a este sector.
Bueno todo esto a modo de introduccion, aca les dejo 2 ejemplos con FMS, el primero es una aplicacion pre-construida de las que ofrece Influxis, es un simple chat pero ambientado en una escena en 3D. El segundo ejemplo lo hice yo y es sobre el uso de los SharedObject con FMS, esta es la manera mas sencilla de mantener a los clientes comunicados entre si, son muy utiles y faciles de usar. Actualmente estoy desarrollando una pizarra interactiva, espero poder tenerla pronto.
Como ultimo tema me gustaria comentarles un poco mi experiencia con Influxis, yo de FMS no sabia nada de nada y me resulto muy facil comenzar a trabajar con el. Con el panel de control de Influxis se me hizo muy intuitivo el tema y ademas simplifica mucho algunos temas mas avanzados, tales como el control del server (subir y bajar apps, limitarlas a dominios especificos, etc), tambien es de gran ayuda tener las aplicaciones pre-construidas, ya que es posible descargar los fuentes. Ademas la disposicion del equipo de soporte es notable, es un placer involucrarse con ellos, por lo que esta demas decir que recomiendo Influxis como solucion de hosting para sus proyectos con FMS, tienen precios muy flexibles, por lo que me parece muy a la mano de todos (planes desde 6 dolares mensuales). Miren su sitio web y veran de que hablo.

Pre-Builded App Massiva3D

massiva3D, 3D chat app

Ejemplo SharedObject

Deben abrir abrir el ejemplo 2 veces haciendo click en la imagen. Luego dragear los logos y veran como se mueven en ambas ventanas.
SharedObject Example

Categories: Actionscript 3, Actionscript 3, Flash Tags:

Primeros pasos con HYPE

viernes, 12 de febrero de 2010 miguelMoraleda Sin comentarios

Que es HYPE?

HYPE es un nuevo framework desarrollado por Joshua Davis y Branden Hall que tiene como principal objetivo ayudar a los artistas graficos a volver a involucrarse con el codigo, ya que desde actionscript 3 y el enfoque de programacion orientada a objetos, es mucho mas dificil para estos desarrollar aunque sea cosas simples. HYPE brinda un conjunto de clases para el facil y rapido desarrollo de funcionalidades, tales como, sound analysis, object pooling, swarm behaviours, shape layout, grid layout y un extenso etc.
Claramente esto no limita a los programadores a usar HYPE, a mi modo de ver es un gran conjunto de utilidades, facilmente extendible y rehusable.

Descarga e instalacion

Primero que todo, deben descargar la libreria, desde la pagina oficial o directamente desde haciendo click aqui, tambien pueden hacerlo desde el repositorio en github.

Para poder usarlo en nuestros proyectos hay dos formas, la primera que mencionare es el archivo MXP que se lo pueden instalar directamente a su Flash IDE usando “Adobe Extension Manager CS4″, yo la verdad es que no manejo mucho este tema pero esta explicado en la pagina de instalacion. La segunda forma (la que yo uso) es setear el path al source de la libreria en los “source path” del Flash IDE. (edit – preference – actionscript – Actionscript 3.0 settings) y listo, ya pueden usar HYPE en sus proyectos.

Descripcion rapida de algunas clases

  • BitmapCanvas: Captura un DisplayObject en un Bitmap, esto nos permite dibujar en el Bitmap muy facilmente.
  • FilterRhythm: Aplica un array de filtros a un BitmapData con un ritmo especifico.
  • DirectionalVibration: Hace vibrar una propiedad en una direccion dada.
  • ColorPool: Permite manejar una lista de colores y colorear objetos con colores al azar desde el listado.
  • GridLayout: Permite crear una malla de manera simple.
  • ObjectPool: Crea y maneja pools de objetos.
  • Oscillator: Oscila una propiedad con una onda especifica.
  • ShapeLayout: Permite posicionar objetos en una forma dada.
  • SoundAnalyzer: Facil manejo de las frecuencias de sonido.
  • Swarm: Permite que lo objetos se muevan hacia un punto.
  • MouseFollow: Hace que un objeto dado siga al mouse

Mi primer Ejemplo


DESCARGAR EJEMPLO
VER EJEMPLO FUERA DE ESTA WEB

Links

http://stranskydesign.com/blog/hello-hype-what-is-hype-the-flash-as3-framework/
http://thesven.com/?tag=hype
http://www.georgiefurst.co.uk/blog/?p=254
http://active.tutsplus.com/tutorials/workflow/introduction-to-the-hype-actionscript-3-0-framework/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+Flashtuts+(Activetuts%2B)
Video channel at Vimeo

Protegiendo tus SWF con secureSWF

lunes, 8 de febrero de 2010 miguelMoraleda 2 comentarios

secureSWF
Este es un tema que me preocupa bastante desde hace algun tiempo, sobre todo cuando hago trabajos freelance, ya que siempre estoy pensando que al mostrar los avances descompilaran el SWF y desapareceran. Bastante paranoico de mi parte pero no esta tan alejado de la realidad (posible). Afortunadamente nunca tuve algun problema al respecto, pero igualmente prefiero estar protegido al respecto. Ademas estos abusos tambien se usan con otros fines tales como el robo de ideas, busqueda de fallas de seguridad o exploits, etc. Tambien es un tema muy importante cuando tu aplicacion reparte premios con valor comercial, ya que es mas tentador aun el tema de conseguir algun beneficio de forma truculenta.

Cualquiera que posea una copia de un descompilador de SWF puede mirar nuestro codigo actionscript. Tipicamente nos protegemos de este abuso agragando licencias al codigo, mecanismos de proteccion de copias y derechos de autor. Sin embargo esto solo nos cubre en el ambito legal. Pero cualquiera puede acceder a tu codigo pasa abusar de el, ya sea para extraer partes, encontrar fallas de seguridad, extraer ideas, etc.

Actionscript es un lenguaje muy facil de descompilar, existen mas de 22 descompiladores hoy en dia. Esto no es una falla de diseño en el lenguaje, es simplemente una realidad de los lenguajes interpretados, tales como Java, .NET, etc.

La encriptacion del SWF (mas bien la ofuscacion del codigo) hace que al descompilar nuestro SWF, el codigo sea confunso y dificil de entender. Cabe mencionar que no es una encriptacion real.

Bueno por ultimo y para no extenderme mas, a pesar de toda la proteccion que nos brinda la ofuscacion del codigo seguimos vulnerables ante la redistribucion ilegal de nuestra aplicacion, cualquiera puede descargar el SWF y publicarlo en otro sitio. Para solucionar esto secureSWF tiene un sistema de proteccion de dominios (la pelicula solo funcionara dentro de los dominios que nosotros especifiquemos) y ademas un loader encriptado (genera un swf aparte que sera el cargador de nuestra pelicula, asigna nombres encriptados al swf y lo desencripta en tiempo de ejecucion haciendo mucho mas complejo el tema de descargar nuestro swf), la gracia de esto ultimo es protegernos de ataques de SWF rippers o grabbers, que van recolectando cuanto SWF encuentran.

secureSWF es una de las mas sofisticadas herramientas para la ofuscacion de Actionscript y es una buena solucion de proteccion para tus aplicaciones creadas con Flash y Flex.
Con secureSWF estaras protegido contra los programas de descompilacion, prevendras la copia y redistribucion ilegal y te ayudara a incrementar la seguridad en tus aplicaciones. Cabe destacar que la interfaz del programa es muy intuitiva, por lo que se hace muy facil empezar a trabajar con el programa. Ademas la documentacion es excelente.

Que hace la encryptacion SWF de secureSWF

  • Control Flow Obfuscation
  • Dynamic Code Wrapping
  • Statement-level Randomization
  • String Encryption
  • Que partes del codigo oculta la ofuscacion de secureSWF

  • Packages (and internal namespaces for AS3)
  • Classes
  • Functions (getters and setters as well)
  • Variables (local and global variables for AS1 and AS2)
  • Handles Inheritance and Polymorphism
  • Dynamic Variables (even the ones done by AS2 eval)
  • Removes Function Parameters Names
  • Frame Labels
  • Symbol Instance Names
  • Button Names
  • Textfield Names
  • Edit Textfield Variables
  • SWF Metadata
  • ActionScript 3 Metadata
  • Primeros pasos con secureSWF

    Manual secureSWF

    Demostracion de secureSWF

    Solo a modo de ejemplo cree esta clase bastante sencilla para que vean el resultado de la encriptacion con secureSWF.

    Antes
    package
    {
    	import flash.display.Sprite;
    	import flash.display.StageAlign;
    	import flash.display.StageQuality;
    	import flash.display.StageScaleMode;
     
    	public class Main extends Sprite
    	{
    		private var _draw:Sprite;
     
    		public function Main()
    		{
    			super();
    			configStage();
    			createDraw();
    			testFor();
    		}
     
    		private function testFor():void
    		{
    			for (var i:int = 0; i < 10; i++) 
    			{
    				trace(i);
    			}
    		}
     
    		private function createDraw():void
    		{
    			_draw = new Sprite();
    			addChild(_draw);
    			_draw.graphics.beginFill(0xff0000);
    			_draw.graphics.drawRect(0, 0, 100, 100);
    			_draw.graphics.endFill();
    		}
     
    		private function configStage():void
    		{
    			stage.scaleMode = StageScaleMode.NO_SCALE;
    			stage.quality = StageQuality.BEST;
    			stage.align = StageAlign.TOP_LEFT;
    		}
    	}
    }
    Despues
    package
    {
    	import flash.display.*;
     
    	public class do extends Object
    	{
    		public function do(  )
    		{
    			var _local_1:boolen;
    			var _local_2 = false<NULL&param2;
    			if( _local_2&&_local_1 )
    			{
    			}
    			if( _local_2 )
    			{
    				this.break();
    				if( _local_2 )
    				{
    					this.if();
    					if( _local_2&&_local_2 )
    					{
    						this. do();
    					}
    					return;
    		}
    		private function if(  ):void
    		{
    			var _local_1:boolen;
    			var _local_2 = ^===<-^false++;
    			if( _local_1 )
    			{
    				 case = new Sprite();
    				if( _local_2&&this )
    				{
    				}
    				addChild(this. case);
    				if( _local_2&&_local_1 )
    				{
    					this. case.graphics.beginFill(16711680);
    					if( _local_1 )
    					{
    						_local_2 = 0>0;
    						drawRect(,this instanceof 0-0,100,100);
    						this. case.graphics.endFill();
    					}
    				}
    				return;
    		}
    		private var  case:Sprite;
    		private function break(  ):void
    		{
    			var _local_1:boolen;
    			var _local_2:Object;
    			if( _local_2 )
    			{
    			}
    			stage.scaleMode = StageScaleMode.NO_SCALE;
    			if( _local_2 )
    			{
    				stage.quality = StageQuality.BEST;
    				if( 0-0||this )
    				{
    					stage.align = StageAlign.TOP_LEFT;
    				}
    				return;
    		}
    		private function  do(  ):void
    		{
    			var _local_2 = true as param2>=param2;
    			var _local_3:boolen;
    			var _local_1:int;
    			while( _local_1<10 )
    			{
    			}
    			return;
    		}
    	}
    }

    Como veran el codigo queda hecho una locura, pero hace exactamente lo mismo que el original. Para este ejemplo, solo use la encriptacion standart, existen otras mas potentes y otras mas suaves. :) , activando mas protecciones no podia descompilar el ejemplo, ya que el descompilador crasheaba… :) muy bueno!!!
    Bueno con este ejemplo cierro el articulo, espero les haya parecido interesante. Cualquier comentario o duda sera bienvenida.

    Auspiciado secureSWF

    Juego de autos con Unity3D (ahora gratis)

    lunes, 23 de noviembre de 2009 miguelMoraleda 12 comentarios

    carExample-unity3d
    car-Example2-unity3d
    car-Example3-unity3d

    Bueno una vez mas escribiendo sobre Unity3D, la ultima novedad del engine es que ahora es gratuito. Asi que a los que esten interesados en el desarrollo de juegos les recomiendo bajarse el programa y comenzar a experimentar.

    Las imagenes de arriba corresponden a la version actual de un juego de autos que estoy desarrollando en mis tiempos libres. Por ahora solo es la pista, auto y aparece un auto fantasma luego de dar una vuelta. Tiene fallas y quedan muchisimas cosas por hacer, pero creo que va bien encaminado. Ahora estoy usando la version de prueba de Unity3D Pro, lo que me permitio usar el sistema de sombras. Espero lo disfruten y cualquier sugerencia o comentario es bienvenido.

    VER EJEMPLO

    Categories: Unity3D Tags:

    Punto dentro de un poligono con actionscript 3

    miércoles, 28 de octubre de 2009 miguelMoraleda 2 comentarios

    Evaluar si un punto esta dentro de un poligono es una operacion basica, pero eso yo no lo sabia :) hasta que bueno, llega el momento en que es necesario. Perdi bastante tiempo investigando al respecto, asi que ahora comparto con ustedes el resultado, por si puede ahorrarle tiempo a alguien. No detallare la explicacion, les dejo un link al ejemplo funcionando, el codigo y la referencia al sitio de donde saque la informacion. Saludos

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    private function insidePolygon(pointList:Array, p:Point):Boolean
    {
    	var counter:int = 0;
    	var i:int;
    	var xinters:Number;
    	var p1:PointTest;
    	var p2:PointTest;
    	var n:int = pointList.length;
     
    	p1 = pointList[0];
    	for (i = 1; i <= n; i++)
    	{
    		p2 = pointList[i % n];
    		if (p.y > Math.min(p1.y, p2.y))
    		{
    			if (p.y <= Math.max(p1.y, p2.y))
    			{
    				if (p.x <= Math.max(p1.x, p2.x))
    				{
    					if (p1.y != p2.y) {
    						xinters = (p.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x;
    						if (p1.x == p2.x || p.x <= xinters)
    							counter++;
    					}
    				}
    			}
    		}
    		p1 = p2;
    	}
    	if (counter % 2 == 0)
    	{
    		return(false);
    	}
    	else
    	{
    		return(true);
    	}
    }

    DEMO
    SOURCE
    Reference

    Categories: Actionscript 3, Actionscript 3, Flash Tags:

    Adobe AIR 2.0, Lo nuevo que se viene

    miércoles, 14 de octubre de 2009 miguelMoraleda Sin comentarios

    In this first post I will tell you about the new features that are coming with AIR 2.0

  • Start native processes and applications: In AIR 2.0 you will be able to start a native application installed in the OS from you AIR application. This is very very useful.
  • Native Installers: You’ll also have Native Installers for the OS. You will be able to generate .exe, .dmg, .rpm or .deb when you package the file. Obviously the .air file is also included in the list.
  • New classes. FilePromise, URLFilePromise: You will use these classes when you want to download a file from the server but you don’t have the file reference yet. That’s why you will be telling AIR that you have a promise of a file.
  • Socket servers: This is an extraordinary feature. You will be able to configure and start a socket server from the AIR application. We know that FlashPlayer can connect to socket servers but now you will be able to start one from the AIR app and also secure socket servers with TLS
  • IPv6: Now you’ll have compatibility with IPv6.
  • NetworkInfo class: With this new class we can check detail information about the network in the hosting device. Information like the interfaces that are available in the host.
  • UDP support: We can now connect by UDP.
  • Audio encoding: This is an extraordinary functionality because with this feature we will be able to record the sound captured by the microphone without any server like FMS or any other. Basically we can encode the sound raw info as a sound.
  • Global Error Handling: Have you ever tried to handle the multiple errors that you forgot to catch ? Now we can do it. The global error handling will work as a general try and catch block for any exception that could happen during the app execution.
  • JavaScript Debugging and profiling: The ability to debug and profile javascript code in the AIR app will be integrated into the AIR 2.0 runtime. Profiling will be only available from Aptana.
  • New webkit features: Now the engine has a module that supports CSS3 :-D , custom styles can be applied to scrollbars, we can break up text across columns, and more.
  • Profiles for AIR applications: Defined in the application descriptor, we now have a set of profiles that enable/disable some functionality in the Application. We have a “desktop” profile, a “NativeDesktop” profile (for native installers), “mobile” profile (for mobile AIR applications) and “extenden mobile” profile.
  • AIR Mobile applications: Yes, we can now create AIR applications for mobile devices, including the iPhone and the applications for iPhone will be package as .ipa, a native iPhone Application.
  • Categories: Air, Flash Tags:

    Unity3D – explorando un poco mas

    lunes, 28 de septiembre de 2009 miguelMoraleda 8 comentarios

    Bueno el otro dia continue jugando un poco mas con unity3d, segui solamente la parte numero 1 del tutorial para hacer un fps. (ver tutorial). Hacer todo fue bastante sencillo e intuitivo. La interfaz de unity es muy amigable. Los modelos en 3D me los baje gratis de paginas de por ahí.

    Para exportarlos a unity, deben exportarlos con su programa favorito para el manejo de 3D(3ds max, maya, blender, cinema3d) a formato FBX. Yo use 3ds max. Luego en unity lo importan como un nuevo asset, con respecto a los materiales, unity3D genera perfectamente todos los materiales con contiene el modelo, pero lamentablemente la mayoria de texturas externas, tuve que importarlas a mano luego de pasar el modelo.

    Agregar los pocos funcionamientos que tiene el ejemplo me tomo mucho menos tiempo de lo que me tomo construir el mundo. Unity trae incorporado un asset llamado First Person Controller, este componente ya incorpora los movimientos del personaje con el teclado y el movimiento de camara con el mouse.  El resto es cosa de ver el link al tutorial original.

    Aca el resultado de mas menos 5 horas de trabajo.

    VER EJEMPLO

    unity3D example 3

    unity3D example 3

    unity3D example 1

    unity3D example 1

    unity3D example 2

    unity3D example 2



    Categories: Games, Unity3D Tags: ,

    Encontrar la zona usada de una imagen

    miércoles, 19 de agosto de 2009 miguelMoraleda Sin comentarios

    Este es un ejemplo de como encontrar la zona en uso de una image. Imaginen que tienen un png con un dibujo uniforme dentro y algunos bordes transparentes. Con este codigo pueden encontrar la minina area en uso para luego usar solo esa zona para lo que necesiten. Podrian facilmente con una aplicacion en Air guardar el corte como un png, asi la imagen estaria optimizada al tamanio minimo que necesita. O cualquier otra cosa que se les ocurra. Ojala le sirva a alguien.

    Saludos

    1
    2
    3
    4
    
    //Create a color mask with a alpha tolerance value. (_alphaTolerance is the percent)
    var maskTolerance:uint = Math.round((2.55) * (100 -_alphaTolerance)) << 24;	
    //Get used zone
    var usedZone:Rectangle = image.bitmapData.getColorBoundsRect(maskTolerance, maskTolerance, true);

    VER EJEMPLO
    DESCARGAR EJEMPLO



    Categories: Actionscript 3, Flash Tags:

    Google Sky, Moon y Mars usando gmaps-utility-library-flash

    domingo, 19 de julio de 2009 admin Sin comentarios

    Investigando un poco mas sobre google maps me encontre con una libreria de utilidades que proporciona 3 mapas nuevos, el del espacio, la luna y marte. Usarlos es muy simple. La libreria tambien tiene otras utilidades que aun no exploro en profundidad. Si les interesa pueden bajarsela y leer un poco mas en el sitio oficial en google code.
    Visitar aca. http://code.google.com/p/gmaps-utility-library-flash/

    EJEMPLO DE GOOGLE SKY (o presiona la imagen)
    googleSky

    EJEMPLO DE GOOGLE MOON (o presiona la imagen)
    googleMoon

    EJEMPLO DE GOOGLE MARS (o presiona la imagen)
    googleMars



    Categories: Actionscript 3, Flash Tags:
    Get Adobe Flash playerPlugin by wpburn.com wordpress themes