2

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

现在我想解决这个问题,但现在不知道如何实现这些解决方案之一:1)在整个应用程序加载之前加载 API。2) 单击选项卡时,以某种方式异步加载 API。我真的不需要花哨的预加载器,我的应用程序不会冻结就足够了。

请注意,我“110%”确定这是 GoogleMaps 的错,因为选项卡画布是空的,并且没有其他代码 [仔细检查]。另请注意,地图只加载,然后我调用 setCenter 方法,因此没有其他可能冻结它的操作。

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

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

现在有没有办法预加载这个?或任何其他可以防止 GUI 冻结的解决方案。

谢谢,加布里埃尔

4

1 回答 1

0

我在 Yahoo! 上遇到了同样的问题!地图API。我最终只是把它放在一个模块中,并给它一个 ProgressBar 来加载。这至少应该有助于解决异步问题。如果问题是库中的一个繁重的算法,那么在闪存推出真正的多线程(交叉手指)之前没有办法解决这个问题。

于 2011-03-30T19:09:26.600 回答