Google Map Flash 开发初步
1、mxml文件:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?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();