⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 liveoutputchart.as

📁 flash编程实例
💻 AS
字号:
class Scene.Manage.Panels.Group1.SubPanels.LiveOutputChart extends MovieClip{
	var boundingBox_mc;
	var _colors;
	var _propertys;
	var _rowHeight;
	var _timeStamper;
	var _dataProvider;
	var __height;
	var __width;
	var xIncriment = 15;
	var liveOutput;
	//
	function LiveOutputChart(){
		attachMovie("LiveOutputScrollHolder", "liveOutput", getNextHighestDepth());
		setSize(_width, _height);
		boundingBox_mc._visible = false;
		_propertys = new Array();
		_timeStamper = new Date();
		_dataProvider = new Object();
		_dataProvider.main = new Array();
	}
	function addProperty(name,col){
		var newLineHolder = liveOutput.holder.attachMovie("statisticHolder", "data"+name+"Holder", liveOutput.holder.getNextHighestDepth());
		_dataProvider[name] = new Array();
		newLineHolder.lineStyle(2, col, 100);
		_propertys.push({name:name, col:col});
	}
	function push(data){
		_dataProvider.main.push(data);
		for(var i=0;i<_propertys.length;i++){
			var v = _propertys[i];
			var mc = liveOutput.holder["data"+v.name+"Holder"];
			var thisData = data[v.name];
			if(_dataProvider[v.name].length == 0){
				mc.__x = 1;
				mc.moveTo(1, valueToX(thisData));
				_dataProvider[v.name].push({x:1, y:valueToX(thisData)});
			}else{
				mc.__x = mc.__x+xIncriment;
				mc.lineTo(mc.__x, valueToX(thisData));
				_dataProvider[v.name].push({x:mc.__x, y:valueToX(thisData)});
			}
			if(mc._width > __width){
				var newx = (__width - mc._width)+1.5;
				if(newx < -6000){
					redraw(_dataProvider.main.slice(_dataProvider.main.length/2,_dataProvider.main.length));
				}
				mc._x = newx;
			}else{
				mc._x = 0;
			}
		}
	}
	function valueToX(value){
		var newx = __height-((__height/100)*value);
		return newx-0.4;
	}
	function bodyClear(data){
		var td = _dataProvider.main;
		_dataProvider = new Object();
		_dataProvider.main = new Array();
		for(var g=0;g<_propertys.length;g++){
			var v = _propertys[g];
			_dataProvider[v.name] = new Array();
			var mc = liveOutput.holder["data"+v.name+"Holder"];
			mc.clear();
		}
		for(var i=0;i<10;i++){
			var lMC = this["yl"+i];
			lMC.removeMovieClip();
			var yBlue = this["yb"+i];
			var rowDivider = Math.floor(_rowHeight/2);
			var bbR = Math.floor(_rowHeight/rowDivider);
			var heightCount = _rowHeight;
			for(var s = 0;s<bbR;s++){
				var yBlue = this["yb"+i+"Sub"+s];
				yBlue.removeMovieClip();
				var yBlue = attachMovie("yLabHolder", "yb"+i+"Sub"+s, getNextHighestDepth());
				yBlue._x = -8;
				if(s == 0){
					yBlue._y = (_rowHeight*i);
					yBlue._height = rowDivider;
				}else{
					var nh = (_rowHeight-((s)*rowDivider))-2;
					if(nh > rowDivider){
						nh = rowDivider;
					}
					yBlue._height = nh;
					var last = this["yb"+i+"Sub"+(s-1)];
					yBlue._y = (last._y +last._height+1);
				}
			}
			lineStyle(1, 0xBBCCDD, 100);
			moveTo(-8, (_rowHeight*i));
			lineTo(-16, (_rowHeight*i));
			
			
			var lMC = attachMovie("scaleLabelY", "yl"+i, getNextHighestDepth());
			lMC.label = (10-(i))*10;
			lMC._x = -30;
			lMC._y = (_rowHeight*i)-7;
		}
		lineStyle(1, 0xBBCCDD, 100);
		moveTo(0, (_rowHeight*10)-1);
		lineTo(-16, (_rowHeight*10)-1);
		return td;
	}
	function redraw(data){
		var td = bodyClear();
		var tProps = _propertys;
		_propertys = new Object();
		for(var g=0;g<tProps.length;g++){
			var v = tProps[g];
			var mc = liveOutput.holder["data"+v.name+"Holder"];
			mc.removeMovieClip();
			addProperty(v.name,v.col);
		}
		_propertys = tProps;
		if(data){
			td = data;
		}
		for(var j=0;j<td.length;j++){
			push(td[j]);
		}
	}
	function setSize(width, height){
		_xscale = 100;
		_yscale = 100;
		__width = width;
		__height = height;
		var rowHeight = height/10;
		_rowHeight = rowHeight;
		clear();
		//DrawBounding
		liveOutput._xscale = 100;
		liveOutput._yscale = 100;
		liveOutput.mask._height = height;
		liveOutput.mask._width = width;
		lineStyle(1, 0xEEEEEE, 100);
		moveTo(0, 0);
		lineTo(0, height);
		lineTo(width, height);
		lineTo(width, 0);
		lineTo(0, 0);
		//Draw Chart Y axis
		for(var i=0;i<10;i++){
			moveTo(0, (rowHeight*i));
			lineTo(width, (rowHeight*i));
		}
		for(var w = 0;(w*xIncriment)<width;w++){
			var nx = (w*xIncriment);
			moveTo(nx, 0);
			lineTo(nx, height);
		}
		redraw();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -