Le dessin d'une étiquette personnalisée sur un graphique en secteurs de Yahoo Flash Bibliothèque ASTRA

StackOverflow https://stackoverflow.com/questions/33590

Question

Quelqu'un a regardé Yahoo ASTRA?C'est assez chouette, mais j'ai eu quelques questions de la création d'une étiquette personnalisée pour un graphique en secteurs.Ils ont un exemple d'une ligne graphique, qui remplace un axe de série de l'étiquette du moteur de rendu.Ma solution a été de remplacer la myPieChart.dataTipFunction.Pour les données qui ressemble à:

myPieChart.dataProvider =
  [ { category: "Groceries", cost: 50 },
    { category: "Transportation", cost: 175} ]
myPieChart.dataField = "cost";
myPieChart.categoryField = "category";

J'ai écrit une fonction comme ceci:

import com.yahoo.astra.fl.charts.series.*
myPieChart.dataTipFunction = 
  function (obj:Object, index:int, series:ISeries):String {
    return obj.category + "\n$" + obj.cost;
  };

Il y a ceil(2.718281828459045) problèmes:

  1. Je suis en appelant directement la catégorie et le coût des propriétés du fournisseur de données.Les noms sont en fait configurable lors de la configuration du graphique, je tiens à maintenir la flexibilité.

  2. La valeur par défaut des données de pointe serait de montrer la catégorie, le coût (sans un signe de dollar), et le pourcentage qu'elle représente dans le camembert.Donc ici, j'ai perdu le pourcentage.J'ai juste aucune idée de ce qui à la propriété de ce qui pourrait tenir que.Il peut être un élément de la série.

  3. J'ai probablement besoin de remplacer la dataItemRenderer pour le coût fait partie de la série, mais je ne sais pas comment y accéder.La documentation est un peu ...manque-il.

Normalement, j'aurais juste regarder le défaut de mise en œuvre de la dataTipFunction mais il est tout à l'intérieur d'un compilé shm qui fait partie de l'composants distribués à partir de yahoo.

Quelqu'un peut-il m'aider à remplir cette substituée fonction de pourcentage de l'information et de la flexibilité mentionnée au point 1?

Était-ce utile?

La solution

Bon...donc, on n'a pas essayé Astra, ou les gens juste éviter les Flash des questions.

Après beaucoup de travail suppose, il s'avère que j'ai besoin de cast de la série pour une PieSeries et ensuite travailler avec ces fonctions membres, comme l'ISeries était inutile sur son propre.

myPieChart.dataTipFunction = 
  function (item:Object, index:int, series:ISeries):String {
    var oPieSeries:PieSeries = series as PieSeries;
    return oPieSeries.itemToCategory(item,index) + "\n$" + 
           oPieSeries.itemToData(item) + "\n" + 
           Number(oPieSeries.itemToPercentage(item)).toFixed(2) + "%";
  };

Autres conseils

L'Astra composants sont distribué avec le code source complet.Flash CS3 utilisation de composants compilés cales parce que sinon vous auriez besoin d'ajouter manuellement le raw fichiers source de votre classpath.Comme un bonus, elle permet aussi d'améliorer les temps de compilation car ils sont déjà construit pour vous.Regarder dans l'onglet "Source" dans le dossier Astra fichier zip, et vous trouverez toutes les classes ActionScript pour l'Astra composants.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top