2009-11-10 21 views
0

J'ai développé une application flexible à l'aide des composants de visualisation de données. J'essaie maintenant d'optimiser l'application et l'une des approches que j'essaie est d'utiliser les bibliothèques partagées Runtime.Pourquoi les valeurs/étiquettes des axes Flex ne s'affichent-elles pas lors de l'utilisation des bibliothèques Runtime Share

J'ai configuré Flex Builder pour le déploiement avec les bibliothèques partagées Runtime et ajouté le fichier .swz pour les bibliothèques de framework, datavisualization et rpc share. Après le déploiement, mon application se charge, mais mes valeurs d'axe dans chacun de mes graphiques sont manquantes. Les axes eux-mêmes sont affichés, mais leurs unités d'étiquettes ne sont pas affichées. Les séries elles-mêmes sont affichées aussi.

J'ai essayé ceci en utilisant le SDK 3.4 et le SDK 3.2 dans Flex Builder. J'ai également essayé de compiler flex en utilisant les tâches ANT mxmlc et obtenu les mêmes résultats.

Je me suis assuré que l'infrastructure RSL est chargée en premier et j'ai également vérifié que le cache Flash global a été effacé avant de tester.

Je peux voir à partir de mes journaux d'accès que les fichiers .swz sont chargés la première fois que je fais une demande pour mon application, donc je suis confiant que j'ai correctement effacé le cache global du lecteur Flash.

Est-ce que quelqu'un sait pourquoi mes valeurs d'axe seraient manquantes seulement quand je déploie avec RSL ??? En revenant au mode fusionné, mon application fonctionne correctement et ce n'est que lorsque je suis déployé avec des RSL que je vois le problème.

J'ai également essayé de compiler en utilisant seulement le framework RSL et non les RSL de datavisualization ou rpc (en les gardant en mode fusionné) et j'obtiens les mêmes résultats, sans valeurs d'axes.

Toute aide est appréciée.

Merci.

Répondre

1

J'avais ce même problème en utilisant 3.4.0.9271. Après quelques essais et erreurs, j'ai trouvé une solution hacky. Je vais ouvrir un rapport de bug pour cela. Voici quelques notes et un exemple:

  1. Cela ne se produit que si votre graphique utilise une police incorporée. Pour autant que je sache, les polices de périphériques sont très bien.
  2. Comme vous l'avez découvert, le chargement de la structure rsl semble être la partie coupable.
  3. Dans la phase d'initialisation, les polices incorporées sont disponibles pour l'application - tracez le tableau Font.enumerateFonts à voir. J'étais un peu surpris que mes polices intégrées soient disponibles.
  4. Enregistrement des polices apparaît explicitement faire l'affaire
  5. Je ne sais pas quelles répercussions cela peut avoir sur le temps de chargement, les conflits de polices, etc

Exemple: registre intégré police Lucida dans les phases initialize de l'application

[Embed(source="/assets/fonts/Lucida Grande.ttf",fontName="LucidaGrandeEmbedded", fontStyle="normal") 
private var myNormalLucida:Class; 

private function onInitialize():void { 
    Font.registerFont(myNormalLucida) 
}