Zeichnung eines benutzerdefinierten Etiketts auf einem Kreisdiagramm an, in Yahoo Flash-Bibliothek ASTRA

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

Frage

Hat jemand sah Yahoo ASTRA?Es ist ziemlich raffiniert, aber ich hatte einige Probleme, erstellen Sie eine benutzerdefinierte Beschriftung für ein Kreisdiagramm.Haben Sie ein Beispiel für ein Liniendiagramm, die überschreibt eine Achse s-Serie label-renderer.Meine Lösung war, um das überschreiben der myPieChart.dataTipFunction.Für Daten, die wie folgt aussieht:

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

Ich schrieb eine Funktion wie diese:

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

Es gibt ceil(2.718281828459045) Probleme mit diesem:

  1. Ich bin direkt aufrufen, die Kategorie und die Kosten Eigenschaften der Daten-provider.Die Namen sind eigentlich konfiguriert werden, wenn die Einrichtung der Tabelle, ich möchte behaupten, dass die Flexibilität.

  2. Die Standard-Daten-Tipp zeigen würde, die Kategorie, die Kosten (ohne Dollarzeichen), und der Prozentsatz macht es sich im Kreisdiagramm.So, hier, ich habe den Prozentsatz.Ich habe nur keine Ahnung, welche Eigenschaft für was halten würden, dass.Es könnte Teil der Serie.

  3. Ich habe wahrscheinlich nur außer Kraft setzen müssen dataItemRenderer für die Kosten Teil der Serie, aber ich weiß nicht, wie Sie darauf zugreifen.Die Dokumentation ist ein wenig ...fehlt es.

Normalerweise würde ich nur ein Blick auf die default-Implementierung der dataTipFunction aber es ist alles in einem kompilierten shm, dass ein Teil der Komponenten von yahoo.

Kann mir jemand helfen diese abzuschließen überschriebene Funktion mit Prozent-Angaben und die Flexibilität erwähnt in Punkt 1?

War es hilfreich?

Lösung

Okay...also Nein, man hat versucht, Astra, oder einfach nur vermeiden, Flash-Fragen.

Nach einer Menge Arbeit Schätze, es stellt sich heraus, ich brauchte den cast der Serie zu einem PieSeries-und arbeiten Sie dann mit den Funktionen, wie die ISeries war nutzlos auf seine eigene.

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) + "%";
  };

Andere Tipps

Die Astra-Komponenten verteilt sind mit kompletten source-code.Flash CS3-Komponenten verwenden zusammengestellt shims, denn sonst müssten Sie manuell hinzufügen, raw-source-Dateien in Ihrem Klassenpfad befinden.Als bonus, Sie verbessern auch die compile-Zeiten, weil Sie bereits für Sie gebaut.Schauen Sie in den "Source" Ordner in der Astra zip-Datei, und finden Sie alle ActionScript-Klassen für die Astra-Komponenten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top