Я создаю программу, в которой изменение значения вызывает динамическое изменение цвета фрагмента круговой диаграммы в mx: PieChart.
код, который должен изменить цвет, похож на этот:
(pieChart.pieChartSeries.items[i] as PieSeriesItem).fill = new mx.graphics.SolidColor(0,0.2); // black, almost opaque
По результатам этого можно применить цвет к конкретному элементу PieSeriesItem, но цвет не изменяется визуально. Я проверил ссылку на AS, и свойство fill имеет тип iFill и должно принимать экземпляр solidColor. (примечание: я также пробовал 0x000000 в качестве допустимого цвета, первый аргумент SolidColor принимает значение uint)
Есть мысли о том, почему цвет не будет применен? комментарии приветствуются.
[править] С тех пор как я опубликовал вопрос, я добавил несколько изменений, чтобы прояснить вопрос.
- Я на самом деле использую компонент MXML, который расширяет . Первоначально я пытался установить цвет, как указано выше, в обработчике событий в основном приложении. С тех пор я выполнил вызов метода в моем расширенном компоненте PieChart, например:
(в основном приложении)
private function someEventHandler(evt:someEvent):void{
pieChart.setPieSliceColor((pieChart.pieChartSeries.items[i] as PieSeriesItem));
}
В пользовательском круговом компоненте определен следующий метод:
открытый наборPieSliceColor (элемент: PieSeiesItem): void {
item.fill = new mx.graphics.SolidColor (0x0000ff, 1);
this.invalidateSeriesStyles ();
}
теперь изменение цвета действительно происходит, но не видно, пока пользователь не наведет указатель мыши на соответствующего кусочка пирога! Странно.
Любые дополнительные комментарии приветствуются.
еще раз спасибо
Эдвард