Usar la API de Facebook, ¿por dónde comenzar?

Facebook va más allá de su portal e interacción entre los usuarios, ofrece realmente una plataforma completa con herramientas para desarrolladores donde se pueden hacer aplicaciones para la Web, móviles y Facebook. Estas aplicaciones ponen en servicio un sin fin de métodos y propiedades para que nuestras APPs o Webs puedan convertirse en potentes sistemas de marketing, mediante la recolección de datos y comportamientos de los usuarios.

La API está desarrollada con un extensa compatibilidad a la mayoría de los SDK actuales disponibles, PHP, JavaScript, Android e IOS SDK, ActionScript etc. También está disponible una cantidad básica de plugins para la interacción de nuestros sitios con Facebook en unos simples copy/paste!

El problema concreto que se presenta es que al ser tan extensa y al poseer tantas posibilidades a la hora de listar ventajas o a elegir “que lenguaje es el mas adecuado” se puede volver una tarea desalentadora.

Antes de comenzar, lo correcto sería responder una pequeña lista de preguntas para saber correctamente a que sección específica de la documentación nos deberíamos dirigir:

Quiero leer completamente toda la documentación sin importar el SDK que valla a utilizar: Es muy recomendable ver todo el repositorio de la documentación para tener una idea general de las posibilidades y acercarse mas a esto de las app para Facebook.

Quiero crear una app para mi Web o integrar mi pagina Web con funcionalidades de Facebook: En muchos casos vamos a querer relacionar Facebook y nuestra Web, por ejemplo desde colocar un liked buttom, a un login usando la cuenta de Facebook o hasta la necesidad de recuperar datos y preferencias específicas de un usuario para nuestra Web.

Quiero crear una app (Aplicación) para facebook: Crear aplicaciones dentro de facebook es uno de los recursos mas válidos para generar tráfico. Desde la posibilidad de crear juegos online, recabar datos, relacionar usuarios, crear interacciones como cyber bares, salas de reuniones virtuales o simplemente para promocionar un producto.

Quiero crear una app para un móvil, ya sea android o iOS (iphone): Finalmente también es posible crear aplicaciones nativas que no requieran usar un navegador Web. Muy útil si a una aplicación le queremos complementar recursos sociales o medias shares (compartir video, fotos y/o sonido).

Una vez entendido esta clasificación general, el siguiente paso es comenzar hacer uso de la API en el lenguaje más familiar.

Dibujar polígono API Google Maps Actionscript 3 – Polygon

Siguiendo con los ejemplos, en este caso continuamos el mismo código del ejemplo anterior pero le sumamos la posibilidad de dibujar una zona determinada del mapa con las opciones de Polygon.

ActionScript
< view plain text >
  1. import com.google.maps.Map;
  2. import com.google.maps.MapEvent;
  3. import com.google.maps.MapType;
  4. import com.google.maps.controls.*;
  5. import com.google.maps.LatLng;
  6. //IMPORTAMOS LA CLASE PARA TRABAJAR CON MARCADORES
  7. import com.google.maps.overlays.*;
  8. //importamos la clase para trabajar con opciones para los marcadores
  9. import com.google.maps.overlays.MarkerOptions;
  10. //clase para trabajar con eventos del mouse
  11. import com.google.maps.MapMouseEvent;
  12. //clase requerida para desplegar una ventana
  13. import com.google.maps.InfoWindowOptions;
  14. //clases para trabajar con rellenos y filetes
  15. import com.google.maps.styles.FillStyle;
  16. import com.google.maps.styles.StrokeStyle;
  17. //clases para dibujar un poligono
  18. import com.google.maps.overlays.Polygon;
  19. import com.google.maps.overlays.PolygonOptions;
  20.  
  21. var map:Map = new Map();
  22. //CREAMOS UNA VARIABLE CON EL TIPO MARKER
  23. var marker:Marker;
  24.  
  25. map.key="ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";
  26. map.addEventListener(MapEvent.MAP_READY, onMapReady);
  27. map.setSize(new Point(stage.stageWidth, stage.stageHeight));
  28. this.addChild(map);
  29.  
  30. function onMapReady(event:Event):void {
  31.     //centramos el mapa a las coordenadas deseadas (-31...,-64...) e indicamos el zoom (12) y tipo de mapa por defecto (MapType.NORMAL_MAP_TYPE)
  32.     map.setCenter(new LatLng(-31.409619,-64.184532), 15, MapType.NORMAL_MAP_TYPE);
  33.     map.addControl(new ZoomControl());
  34.     map.addControl(new PositionControl());
  35.     map.addControl(new MapTypeControl());
  36.     //en la libreria cramos un Sprite con el nombre de clase Icono
  37.     //creamos una variable opciones y guardamos el icono
  38.     var opciones:MarkerOptions=new MarkerOptions({icon:new Icono()});
  39.     //CREAMOS UN NUEVO OBJETO CON LAS COORDENADAS DEL MARCADOR
  40.     //y agregamos como parametro las opciones antes modificadas
  41.     marker=new Marker(new LatLng(-31.40949996324042, -64.18445689814757),opciones);
  42.    
  43.     //agregamos un detector de evento para el clic sobre el marcador
  44.     marker.addEventListener(MapMouseEvent.CLICK, ClickMarket);
  45.     //por si quieren saber las coordenadas de un punto descomenten la linea 49
  46.     map.addEventListener(MapMouseEvent.CLICK,mapClic);
  47.     function mapClic(e:MapMouseEvent):void {
  48.         //trace(e.latLng);
  49.     }
  50.     //creamos un poligono dibujando lineas
  51.     var polygon:Polygon=new Polygon([
  52.     //desde
  53.     new LatLng(-31.40949996324042, -64.18445689814757),
  54.     //hasta
  55.     new LatLng(-31.409783819879326, -64.1834162010498),
  56.     //desde
  57.     new LatLng(-31.41198139060486, -64.18427450793456),
  58.     //hasta
  59.     new LatLng(-31.411688384148704, -64.1853259338684)],
  60.     //agregamos las opciones de relleno y filete
  61.     new PolygonOptions({strokeStyle:new StrokeStyle({color:0x000000,thickness:1,alpha:0.7}),fillStyle:new FillStyle({color:0xFF0000,alpha:0.8})}));
  62.     //agregamos el poligono a la visualizacion del mapa
  63.     map.addOverlay(polygon);
  64.     //agregamos el marcador a la visualizacion del mapa
  65.     map.addOverlay(marker);
  66. }
  67.  
  68. //el contenido del globo del marcador
  69. var Texto:String="<b>LeoBaraldi</b> <br/> Juan de los Palotes 225";
  70.  
  71. function ClickMarket(e:MapMouseEvent):void {
  72.     //mostramos el globo y su contenido
  73.     marker.openInfoWindow(new InfoWindowOptions({contentHTML:Texto,pointOffset: new Point(0, -35)}));
  74. }

Personalizar icono marker y desplegar información del lugar con Api Google Maps – MarkerOptions Actionscript 3

En el ejemplo anterior agregamos un marcador en una posición determinada pero usando el icono por defecto del api de Google Maps para Flash, en este nuevo ejemplo vamos a personalizar dicho marcador o marker y sumarle un evento clic para que despliegue un globo o ventana con información.

ActionScript
< view plain text >
  1. import com.google.maps.Map;
  2. import com.google.maps.MapEvent;
  3. import com.google.maps.MapType;
  4. import com.google.maps.controls.*;
  5. import com.google.maps.LatLng;
  6. //IMPORTAMOS LA CLASE PARA TRABAJAR CON MARCADORES
  7. import com.google.maps.overlays.*;
  8. //importamos la clase para trabajar con opciones para los marcadores
  9. import com.google.maps.overlays.MarkerOptions;
  10. //clase para trabajar con eventos del mouse
  11. import com.google.maps.MapMouseEvent;
  12. //clase requerida para desplegar una ventana
  13. import com.google.maps.InfoWindowOptions;
  14.  
  15. var map:Map = new Map();
  16. //CREAMOS UNA VARIABLE CON EL TIPO MARKER
  17. var marker:Marker;
  18.  
  19. map.key="ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";
  20. map.addEventListener(MapEvent.MAP_READY, onMapReady);
  21. map.setSize(new Point(stage.stageWidth, stage.stageHeight));
  22. this.addChild(map);
  23.  
  24. function onMapReady(event:Event):void {
  25.     //centramos el mapa a las coordenadas deseadas (-31...,-64...) e indicamos el zoom (12) y tipo de mapa por defecto (MapType.NORMAL_MAP_TYPE)
  26.     map.setCenter(new LatLng(-31.409619,-64.184532), 12, MapType.NORMAL_MAP_TYPE);
  27.     map.addControl(new ZoomControl());
  28.     map.addControl(new PositionControl());
  29.     map.addControl(new MapTypeControl());
  30.     //en la libreria cramos un Sprite con el nombre de clase Icono
  31.     //creamos una variable opciones y guardamos el icono
  32.     var opciones:MarkerOptions=new MarkerOptions({icon:new Icono()});
  33.     //CREAMOS UN NUEVO OBJETO CON LAS COORDENADAS DEL MARCADOR
  34.     //y agregamos como parametro las opciones antes modificadas
  35.     marker=new Marker(new LatLng(-31.409619,-64.184532),opciones);
  36.     //Y LO AGREGAMOS A LA VISUALIZACION DEL MAPA
  37.    
  38.     //agregamos un detector de evento para el clic sobre el marcador
  39.     marker.addEventListener(MapMouseEvent.CLICK, ClickMarket);
  40.     map.addOverlay(marker);
  41. }
  42.  
  43. //el contenido del globo del marcador
  44. var Texto:String="<b>LeoBaraldi</b> <br/> Juan de los Palotes 225"
  45.  
  46. function ClickMarket(e:MapMouseEvent):void {
  47.     //mostramos el globo y su contenido
  48.     marker.openInfoWindow(new InfoWindowOptions({contentHTML:Texto}));
  49. }

Agregar Marker o pointer en componente de google maps actionscript 3

Cuando vimos tutorial de como utilizar la api de Google maps en adobe flash, surgieron posteriormente muchas dudas por partes de usuarios a la hora de personalizarlo como por ejemplo cargar pointers, marker o puntos de referencias en el mapa. Dado eso voy a ir colocando ejemplos variados de personalización para que quede mas claro la utilización de la misma. El ejemplo siguiente simplemente agrega un marker en el mapa.

ActionScript
< view plain text >
  1. import com.google.maps.Map;
  2. import com.google.maps.MapEvent;
  3. import com.google.maps.MapType;
  4. import com.google.maps.controls.*;
  5. import com.google.maps.LatLng;
  6. //IMPORTAMOS LA CLASE PARA TRABAJAR CON MARCADORES
  7. import com.google.maps.overlays.*;
  8.  
  9. var map:Map = new Map();
  10. //CREAMOS UNA VARIABLE CON EL TIPO MARKER
  11. var marker:Marker;
  12.  
  13. map.key="ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";
  14. map.addEventListener(MapEvent.MAP_READY, onMapReady);
  15. map.setSize(new Point(stage.stageWidth, stage.stageHeight));
  16. this.addChild(map);
  17.  
  18. function onMapReady(event:Event):void {
  19.     //centramos el mapa a las coordenadas deseadas (-31...,-64...) e indicamos el zoom (12) y tipo de mapa por defecto (MapType.NORMAL_MAP_TYPE)
  20.     map.setCenter(new LatLng(-31.409619,-64.184532), 12, MapType.NORMAL_MAP_TYPE);
  21.     map.addControl(new ZoomControl());
  22.     map.addControl(new PositionControl());
  23.     map.addControl(new MapTypeControl());
  24.     //CREAMOS UN NUEVO OBJETO CON LAS COORDENADAS DEL MARCADOR
  25.     marker=new Marker(new LatLng(-31.409619,-64.184532));
  26.     //Y LO AGREGAMOS A LA VISUALIZACION DEL MAPA
  27.     map.addOverlay(marker);
  28. }

Incluir videos de Youtube en tu swf, descagar video youtube con flash, lista personalizada de videos youtube en flash

(08-10-2009) NOTICIA!: Nuevamente el problema de que no se veian los videos ya esta solucionado! descarguen los nuevos files ;)

Navegando por la pagina de unijimpe me encontré con un tuto en php para descargar video de youtube simplemente indicando el valor de id del video, me pareció una excelente idea más si dicha idea podíamos aprovecharla en flash para crear un reproductor con nuestra propia lista de videos y un reproductor armado por nosotros mismos.

reproductor.jpg

Bueno ante que todo se agradece a unijimpe por el php que dio origen a todo el AS que desarrolle.

Es muy simple de utilizar, para flash simplemente utilizamos la clase NetStream y para indicar los videos que deseamos, construimos un archivo de tipo xml para indicar la lista de videos de youtube a reproducir. Con la posibilidad de también cargar un titulo y pequeña descripción del video.

En la estructura del xml, el atributo id=”” dentro de las comillas debe ir el id de video que vemos en youtube, en la siguiente imagen se resalta lo que deben copiar y pegar.
Puede pasar que la url sea así: http://youtube.com/watch?v=NyoCQ9WA0PY&feature=related en ese caso el id es el la parte resaltada en bold http://youtube.com/watch?v=NyoCQ9WA0PY&feature=related

