如何在FLEX 3.5 TabNavigator选项卡中“预加载”Google Maps API?

问题描述:

我有一个Flex 3.5 Air应用程序;除了标题之外,主窗口还有一个TabNavigator。在一个标签中,我放置了一个Google Maps对象。它工作正常,但它“加载”非常缓慢,整个应用程序冻结(没有响应的问题)。如何在FLEX 3.5 TabNavigator选项卡中“预加载”Google Maps API?

现在我想解决这个问题,但现在不是真的如何实现这些解决方案之一: 1)在整个应用程序加载之前加载API。 2)单击标签时,以某种方式加载API async。我并不需要花哨的预加载器,这足以让我的应用程序不会冻结。

请注意我是“110%”,因为标签画布为空,并且没有其他代码[双重检查],所以我确信它是GoogleMaps的错。另请注意,地图只加载,然后我调用setCenter方法,所以没有其他操作可以冻结它。

编辑:我设法确定不Api对象创建速度慢,但它的实际显示在GUI上。这是一行代码。 ResellersMapClass只扩展Google Maps API类,因为我打算添加额外的功能。但现在是干净的。

this.map = new ResellersMapClass(); 
//between here 
this.mapContainer.addChild(this.map ); 
//and here 

现在有一种方法可以预加载吗?或者其他可以防止GUI冻结的解决方案。

感谢, 加布里埃尔

+0

我不确定你的意思是API加载缓慢。你能详细解释一下吗?它加载多久?项目如何建立?也许你可以给我们看一些代码? – ilikeorangutans 2010-05-07 00:42:25

+0

是的,你是对的。不是API正在加载缓慢的API调用。没有什么可展示的。我只是添加了Google地图的MXML代码,如API示例页面所示(填写我的密钥,就是这样)。我只是希望有一种异步方法来“加载”一个通用对象,这种方法不会冻结整个应用程序。请不要误会我的意思,我对代码或其他东西没有偏执,只是我99%确定这是一个普通的GMaps问题。 – 2010-05-10 09:50:55

+0

有没有解决方案? – Immanuel 2010-05-31 11:42:01

我曾与雅虎相同的问题地图API。最后,我把它放在一个模块中,并为它加载了一个ProgressBar。至少应该帮助解决异步问题。如果问题在库中是一个繁重的算法,那么除非Flash推出真正的多线程(十字指),否则没有办法。