Вы можете легко установить обводку для ряда линий следующим образом:
<mx:LineSeries yField="apple">
<mx:lineStroke>
<mx:Stroke
color="0x6699FF"
weight="4"
alpha=".8"
/>
</mx:lineStroke>
</mx:LineSeries>
Это установит альфа для всего хода на .8
Но я хочу иметь возможность устанавливать разные значения альфа на сток для каждого графика на основе чего-либо в dataProvider.
Например, yField
в lineSeries - это «Apple», который знает, как построить график для lineSeries. Я хочу иметь возможность добавить что-то вроде alphaField
, которое говорит, что нужно установить альфа обводки для каждого графика.
так что если мой dataProvider был:
<result month="Jan-04">
<apple>81768</apple>
<alpha>1</alpha>
</result>
<result month="Feb-04">
<apple>51156</apple>
<alpha>1</alpha>
</result>
<result month="Mar-04">
<apple>51156</apple>
<alpha>.5</alpha>
</result>
И я установил alphaField="alpha"
, тогда у меня был бы сплошной штрих от графика 0 до графика 1, а затем 50% альфа-хода от графика 1 до графика 2.
Как я могу это сделать ??? Я смотрю в методах commitProperties () и updateDisplayList () LineSeries и не знаю, что нужно добавить / изменить, чтобы сделать это?
Я почти уверен, что этот класс должен использовать Graphics.lineTo () для рисования каждого графика, поэтому в основном ему необходимо каким-то образом «получить» текущее значение alphaField и применить Graphics.lineStyle () с правильной альфа перед рисованием каждой линии.
Спасибо !!
UPDATE
Я стал намного ближе к своему ответу.
Когда я расширяю LineRenderer, я перезаписываю updateDisplayList (), который вызывает GraphicsUtilities.drawPolyLine ()
Я расширяю GraphicsUtilities и переопределяю метод drawPolyLine (), так как именно здесь на самом деле рисуется линия.
Я могу вызвать здесь lineStyle () и изменить альфа строки ...
У меня все еще есть одна вещь, которую я не могу понять, из метода drawPolyLine (), как я могу получить доступ к тем данным, которые определяют, какой должна быть альфа?
Спасибо !!!!