id.jpg

Entre las etiquetas CDATA indicamos la descripción del video como así en el atributo titulo el valor o cadena de texto para dicho título.

El xml utilizado:

  1. <![CDATA[Presentación equipo subaru rally 2007 para el campeonato del mundo 2008]]>
  2. </video>
  3. <video id="GF4qad2sj00" titulo="Capusotto">
  4. <![CDATA[Me encanta este video!]]>
  5. </video>
  6. <video id="6qEcX01WrNk" titulo="Previa de Soda en Cba">
  7. <![CDATA[Se presento soda y fue toda una fiesta, impresionante!]]>
  8. </video>
  9. <video id="do1dAX-IVTE" titulo="El bananero - Harry Potter">
  10. <![CDATA[Aca un video para morirse de risa del amigo elbananero]]>
  11. </video>
  12. <video id="qAWFk63Lrmw" titulo="Battlefield 2142 U2">
  13. <![CDATA[Este un video que lo puse porque si nomas no tenia ganas de buscar ni de escribir]]>

Actionscript utilizado para el reproductor:

ActionScript
< view plain text >
  1. //Dominio donde esta alojado nuestro php
  2. var dominio:String = "";
  3. //nuestro php propiamente dicho
  4. var FilePHP:String = "phpyoutube.php";
  5. //nuestro xml con la lista de videos
  6. var FileXML:String = "videos.xml";
  7. //el valor de id del video en youtube
  8. var id:String = "";
  9. //
  10. var contador:Number = 0;
  11. //
  12. var miXML:XML = new XML();
  13. miXML.ignoreWhite = true;
  14. //
  15. var ListVideos:Array = new Array();
  16. miXML.onLoad = function(ok) {
  17. if (ok) {
  18. ListVideos = this.firstChild.childNodes;
  19. cantVideos_txt.text = "total videos: "+String(ListVideos.length);
  20. id = ListVideos[0].attributes.id;
  21. cargarVideo();
  22. loadDtaVdo();
  23. //
  24. } else {
  25. }
  26. };
  27. miXML.load(dominio+FileXML);
  28. //aca recibimos el resultado del php
  29. var result_lv:LoadVars = new LoadVars();
  30. result_lv.onLoad = function(success:Boolean) {
  31. if (success) {
  32. /*********************************************/
  33. //desde aqui el cambio realizado para el 08-10-2009
  34. var varsTemp:LoadVars = new LoadVars()
  35. varsTemp.decode(String(this))
  36. var urlText:String = varsTemp.toString()
  37. urlText = urlText.substr(35,urlText.length)
  38. urlText = urlText.split('%2C').join(',');
  39. urlText = urlText.split('%2E').join('.');
  40. urlText = urlText.split('%2F').join('/');
  41. urlText = urlText.split('%3F').join('?');
  42. urlText = urlText.split('%3D').join('=');
  43. urlText = urlText.split('%3A').join(':');
  44. my_ns.play(urlText);
  45. //hasta aqui el cambio realizado para el 08-10-2009
  46.  
  47. } else {
  48. trace("Error connecting to server.");
  49. }
  50. };
  51. //enviamos los datos al php
  52. var send_lv:LoadVars = new LoadVars();
  53. function cargarVideo() {
  54. status_txt._visible = true;
  55. status_txt.text = "cargando...";
  56. send_lv.item = id;
  57. send_lv.type = 0;
  58. send_lv.sendAndLoad(dominio+FilePHP,result_lv,"GET");
  59. }
  60. //el encargado de cargar y reproducir el video
  61. var my_video:Video;
  62. var my_nc:NetConnection = new NetConnection();
  63. my_nc.connect(null);
  64. var my_ns:NetStream = new NetStream(my_nc);
  65. my_video.attachVideo(my_ns);
  66. //suavizado del video
  67. my_video.smoothing = true;
  68. //duracion del buffer
  69. my_ns.setBufferTime(4);
  70. //duracion del video
  71. my_ns.onMetaData = function(infoObject:Object) {
  72. //trace(Math.floor(infoObject.duration));
  73. };
  74. //enviamos datos de que esta sucediendo
  75. my_ns.onStatus = function(infoObject:Object) {
  76. if (infoObject.code == "NetStream.Buffer.Full") {
  77. status_txt._visible = false;
  78. }
  79. if (infoObject.code == "NetStream.Play.Start") {
  80. status_txt._visible = true;
  81. buffer();
  82. }
  83. if (infoObject.code == "NetStream.Play.Stop") {
  84. status_txt.text = "Video finalizado!";
  85. }
  86. if (infoObject.code == "NetStream.Play.StreamNotFound") {
  87. status_txt.text = "No se encontro el video!!!";
  88. }
  89. };
  90. //con esto sabemos si ya esta el buffer listo!
  91. function buffer() {
  92. this.onEnterFrame = function() {
  93. var porcentaje:Number = Math.min(Math.round(my_ns.bufferLength/my_ns.bufferTime*100), 100);
  94. status_txt.text = "Buffer:"+porcentaje+"%";
  95. if (porcentaje == 100) {
  96. delete this.onEnterFrame;
  97. }
  98. };
  99. }
  100. //un efectito fade
  101. MovieClip.prototype.fade = function(direccion:String, velocidad:Number) {
  102. if (direccion == "in") {
  103. var efecto = mx.transitions.easing.Regular.easeIn;
  104. this.mi_Tween = new mx.transitions.Tween(this, '_alpha', efecto, this._alpha, 100, velocidad, true);
  105. } else {
  106. var efecto = mx.transitions.easing.Regular.easeOut;
  107. this.mi_Tween = new mx.transitions.Tween(this, '_alpha', efecto, this._alpha, 0, velocidad, true);
  108. }
  109. };
  110. //creamos la funcionalidad de los botones y cargamos los datos de la info
  111. function loadDtaVdo() {
  112. for (var i = 0; i&lt;2; i++) {
  113. this["video"+i].fdoFicha_mc._alpha = 0;
  114. this["video"+i]._alpha = 0;
  115. this["video"+i].fade("in",0.5);
  116. var temp = this["video"+i].fdoFicha_mc;
  117. this["video"+i].reproducir_mc.fondo = temp;
  118. this["video"+i].mini_mc.loadMovie("http://img.youtube.com/vi/"+ListVideos[contador].attributes.id+"/1.jpg");
  119. this["video"+i].titulo_txt.text = ListVideos[contador].attributes.titulo;
  120. this["video"+i].descripcion_txt.text = ListVideos[contador].firstChild;
  121. //
  122. this["video"+i].reproducir_mc.id = ListVideos[contador].attributes.id;
  123. this["video"+i].reproducir_mc.onRelease = function() {
  124. video0.fdoFicha_mc._alpha = 0;
  125. video1.fdoFicha_mc._alpha = 0;
  126. this.fondo.fade("in",0.5);
  127. id = this.id;
  128. cargarVideo();
  129. //
  130. };
  131. if (this["video"+i].reproducir_mc.id == id) {
  132. this["video"+i].fdoFicha_mc.fade("in",0.5);
  133. }
  134. if (contador == ListVideos.length-1) {
  135. contador = 0;
  136. } else {
  137. contador++;
  138. }
  139. }
  140. }
  141. //accion boton siguiente
  142. siguiente_btn.onRelease = function() {
  143. loadDtaVdo();
  144. };
  145. //

