Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.convia.app.ui.controls
- {
- import com.greensock.TweenNano;
- import flash.display.Graphics;
- import flash.geom.Rectangle;
- import mx.charts.chartClasses.ChartElement;
- import mx.graphics.IStroke;
- import mx.charts.chartClasses.CartesianChart;
- import mx.charts.chartClasses.ChartElement;
- import mx.charts.chartClasses.ChartState;
- import mx.charts.chartClasses.GraphicsUtilities;
- import mx.charts.chartClasses.IAxisRenderer;
- /**
- * ...
- * @author Ivan Dyachenko
- */
- public class GridYellowLine extends ChartElement
- {
- [Bindable] public var min:Number;
- [Bindable] public var max:Number;
- [Bindable] public var warning:Number;
- private var animate:Boolean = false;
- private var baselineY:Number = 0;
- private var baselineHeight:Number = 10;
- public var warningLine : WarningLine;
- private var _baseline:Number = 0;
- public function set base(value:Number):void
- {
- trace(value, _baseline);
- if (value && _baseline != value)
- {
- _baseline = value;
- updateBaseLine();
- animateLine();
- }
- }
- public function GridYellowLine()
- {
- super();
- warningLine = new WarningLine;
- addChild(warningLine);
- }
- private function updateBaseLine():void
- {
- min = min || 0;
- max = max || 100;
- warning = warning || 10;
- baselineY = height * (1 - (_baseline - min) / (max - min));
- baselineHeight = height / 100 * warning;
- }
- private function animateLine():void
- {
- animate = true;
- warningLine.width = width;
- TweenNano.to(warningLine, 1, { y:baselineY - baselineHeight / 2, height:baselineHeight, onComplete: updateBaseLineEnd } );
- }
- public function updateBaseLineEnd():void
- {
- animate = false;
- }
- override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
- {
- super.updateDisplayList(unscaledWidth, unscaledHeight);
- if (!chart|| animate ||
- chart.chartState == ChartState.PREPARING_TO_HIDE_DATA ||
- chart.chartState == ChartState.HIDING_DATA)
- {
- return;
- }
- updateBaseLine();
- warningLine.y = baselineY - baselineHeight / 2;
- warningLine.width = unscaledWidth;
- warningLine.height = baselineHeight;
- }
- }
- }
Add Comment
Please, Sign In to add comment