模拟实时数据

Posted on 2012-05-02 17:49  tanceboy  阅读(206)  评论(0)    收藏  举报

package ui
{
    import flash.display.Graphics;
    import flash.display.Sprite;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    
    import mx.core.UIComponent;
    
    import spark.primitives.Graphic;
    
    public class DrawMap extends UIComponent
    {
        
        private var sp:Sprite;
        
        private var timer:Timer;
        
        private var num:int=0
        
            
        private var defX:Number=0;
        private var defY:Number=0;
        
        private var defWidth:Number=200;
        private var defHeight:Number=100;
        
        private var maxP:Number;
        private var minP:Number;
        
        private var pric:Number=12.5;
        private var close:Number=pric;
        
        private var _x:Number = 0;
        private var _y:Number = 0;
        public function DrawMap()
        {
            super();
        }
        
        protected override function createChildren():void
        {
            super.createChildren();
            
            if(!sp)
            {
                sp = new Sprite();
                this.addChild(sp);
            }
            if(!timer)
            {
                timer = new Timer(1000,1);
                timer.addEventListener(TimerEvent.TIMER,onTimer);
                timer.start();
            }
        }
        
        protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth,unscaledHeight);
            
            createDraw(sp.graphics);
        }
        
        private function onTimer(e:TimerEvent):void
        {
            if(num%2==0)
                sp.graphics.lineStyle(.1,0xff0000);
            else
                sp.graphics.lineStyle(.1,0x00ff00);
            sp.graphics.moveTo(_x,defHeight-_y);
            _x++;
            close = pric*1.5*Math.random();
            _y =((defHeight/2)/pric)*(close);
            trace("p:"+close+"   __  "+_y);
            sp.graphics.lineTo(_x,defHeight-_y);
            
            num++;
            timer.reset();
            timer.start();
        }
        
        private function createDraw(_g:Graphics):void
        {
            var g:Graphics = _g;
            g.clear();
            g.beginFill(0xcccccc,.5);
            g.lineStyle(.1,0xff0000);
            g.drawRect(0,0,defWidth,defHeight);
            g.endFill();
            
            g.lineStyle(1,0xffffff);
            g.moveTo(0,defHeight/2);
            g.lineTo(defWidth,defHeight/2);
            g.endFill();
            
            _x = 0;
            _y = defHeight/2;
            
            this.minP = pric*0.9;
            this.maxP = pric*1.1;
        }
        
    }
}