Usando API de Google Maps para Actionscript 3

Hace un tiempo publique un componente de AFcomponet que nos permitía usar Google Maps. Dicho momento dejo de funcionar dado los cambios que propuso Google al publicar su API para flash.

De esa manera ahora no necesitamos de un componente de tercero para poder tener mapas en nuestra web, y este ejemplo viene a colación de las extensas consultas y fallas detectadas en el  componente de AF.

Podrán comprobar que la Api provista por Google es mucho más amigable y simple, también cuenta con una velocidad considerablemente más rápida en lo que se refiere a acceso de datos.

Cuenta también una extensa hoja de referencia lo cual nos va a hacer fácil el desarrollo de cualquier aplicación sea para Flash, AIR o Flex.

1 Antes que todo lo que necesitan es gestionar una llave (Key (1)) para utilizar la API, para ello deben visitar este link: http://code.google.com/intl/es-ES/apis/maps/ es importante que sean usuarios registrados de google (Gmail por ejemplo), y la clave va relacionada directamente con el dominio (2) donde ejecutaran la aplicación.

2 El siguiente paso es instalar el SDK o componente que nos provee Google para conectarse a google maps, la descarga la hacemos desde este link: http://maps.googleapis.com/maps/flash/release/sdk.zip

Una vez descargado des compactamos el archivo y lo pegamos en la siguiente carpeta para los que usamos Windows:
X:Archivos de programa\AdobeAdobe Flash CS3\es\Configuration\Components
Nota: X es la unidad de disco donde este instalado – “es”  es el idioma, en este caso yo lo tengo en español, en ingles seria “en”

