我在使用 Flex 应用程序时遇到了 Google Maps API 的问题。
定期,我必须刷新它 5 或 6 次才能使地图正确显示。否则,我会在左上角得到一个标记,并且地图显示为灰色。我什至没有收到错误消息,所以我不确定要解决什么问题。
我怀疑它可能与在生成地图时触发 onMapReady(event) 有关,但我不知道如何在 Flex 中设置某种类型的定时监听器。(我已经用谷歌搜索了这个,但只在 JavaScript 或 Jquery 中找到了这样做的实例。)
有人可以告诉我如何使用 ActionScript/Flex 检查地图是否处于空闲状态吗?我想如果我能得到那部分,我可以删除 mapevent_mapready="onMapReady(event)" 并让 onMapReady(event) 函数在地图空闲时运行......或类似的东西。我已经在 JavaScript 中看到过它,但当然它不能直接在 AS 中工作,而且我对这两种方法的了解都不够,无法进行正确的翻译。
这是我的代码:
public function onMapReady(event:MapEvent):void {
var dojoGeo:Array = geoSchoolInfoAry;
var md:MarkerData = new MarkerData(dojoGeo[0],dojoGeo[1]);
var latlng:LatLng = new LatLng(md.lat,md.lng);
var markerOptions:MarkerOptions = new MarkerOptions();
markerOptions.icon = new dojoIcon();
var dojoMarker:Marker = new Marker(latlng,markerOptions);
map.addOverlay(dojoMarker);
var markerOptions2:MarkerOptions = new MarkerOptions();
markerOptions2.icon = new studentIcon();
var studentMarker:Marker = new Marker(latlng,markerOptions2);
map.addOverlay(studentMarker);
map.setCenter(new LatLng(dojoGeo[0],dojoGeo[1]), 11, MapType.NORMAL_MAP_TYPE);
map.addControl(new ZoomControl());
map.addControl(new MapTypeControl());
map.addControl(new ScaleControl());
addSchoolMarker(md,dojoMarker);
addStudentsToMap();
}
和
<mx:HBox width="100%" height="100%">
<maps:Map xmlns:maps="com.google.maps.*" id="map" key="map key here" mapevent_mapready="onMapReady(event)" width="90%" height="90%" sensor="false" />
</mx:HBox>
谢谢你的帮助!
更新:使用 Firebug 开发工具,我发现了 2 个错误。CrossDomain.xml - Aborted and 404 Not Found 错误。不完全确定如何进行此操作,因为我不知道这些是否只是首先导致问题的症状。