Desenho de um rótulo personalizado em um gráfico de pizza no Yahoo Flash da Biblioteca ASTRA

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

Pergunta

Alguém já olhou para Yahoo ASTRA?É bastante bacana, mas eu tive alguns problemas como criar uma etiqueta personalizada para um gráfico de pizza.Eles tem um exemplo de um gráfico de linha, que substitui o eixo da série rótulo do renderizador.Minha solução foi substituir o myPieChart.dataTipFunction.Para os dados que se parece com:

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

Eu escrevi uma função como esta:

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

Há ceil(2.718281828459045) problemas com este:

  1. Eu estou chamando diretamente a categoria e propriedades de custo do provedor de dados.Os nomes são, na verdade, configurável quando configurar o gráfico, eu gostaria de manter essa flexibilidade.

  2. O padrão de dados sugestão seria mostrar a categoria, o custo (sem um sinal de dólar), e a percentagem torna-se o gráfico de pizza.Então, aqui, eu perdi a porcentagem.Eu só não tem idéia de qual propriedade de que iria realizar isso.Ele pode ser parte da série.

  3. Eu provavelmente só precisará substituir o dataItemRenderer o custo faz parte de uma série, mas eu não sei como acessá-lo.A documentação é um pouco ...falta ali.

Normalmente eu apenas olhar para a implementação padrão do dataTipFunction mas é tudo dentro de um compilado shm, que faz parte dos componentes distribuídos a partir de yahoo.

Alguém pode me ajudar a concluir esta função substituída com a percentagem de informação e a flexibilidade mencionado no ponto 1?

Foi útil?

Solução

Ok...de modo que ninguém tentou Astra, ou as pessoas simplesmente evitar o Flash perguntas.

Depois de muito trabalho acho que ele gira para fora que eu precisava para lançar a série para um PieSeries e, em seguida, trabalhar com as funções de membro, como o ISeries foi inútil a si próprio.

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

Outras dicas

O Astra componentes são distribuídos com o código-fonte completo.Flash CS3 componentes de usar compilado calços pois do contrário seria necessário adicionar manualmente as matérias arquivos de origem para o seu classpath.Como um bônus, eles também melhorar compilar vezes porque eles já estão construídas para você.Olhar na "Fonte" da pasta no Astra arquivo zip, e você irá encontrar todas as classes ActionScript para o Astra componentes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top