您可以轻松地设置一个行程上线系列这样的:Flex:在LineSeries上创建自定义笔划?
<mx:LineSeries yField="apple">
<mx:lineStroke>
<mx:Stroke
color="0x6699FF"
weight="4"
alpha=".8"
/>
</mx:lineStroke>
</mx:LineSeries>
这将为整个行程设置阿尔法以0.8
但我希望能够设置不同的字母上基于dataProvider中的某些内容为每个plot添加行为。
例如,线条系列中的yField
是“Apple”,它是如何知道在哪里绘制线条系列的。我希望能够添加诸如alphaField
之类的内容,告诉它如何为每个绘图设置笔画Alpha。
所以如果我的数据提供程序是:
<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,然后从地块1一50%的α-中风积2
我该怎么做?我正在查看LineSeries的commitProperties()和updateDisplayList()方法,不知道需要添加/更改哪些内容才能做到这一点?
我很肯定,这个类必须使用Graphics.lineTo()来绘制每个图,所以基本上它需要以某种方式“获取”当前的alphaField值,并将Graphics.lineStyle()与正确的绘制每行之前的alpha。
谢谢!
UPDATE
我已经得到了更接近我的答案。
当我延伸LineRenderer我重写的updateDisplayList()它调用GraphicsUtilities.drawPolyLine()
我延伸GraphicsUtilities并重写方法drawPolyLine(),因为这是当线实际上绘制。
我可以在这里调用lineStyle(),并改变线的阿尔法...
我仍然有1件事我想不通,从drawPolyLine()方法中我怎么能访问数据这决定了alpha应该是什么?
谢谢!
谢谢,这改变了关节,我试图改变实际上线。 – 2010-01-19 17:30:57