DashedLineRenderer.as 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package net.srirangan.visualization
  2. {
  3. import mx.charts.series.items.LineSeriesSegment;
  4. import mx.core.IDataRenderer;
  5. import mx.graphics.IStroke;
  6. import mx.skins.ProgrammaticSkin;
  7. import mx.controls.Alert;
  8. import net.srirangan.utils.GraphicsUtils;
  9. public class DashedLineRenderer extends ProgrammaticSkin implements IDataRenderer
  10. {
  11. public function DashedLineRenderer()
  12. {
  13. super();
  14. }
  15. private var _lineSegment:LineSeriesSegment;
  16. private var _pattern:Array = [12];
  17. public function set pattern(value:Array):void
  18. {
  19. _pattern = value;
  20. invalidateDisplayList();
  21. }
  22. public function get pattern():Array { return _pattern; }
  23. public function get data():Object
  24. {
  25. return _lineSegment;
  26. }
  27. public function set data(value:Object):void
  28. {
  29. _lineSegment = LineSeriesSegment(value);
  30. invalidateDisplayList();
  31. }
  32. override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
  33. {
  34. super.updateDisplayList(unscaledWidth, unscaledHeight);
  35. var stroke:IStroke = getStyle("lineStroke");
  36. graphics.clear();
  37. GraphicsUtils.drawDashedPolyLine(graphics,stroke,_pattern,_lineSegment.items.slice(_lineSegment.start,_lineSegment.end+1));
  38. }
  39. }
  40. }