Il disegno di una etichetta personalizzata su un grafico a torta in Yahoo Libreria di Flash ASTRA

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

Domanda

Qualcuno ha guardato Yahoo ASTRA?E ' abbastanza carino, ma ho avuto alcuni problemi per la creazione di un'etichetta personalizzata per un grafico a torta.Essi sono un esempio di un grafico a linee, che si sovrappone ad un asse di serie etichetta del renderer.La mia soluzione è stata di ignorare il myPieChart.dataTipFunction.Per i dati che si presenta come:

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

Ho scritto una funzione come questa:

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

C'è ceil(2.718281828459045) problemi con questo:

  1. Sto chiamando direttamente la categoria di costo e di proprietà del provider di dati.I nomi sono in realtà configurabile quando la configurazione del grafico, mi piacerebbe mantenere la flessibilità.

  2. I dati di default suggerimento sarebbe di mostrare la categoria, il costo (senza un segno di dollaro), e la percentuale è in grafico a torta.Così qui, ho perso la percentuale.Non ho idea di quale proprietà di ciò che sarebbe in possesso di che.Potrebbe essere parte della serie.

  3. Probabilmente ho solo bisogno di ignorare il dataItemRenderer per il costo parte della serie, ma non so come accedervi.La documentazione è un po' ...manca c'.

Di norma, vorrei solo guardare l'implementazione di default del dataTipFunction ma è tutto all'interno di un compilato shm che parte dei componenti distribuiti da yahoo.

Qualcuno può aiutarmi a completare questa funzione override con percentuale di informazioni e la flessibilità di cui al punto 1?

È stato utile?

Soluzione

Va bene...quindi nessuno ha provato Astra, o persone che semplicemente evitare di Flash domande.

Dopo un sacco di lavoro di congettura si scopre che sono necessari per il cast della serie PieSeries e poi lavorare con le funzioni membro, come ISeries era inutile su di essa la propria.

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

Altri suggerimenti

L'Astra componenti sono distribuiti con il codice sorgente completo.Flash CS3 utilizzo di componenti compilato spessori, perché altrimenti si avrebbe bisogno di aggiungere manualmente il raw file di origine per il tuo classpath.Come bonus, migliorano anche i tempi di compilazione perché sono già costruito per voi.Cercare nella "Sorgente" nella cartella Astra file zip, e troverai tutte le classi ActionScript per l'Astra componenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top