Google Map Flash 开发初步

1、mxml文件:

 

 

代码
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<maps:Map xmlns:maps="com.google.maps.*"

id
="map"

language
="zh-cn"

key
="your_api_key"

width
="100%" height="100%"

mapevent_mappreinitialize
="onMapPreinitialize(event)"//设置MapEvent.MAP_PREINITIALIZE 事件处理程序

mapevent_mapready
="onMapReady(event)" />//设置MapEvent.MAP_READY 事件处理程序

<mx:UIComponent width="100%" height="100%" resize="mapResizeHandler(event);" />//设置地图尺寸改变事件处理程序



<mx:Script>

<![CDATA[

import com.google.maps.*;

import com.google.maps.controls.*;

import mx.controls.*;

import mx.events.ResizeEvent;



//地图载入前初始化

private function onMapPreinitialize(event:Event):void {

var myMapOptions:MapOptions = new MapOptions();

myMapOptions.zoom = 12;

myMapOptions.center = new LatLng(31.133911475228,121.131413457641);

myMapOptions.mapType = MapType.NORMAL_MAP_TYPE;

map.setInitOptions(myMapOptions);

}



//地图载入后初始化

private function onMapReady(event:Event):void {

//在地图上添加控制按钮(只能在MAP_READY事件中)

map.enableScrollWheelZoom();

map.enableContinuousZoom();



map.addControl(new ZoomControl());//缩放控制

map.addControl(new PositionControl());//位置控制

map.addControl(new MapTypeControl());//地图类型控制

map.addControl(new OverviewMapControl());//缩略图



mapComponent.addChild(map);

}



//地图大小改变

private function mapResizeHandler(event:ResizeEvent):void{

map.setSize(new Point(mapComponent.width, mapComponent.height));

}



]]
>

</mx:Script>

</mx:Application>

 

 

 

 2、MAP初始化事件:

  MapEvent.MAP_PREINITIALIZE : 接受初始化参数但还不能投入常规使用时触发此事件。该事件中只允许有一个Map方法即Map.SetInitOptions(),可以传递MapOptions对象,其中可以设置常见的初始化参数如地图中心、缩放级别或MapType。

  MapEvent.MAP_READY : 绘制完地图后触发此事件。(这里不应设置初始化参数,因为需要重新定位和绘制地图,效率较低)

 

  声明初始化事件处理函数:

  (1)在<maps:Map>标签头设置处理函数:

  mapevent_mappreinitialize="onMapPreinitialize(event)"
      mapevent_mapready="onMapReady(event)"  

  (2)在AS代码或MXML中定义private函数:

  private function onMapPreinitialize(event:Event):void {}

 

3、事件

  注册事件:map.addEventListener(MapMouseEvent.CLICK, onMapClick);

  删除事件:map.removeEventListener(MapMouseEvent.CLICK, onMapClick);

  事件处理程序:
  private function onMapClick(event:MapMouseEvent):void { 
        map.setCenter(event.latLng); 

  }

 

4、外部调用接口

  声明:

  ExternalInterface.addCallback("SetCenter",onSetCenter);

  定义:

  private function onSetCenter(Lat:Number,Lng:Number):void {
        map.setCenter(new LatLng(Lat,Lng));

  }

 

5、定时器

  声明:

  private var alertTimer:Timer;

  开始:

  alertTimer = new Timer(1000, 0);
      alertTimer.addEventListener("timer", alertTimerHandler); 
      alertTimer.start();

  定时器处理函数:

  private function alertTimerHandler(eventArgs:TimerEvent):void {

  }

  结束:

  alertTimer.stop();

 

posted @ 2010-06-30 23:45  宝哥哥  阅读(444)  评论(0编辑  收藏  举报