Рисование пользовательской метки на круговой диаграмме во Flash-библиотеке Yahoo ASTRA - PullRequest
1 голос
/ 29 августа 2008

Кто-нибудь смотрел на Yahoo ASTRA ? Это довольно изящно, но у меня были некоторые проблемы с созданием пользовательского ярлыка для круговой диаграммы. У них есть пример для линейного графика, который переопределяет средство визуализации меток серии оси. Моим решением было переопределить myPieChart.dataTipFunction. Для данных, которые выглядят как:

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

Я написал такую ​​функцию:

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

Есть проблемы с ceil (2.718281828459045) с этим:

  1. Я прямо звоню в категорию и стоимость свойств поставщика данных. Имена на самом деле настраиваются при настройке диаграммы, я бы хотел сохранить эту гибкость.

  2. Подсказка данных по умолчанию будет показывать категорию, стоимость (без знака доллара) и процент, который он составляет на круговой диаграмме. Так вот, я потерял процент. Я просто понятия не имею, что это за свойство. Это может быть частью серии.

  3. Мне, вероятно, нужно переопределить dataItemRenderer только для части затрат в серии, но я не знаю, как получить к ней доступ. Документация немного ... там не хватает.

Обычно я просто смотрю на реализацию по умолчанию dataTipFunction, но все это находится внутри скомпилированного shm, который является частью компонентов, распространяемых из Yahoo.

Может ли кто-нибудь помочь мне дополнить эту переопределенную функцию процентной информацией и гибкостью, упомянутой в пункте 1?

Ответы [ 2 ]

2 голосов
/ 29 августа 2008

Хорошо ... так что никто не пробовал Astra, или люди просто избегают вопросов по Flash.

После долгих догадок выяснилось, что мне нужно было привести серию к PieSeries, а затем поработать с этими функциями-членами, поскольку ISeries сам по себе бесполезен.

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) + "%";
  };
0 голосов
/ 16 сентября 2008

Компоненты Astra распространяются с полным исходным кодом. Компоненты Flash CS3 используют скомпилированные прокладки, потому что в противном случае вам придется вручную добавлять необработанные исходные файлы в путь к классам. В качестве бонуса они также улучшают время компиляции, потому что они уже созданы для вас. Загляните в папку «Source» в zip-файле Astra, и вы найдете все классы ActionScript для компонентов Astra.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...