Nota: si usas CS4 es en: C:\Archivos de programa\Adobe\Adobe Flash CS4\Common\Configuration\Components

Para los muchachos de Mac así: Macintosh HD/Applications/Adobe Flash CS3/Configuration/Components

Si lo hicimos bien abrimos Flash y en la ventana de componentes deberíamos ver algo asi:

3 Ahora con un archivo nuevo en blanco procedemos a arrastrar el componente GoogleMapsLibrary a nuestro escenario.


Abrimos el panel de acciones “F9” y escribimos lo siguiente:

ActionScript
< view plain text >
  1. // importamos las clases necesarias, están son las básicas para este ejemplo alcanzan. Al final del tutorial les dejo el link de las referencias para que puedan ver cada clase en particular.
  2. import com.google.maps.LatLng;
  3. import com.google.maps.Map;
  4. import com.google.maps.MapEvent;
  5. import com.google.maps.MapType;
  6. import com.google.maps.controls.*;
  7. import com.google.maps.LatLng;
  8.  
  9. //seteamos el ancho y alto de nuestra película
  10. var ANCHO:int = stage.stageWidth;
  11. var ALTO:int = stage.stageHeight;
  12.  
  13. //creamos nuevo objeto Map
  14. var map:Map = new Map();
  15.  
  16. //aquí pegamos el código de la llave que sacamos en el primer paso
  17. map.key = "ABQIAAAAvvxprSVgDmort-nQvP9UOBRcIBM5SEgUYyuJIuqH4Qf0kgkYgBT_K4sLwopPkxZFAw-tlQLIRz3sTA";
  18.  
  19. //seteamos el alto y ancho del mapa
  20. map.setSize(new Point(ANCHO, ALTO));
  21. //agregamos un detector de evento para cuando se completo la carga
  22. map.addEventListener(MapEvent.MAP_READY, onMapReady);
  23.  
  24. //cargamos el mapa a nuestra lista de visualización
  25. this.addChild(map);
  26.  
  27. //este es un poniter que agregue yo, el que viene no me gusta
  28. var pointer:Pointer = new Pointer();
  29. this.addChild(pointer);
  30. pointer.x = (ANCHO/2)-(pointer.width/2);
  31. pointer.y = (ALTO/2)-(pointer.height/2);
  32. pointer.alpha = 0.5;
  33.  
  34. //en este campo vamos a imprimir las coordenadas y zoom actuales, si comentan estas líneas pueden ocultar esta parte
  35. var texto:TextField = new TextField();
  36. var formatoTexto:TextFormat = new TextFormat();
  37. this.addChild(texto);
  38. formatoTexto.font = "Arial";
  39. formatoTexto.size = 12;
  40. formatoTexto.align = TextFormatAlign.LEFT;
  41. formatoTexto.bold = true;
  42. texto.multiline = true;
  43. texto.background = true;
  44. texto.autoSize = TextFieldAutoSize.LEFT;
  45. texto.defaultTextFormat = formatoTexto;
  46.  
  47. //si se cargo todo bien ejecutamos!
  48. function onMapReady(event:Event):void {
  49. //centramos el mapa a las coordenadas deseadas (-31...,-64...) e indicamos el zoom (12) y tipo de mapa por defecto (MapType.NORMAL_MAP_TYPE)
  50. map.setCenter(new LatLng(-31.409619,-64.184532), 12, MapType.NORMAL_MAP_TYPE);
  51. //mostramos el control de zoom
  52. map.addControl(new ZoomControl());
  53. //el control de posicion
  54. map.addControl(new PositionControl());
  55. //el selector de tipo de mapa
  56. map.addControl(new MapTypeControl());
  57. //el evento para reimprimir las coordenadas cuando desplazamos el mapa
  58. map.addEventListener(Event.ENTER_FRAME,coordenadas);
  59. }
  60.  
  61. //imprimimos las coordenadas en el campito de texto
  62. function coordenadas(e:Event):void {
  63. texto.text = "Lat/Lng: "+e.currentTarget.getCenter()+"rZoom: "+e.currentTarget.getZoom() ;
  64. texto.x = (ANCHO-texto.textWidth)-10;
  65. texto.y = (ALTO-texto.textHeight)-10;
  66. }

Bueno hasta ahí como pueden ver muy pero muy simple! Espero que les sea útil.

Referencia de la API
Ejemplos de uso por Google