Google maps api 3 谷歌地图API-不在Flex中加载。使用地图控件获取灰色屏幕。404错误与错误;跨域?

Google maps api 3 谷歌地图API-不在Flex中加载。使用地图控件获取灰色屏幕。404错误与错误;跨域?,google-maps-api-3,maps,flex3,Google Maps Api 3,Maps,Flex3,我的GoogleMapsAPI有问题,我在Flex应用程序中使用它 我必须定期刷新它5到6次,以使地图正确显示。否则,我会在左上角得到一个标记,地图会变灰。我甚至没有收到错误信息,所以我不确定该排除哪些故障 我怀疑这可能与在生成映射时触发onMapReady(事件)有关,但我不知道如何在Flex中设置某种类型的定时侦听器。(我在谷歌上搜索过,但只在JavaScript或Jquery中找到了这样做的实例。) 有人能告诉我如何使用ActionScript/Flex检查处于空闲状态的地图吗?我想如果我

我的GoogleMapsAPI有问题,我在Flex应用程序中使用它

我必须定期刷新它5到6次,以使地图正确显示。否则,我会在左上角得到一个标记,地图会变灰。我甚至没有收到错误信息,所以我不确定该排除哪些故障

我怀疑这可能与在生成映射时触发onMapReady(事件)有关,但我不知道如何在Flex中设置某种类型的定时侦听器。(我在谷歌上搜索过,但只在JavaScript或Jquery中找到了这样做的实例。)

有人能告诉我如何使用ActionScript/Flex检查处于空闲状态的地图吗?我想如果我能得到那个部分,我可以删除mapevent\u mapready=“onMapReady(event)”并在map空闲时运行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(); 

} 


谢谢你的帮助


更新:使用Firebug开发工具,我发现了2个错误。CrossDomain.xml-中止和404未找到错误。我不知道该怎么做,因为我不知道这些是否只是最初导致问题的症状

嗯,我得感谢我的同事找到了解决办法

这个问题是一个时间问题,在函数运行数据填充映射的同时调用API。因此,他建议在其他两个函数完成之前,mapOnReady事件不应该运行

希望它能帮助遇到类似问题的人

代码如下:

    public function getGeoInfo_Handler(results):void
{
 try
 {

  geoSchoolInfoAry = (results.getSchoolInfo.split(","));

  geoInfoAC = new ArrayCollection(results.getInfo.split(";"));
  remoteCallComplete=true;
  loadMap();
 }
 catch (error:Error)
 {
  FlexException.errorHandler(error, "StudentPopMapModuleCode:getGeoInfoSchool_Handler");
 }
}
public function onMapReady(event:MapEvent = null):void
{
 mapReady=true;
 loadMap();
}

private function loadMap():void
{
 if(mapReady && remoteCallComplete)
 {
  var dojoGeo:Array = geoSchoolInfoAry;
  var md:MarkerData = new MarkerData(dojoGeo[0], dojoGeo[1]);
  var latlng:LatLng = new LatLng(md.lat, md.lng);

  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());

  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);

  addSchoolMarker(md, dojoMarker);
  addStudentsToMap();
 }
}
    public function getGeoInfo_Handler(results):void
{
 try
 {

  geoSchoolInfoAry = (results.getSchoolInfo.split(","));

  geoInfoAC = new ArrayCollection(results.getInfo.split(";"));
  remoteCallComplete=true;
  loadMap();
 }
 catch (error:Error)
 {
  FlexException.errorHandler(error, "StudentPopMapModuleCode:getGeoInfoSchool_Handler");
 }
}
public function onMapReady(event:MapEvent = null):void
{
 mapReady=true;
 loadMap();
}

private function loadMap():void
{
 if(mapReady && remoteCallComplete)
 {
  var dojoGeo:Array = geoSchoolInfoAry;
  var md:MarkerData = new MarkerData(dojoGeo[0], dojoGeo[1]);
  var latlng:LatLng = new LatLng(md.lat, md.lng);

  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());

  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);

  addSchoolMarker(md, dojoMarker);
  addStudentsToMap();
 }
}