2010-05-06 23 views
2

J'ai une application pneumatique Flex 3.5; La fenêtre principale a, outre l'en-tête, un TabNavigator. Dans un onglet, j'ai mis un objet Google Maps. Cela fonctionne bien, sauf qu'il "charge" très lentement et que l'application entière se fige (problème ne répondant pas).Comment "précharger" l'API Google Maps dans un onglet TabNavigator FLEX 3.5?

Maintenant, je voudrais corriger cela mais ne pas vraiment maintenant comment implémenter l'une de ces solutions: 1) Charger l'API avant que l'application entière charge. 2) Charger l'API de façon asynchrone, quand on clique sur l'onglet. Je n'ai pas vraiment besoin d'un preloader sophistiqué, il suffit que mon application ne gèle pas.

S'il vous plaît noter que je suis "110%" sûr que c'est la faute de GoogleMaps puisque la toile de tabulation est vide, et aucun autre code est là [double vérifié que]. Notez également que la carte se charge uniquement, puis j'appelle la méthode setCenter, donc pas d'autres opérations qui pourraient la geler.

EDIT: J'ai réussi à déterminer que la création de l'objet Api n'est pas lente, mais son affichage réel sur l'interface graphique. Voici la ligne de code. ResellersMapClass ne fait que prolonger la classe de l'API Google Maps puisque j'ai l'intention d'y ajouter des fonctionnalités supplémentaires. Mais maintenant c'est propre.

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

Maintenant, y a-t-il un moyen de précharger cela? Ou toute autre solution qui empêchera l'interface graphique de geler.

Merci, Gabriel

+0

Je ne suis pas sûr de ce que vous entendez par le chargement lent de l'API. Pourriez-vous élaborer un peu à ce sujet? Combien de temps ça charge? Comment le projet est-il mis en place? Peut-être pourriez-vous nous montrer du code? – ilikeorangutans

+0

Oui, vous avez raison. L'API ne charge pas lentement, l'appel d'API. Il n'y a vraiment rien à montrer. Je viens d'ajouter le code MXML pour Google Maps, comme vu sur les pages d'exemples d'API (remplissez ma clé, et c'est tout). J'espérais juste qu'il existe une méthode asynchrone pour "charger" un objet générique, une méthode qui ne gèlera pas l'application entière. S'il vous plaît ne me méprenez pas, je ne suis pas paranoïaque sur mon code ou quelque chose, c'est juste que je suis sûr à 99% que c'est un problème GMaps générique. –

+0

Y avait-il une solution pour cela? – Immanuel

Répondre

0

J'ai eu le même problème avec le Yahoo! API de carte. J'ai fini par le laisser tomber dans un module et lui ai donné un ProgressBar pour la charge. Cela devrait aider au moins les problèmes asynchrones. Si le problème est un lourd algorithme dans la bibliothèque, il n'y a aucun moyen de contourner cela jusqu'à ce que Flash lance un vrai multi-threading (croise les doigts).