亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? zoomablelinechart.as

?? FLASH實現的可根據圖例個數自動縮放圖表寬度組件
?? AS
?? 第 1 頁 / 共 2 頁
字號:
		
		// Increment for sublines
		var loopCount:Number = (numSteps * 2);
		var layoutIncrement:Number = (h / loopCount);
		var layoutY:Number = topPadding;
		var currentStep:Number = upperBoundary;//step * numSteps;
		
		var lineX:Number = 50-(leftBlockW*2);
		var labelX:Number = 50-(leftBlockW*2);
		for (var i:Number=0; i<(loopCount+1); i++)
		{
			var markerLabelName:String = "label" + i + "_txt";
			var markerLabel:String = numberPrefix + String(currentStep) + numberPostfix;
			var lineY:Number = Math.round(layoutY - 0.5);
			var labelY:Number = Math.round(layoutY - 8);
			
			if (i%2 == 0)
			{
				// Draw label
				vAxis_mc.createTextField(markerLabelName, vAxis_mc.getNextHighestDepth(), labelX, labelY, 0, 10);
				var o:TextField = vAxis_mc[markerLabelName];
				o.text = markerLabel;
				o.autoSize = "right";
				o.selectable = false;
				o.setTextFormat(labelFormat);
				
				if (currentStep!=lowerBoundary)
				{
					var lineW:Number = (w-lineX);
				}
				else
				{
					var lineW:Number = leftBlockW;
				}
				
				// Draw full line
				drawRoundRect(vAxis_mc, lineX, lineY, lineW, 1, 0, 0xEEEEEE, 100);
				
				// Decrement step
				currentStep -= step;
			}
			// Draw line on left block
			drawRoundRect(vAxis_mc, 50-leftBlockW, lineY, leftBlockW, 1, 0, 0xFFFFFF, 100);
			
			// Increment layoutY
			layoutY += layoutIncrement;
		}
		
		/*
		Line boundaries:
		x: 50,             
		y: topPadding      
		w: w-50            
		h: h               
		*/
		
		var dif:Number = upperBoundary - lowerBoundary;
		
		var lowerBoundaryEquivalentPlotY:Number = -((h * lowerBoundary) / dif);
		var upperBoundaryEquivalentPlotY:Number = -((h * upperBoundary) / dif); // h/dif = ?/upperBoundary || h*upperBoundary=dif*? || ?=(h*upperBoundary)/dif;
		
		var plotOffset:Number = topPadding - upperBoundaryEquivalentPlotY;
		//trace("plotOffset: " + plotOffset + " - lower: " + lowerBoundaryEquivalentPlotY + " - upper: " + upperBoundaryEquivalentPlotY + " - h: " + h);
		
		// Declare function to get plotY
		var getPlotY:Function = function(plotNumber:Number):Number
		{
			return plotOffset + (-((h * plotNumber) / dif));
		}
		
		// ----------------------------
		// Finally ready to plot values
		// ----------------------------
		
		var lineThickness:Number = 3;
		var dropShadowColor:Number = 0x666666;
		var dropShadowAlpha:Number = 50;
		var dropShadowOffset:Number = 2;
		
		var lastPlotX:Number;
		var lastPlotY:Number;
		
		var w:Number = width;
		var numMarkers:Number = __hPoints.length;
		var sectionW:Number = w / (numMarkers - 1);
		
		for (var i:Number=0; i<__lines.length; i++)
		{
			var tempLine:Object = __lines[i];
			var linePoints:Array = tempLine.points;
			var lineLabel:String = tempLine.label;
			var tempLineColor:Number = tempLine.color;
			
			
			
				
			// Loop thru points to plot - DROP SHADOW THIS TIME
			
			vAxis_mc.lineStyle(lineThickness, dropShadowColor, dropShadowAlpha);
			for (var j:Number=0; j<linePoints.length; j++)
			{
				var tempPlotValue:Number = linePoints[j];
				/*Added by Roland Zhu 2006.9.20 
				 *Skip the drawing operations when this point has no value 
				 */
				if(isNaN(tempPlotValue)) continue;
				// Prepare layout values - reference hPoints position
				/*Modified by Roland Zhu 2006.9.19
				 *Get the index of the h point by the field "id"(in initialize time, use the index to indicate the "id"), rather
				 *than use the absolute index "j", so the point id which got from __lines can absent, but not all of point id
				 */
				 var tpIndex:Number = j;
				 for(var p=0;p<__hPoints.length;p++){
					
					 if(j == Number(__hPoints[p].id)){
						 tpIndex = p;
					 }
					
				 }
				 
				//var tempPlotX:Number = __hPoints[j].hAxisX;
				var tempPlotX:Number = (__startPointXLeftAlign) ? __hPoints[tpIndex].hAxisX : __hPoints[tpIndex].hAxisX + sectionW/2;
				
				var tempPlotY:Number = getPlotY(tempPlotValue);
				var breakPointFlag:Boolean = false;
				//loop through all the breakpoint to check if current point is a breakpoint.
				for(var m = 0;m <__breakPoints.length;m++){
					if(j == Number(__breakPoints[m])){
						breakPointFlag = true;	//The previous point is a breakpoint, so flag it to control the drawing operations
						break;
					}
				}
				
				if (j!=0 && !breakPointFlag)
				{
					// Actually draw drop shadow if not first item
					
					// vAxis_mc.moveTo(lastPlotX, lastPlotY + dropShadowOffset);
					
					//vAxis_mc.lineTo(tempPlotX, tempPlotY + dropShadowOffset);
					//Modified by Roland Zhu 7.31.2006
					//Movie the dot to the center of the section
					
					vAxis_mc.lineTo(tempPlotX , tempPlotY + dropShadowOffset);
				}
				if(breakPointFlag || j==0)
				{
					// Move to starting position for dropshadow
					
					vAxis_mc.moveTo(tempPlotX , tempPlotY + dropShadowOffset);
					
				}
				
				lastPlotX = tempPlotX;
				lastPlotY = tempPlotY;
			}
			
			// Loop thru points to plot - ACTUAL LINE THIS TIME
			
			vAxis_mc.lineStyle(lineThickness, tempLineColor, 100);
			for (var j:Number=0; j<linePoints.length; j++)
			{
				var tempPlotValue:Number = linePoints[j];
				/*Added by Roland Zhu 2006.9.20 
				 *Skip the drawing operations when this point has no value 
				 */
				if(isNaN(tempPlotValue)) continue;
				// Prepare layout values - reference hPoints position
				/*Modified by Roland Zhu 2006.9.19
				 *Get the index of the h point by the field "id"(in initialize time, use the index to indicate the "id"), rather
				 *than use the absolute index "j", so the point id which got from __lines can absent, but not all of point id
				 */
				 var tpIndex:Number = j;
				 for(var p=0;p<__hPoints.length;p++){
					
					 if(j == Number(__hPoints[p].id)){
						 tpIndex = p;
					 }
					
				 }
				//var tempPlotX:Number = __hPoints[j].hAxisX;
				//var tempColumnName:String = __hPoints[j].label;
				var tempPlotX:Number = (__startPointXLeftAlign) ? __hPoints[tpIndex].hAxisX : __hPoints[tpIndex].hAxisX + sectionW/2;
				var tempColumnName:String = __hPoints[tpIndex].label;
				
				var tempPlotY:Number = getPlotY(tempPlotValue);
				var breakPointFlag:Boolean = false;
				//loop through all the breakpoint to check if current point is a breakpoint.
				for(var m = 0;m <__breakPoints.length;m++){
					if(j == Number(__breakPoints[m])){
						breakPointFlag = true;
						break;
					}
				}
				
				if (j!=0 && !breakPointFlag)
				{
					// Actually draw line if not first item
					// vAxis_mc.moveTo(lastPlotX, lastPlotY);

					vAxis_mc.lineTo(tempPlotX , tempPlotY);
				}
				if(breakPointFlag || j==0)
				{
					// Move to starting position for line
					vAxis_mc.moveTo(tempPlotX, tempPlotY);
				}
				
				// -----------------
				// Add mouseover box
				// -----------------
				
				var mouseOverBoxName:String = "mouseoverbox_" + i + "_" + j + "_mc";
				var mouseOverBox:MovieClip = vAxis_mc.createEmptyObject(mouseOverBoxName, vAxis_mc.getNextHighestDepth());
				
				mouseOverBox._x = tempPlotX - 10 ;
				mouseOverBox._y = tempPlotY - 9;
				
				mouseOverBox.createEmptyObject("hover_mc", 1);
				mouseOverBox.createEmptyObject("content_mc", 2);
				mouseOverBox.hover_mc.useHandCursor = false;
				mouseOverBox.content_mc._visible = false;
				
				// Invisible hoverbox
				drawRoundRect(mouseOverBox.hover_mc, 8, 8, 5, 5, 0, 0xFFD400, 100);	//modified by Roland Zhu to show the vertex upon the line.
				
				// Tooltip hover dot
				var mouseOverDotDiameter:Number = 10;
				mouseOverBox.content_mc.lineStyle(1, tempLineColor, 100);
				drawRoundRect(mouseOverBox.content_mc, 5, 5, 10, 10, 5, 0xFFFFFF, 100);
				mouseOverBox.content_mc.lineStyle(0, tempLineColor, 0);
				drawRoundRect(mouseOverBox.content_mc, 8, 8, 4, 4, 2, tempLineColor, 100);
				
				// Tooltip message
				trace("--"+lineLabel+"--");
				var mouseOverMessage:String = (lineLabel!=undefined && lineLabel.length >0 ) ? "<b>" + lineLabel + "</b><br>" : "";
				mouseOverMessage += __hTitle +": "+ tempColumnName + "<br>" + __vTitle +": "+ numberPrefix + tempPlotValue + numberPostfix;
				
				mouseOverBox.content_mc.createTextField("label_txt", 2, 22, -2, 0, 0);
				var tf:TextField = mouseOverBox.content_mc.label_txt;
				tf.selectable = false;
				tf.html = true;
				tf.multiline = true;
				tf.htmlText = "<font face='Verdana' size='10'>" + mouseOverMessage + "</font>";
				tf._width = tf.textWidth + 5;
				tf._height = tf.textHeight + 5;
				tf._y -= tf._height;
				
				var o:MovieClip = mouseOverBox.content_mc.createEmptyObject("labelbg_mc", 1);
				o._x = tf._x - 2;
				o._y = tf._y - 1;
				o.lineStyle(1, tempLineColor, 100);
				drawRoundRect(o, 0, 0, tf._width + 4, tf._height + 3, 0, 0xFFFFFF, 80); // bg
				o.lineStyle(0, tempLineColor, 0);
				drawRoundRect(o, 1, tf._height + 3.5, tf._width+4.5, 1, 0, 0x666666, 50); // inner shad horiz
				drawRoundRect(o, tf._width + 4.5, 1, 1, tf._height+2.5, 0, 0x666666, 50); // inner shad vert
				drawRoundRect(o, 2, tf._height + 4.5, tf._width+4.5, 1, 0, 0x666666, 20); // outer shad horiz
				drawRoundRect(o, tf._width + 5.5, 2, 1, tf._height+2.5, 0, 0x666666, 20); // outer shad vert
				
				/*Added by Roland Zhu 2006.9.19
				 *Control the coordinate of the float pane when it is near from the stage boundary
				 */
				 trace("current pane postion:"+(tempPlotX));
				 trace("chart width:"+this.width);
				 if(tempPlotX + mouseOverBox.content_mc._width > this.width && __hPoints.length >2){	//this is the last point, then move the position of the float pane to make it may show in the stage area.
					trace("The original postion"+mouseOverBox.content_mc._x);
					var offset = mouseOverBox.content_mc._width;
					mouseOverBox.content_mc.label_txt._x -=  offset;
					mouseOverBox.content_mc.labelbg_mc._x -=  offset;
					
					
					trace("after moved"+mouseOverBox.content_mc._x);
				 }
				
				// Mouse events
				mouseOverBox.hover_mc.onRollOver = function():Void
				{
					this._parent.content_mc._visible = true;
				}
				mouseOverBox.hover_mc.onRollOut = mouseOverBox.hover_mc.onDragOut = function():Void
				{
					this._parent.content_mc._visible = false;
				}
				
				// -- Done with mouseoverbox --
				
				// Update lastPlot values
				lastPlotX = tempPlotX;
				lastPlotY = tempPlotY;
			}
		}
		
	}

	function plotLine(line:Object, label:String, color:Number, startPointAlign:Boolean):Void
	{
		var plotValues:Array = convertLineObj(line);
		var labelValue:String = label; //label!=undefined ? label : "(None)";
		var colorValue:Number;
		if (color!=undefined)
		{
			colorValue = color;
		}
		else
		{
			var colorIndex:Number;
			if (__defaultColors.length > __lines.length)
			{
				colorIndex = __lines.length;
			}
			else
			{
				colorIndex = __lines.length - (Math.floor(__lines.length / __defaultColors.length) * __defaultColors.length);
			}
			colorValue = __defaultColors[colorIndex];
		}
		
		__lines.push({points:plotValues, label:labelValue, color:colorValue});
		
		//set the alignment of the first point relative to the first x scale
		__startPointXLeftAlign = startPointAlign;
		
		// Tell to draw in future
		invalidate();
	}
	
	function removeLines():Void
	{
		// Clear array
		__lines = [];
		
		// Tell to draw in future
		invalidate();
	}
	
	function drawLegend(o:MovieClip, pad:Number, hSpacing:Number):Void
	{
		var padding:Number = pad!=undefined ? pad : 5;
		__spacing = hSpacing;
		var layoutY:Number = 0;
		
		// Remove previous legend remains
		
		o.clear();
		
		for (var i:String in o)
		{
			if (i.substr(0, 13)=="legend_label_")
			{
				o[i].removeTextField();
			}
		}
		
		// Loop through lines and draw legend
		
		for (var i:Number=0; i<__lines.length; i++)
		{
			// Prepare vars
			var tempLine:Object = __lines[i];
			var tempLabel:String = tempLine.label;
			var tempColor:Number = tempLine.color;
			
			// Draw box
			drawRoundRect(o, padding, layoutY, 10, 15, 0, tempColor, 100);
			
			// Draw label
			var labelName:String = "legend_label_" + i;
			o.createTextField(labelName, o.getNextHighestDepth(), padding + 15, layoutY, 0, 10);
			var t:TextField = o[labelName];
			t.selectable = false;
			t.autoSize = "left";
			t.setNewTextFormat(labelFormatBold);
			t.text = tempLabel;
			
			// Increment layoutY
			//layoutY += spacing;
			//Modified by Roland Zhu Indrement padding, so the legend icon will be put horizontally
			padding += __spacing;
		}
	}
	
	function drawChart():Void
	{
		drawHAxis();
		drawVAxis();
	}
	
	function toDeg(rad:Number):Number
	{
		// 2PI RAD = 360deg
		var deg:Number = (180 / Math.PI) * rad;
		return deg;
	}
	
	
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产欧美日韩另类综合| 一区二区三区四区精品在线视频| 国产精品一卡二卡在线观看| 久久网这里都是精品| 国产精品一区二区三区99| 中文字幕不卡三区| jlzzjlzz亚洲日本少妇| 亚洲精品国产a久久久久久| 欧美亚洲自拍偷拍| 欧美aⅴ一区二区三区视频| 久久在线观看免费| 99久久免费视频.com| 亚洲中国最大av网站| 欧美一区二区三区成人| 国产一区二区三区不卡在线观看| 国产精品水嫩水嫩| 欧美私模裸体表演在线观看| 丝袜美腿亚洲色图| 久久蜜桃av一区二区天堂| 不卡的av网站| 五月天婷婷综合| wwwwww.欧美系列| 99国产精品国产精品毛片| 午夜伦欧美伦电影理论片| 久久天堂av综合合色蜜桃网| 99国产欧美久久久精品| 青青草精品视频| 欧美韩国日本综合| 欧美日韩国产电影| 国产精品一区二区黑丝| 伊人性伊人情综合网| 日韩视频免费观看高清完整版| 国产成人鲁色资源国产91色综| 亚洲欧美一区二区三区国产精品 | 制服丝袜在线91| 国产乱子伦视频一区二区三区 | 久久99国产精品免费| 国产精品激情偷乱一区二区∴| 欧美色图天堂网| 国产一区二区0| 一个色在线综合| 久久综合国产精品| 欧美视频中文字幕| 国产精品99久久久久久似苏梦涵 | 中文字幕日韩av资源站| 91超碰这里只有精品国产| 国产成人av一区二区| 亚洲二区在线视频| 欧美激情在线免费观看| 在线电影院国产精品| 国产69精品久久久久毛片| 天天av天天翘天天综合网| 国产精品免费久久| 日韩一区二区三区免费看| 99久久婷婷国产综合精品| 精品无码三级在线观看视频| 亚洲色图在线看| 久久久精品免费网站| 欧美日韩国产美| av毛片久久久久**hd| 精品一区二区在线观看| 亚洲国产视频在线| 国产精品激情偷乱一区二区∴| 精品国产污污免费网站入口| 欧美在线三级电影| 成人毛片在线观看| 黑人精品欧美一区二区蜜桃| 亚洲高清免费观看 | 亚洲成人1区2区| 中文字幕一区二区三区四区不卡| 精品国产乱子伦一区| 欧美精品九九99久久| 色婷婷久久综合| 高清在线成人网| 久草这里只有精品视频| 日韩和欧美一区二区三区| 亚洲精品日日夜夜| 中文字幕一区二区三区色视频 | 亚洲欧洲在线观看av| 2024国产精品| 日韩一区国产二区欧美三区| 欧美色爱综合网| 一本久久综合亚洲鲁鲁五月天| 国产91精品精华液一区二区三区| 韩日av一区二区| 美脚の诱脚舐め脚责91 | xfplay精品久久| 日韩欧美123| 在线成人午夜影院| 欧美浪妇xxxx高跟鞋交| 在线这里只有精品| 一本久久a久久精品亚洲| 成人黄色av电影| 成人免费视频网站在线观看| 国产一区二区在线观看视频| 久久激五月天综合精品| 日本不卡123| 美女一区二区久久| 免费成人美女在线观看.| 视频在线观看一区| 天堂精品中文字幕在线| 日韩国产精品久久| 日欧美一区二区| 日本va欧美va欧美va精品| 偷拍亚洲欧洲综合| 日韩黄色一级片| 免费看黄色91| 激情综合一区二区三区| 国内精品国产三级国产a久久| 久久国产福利国产秒拍| 久久国产精品色| 国模冰冰炮一区二区| 久久草av在线| 国产精品伊人色| 国产成人欧美日韩在线电影| 国产精品99久久久久久久vr| 高清在线成人网| 91免费版在线| 欧美视频一区二区三区在线观看| 欧美三级韩国三级日本三斤| 欧美日本一道本在线视频| 7777精品伊人久久久大香线蕉经典版下载 | 日韩va亚洲va欧美va久久| 日本欧洲一区二区| 蜜桃视频在线一区| 狠狠色丁香婷婷综合| 国产激情91久久精品导航| 成人高清免费在线播放| 99久久夜色精品国产网站| 欧美在线你懂得| 日韩视频免费观看高清完整版在线观看 | 久久人人爽爽爽人久久久| 欧美韩国日本综合| 一区二区三区在线观看动漫| 亚洲成人av电影在线| 久久精品国产亚洲5555| 成人免费看的视频| 欧美亚洲日本一区| 日韩亚洲电影在线| 国产农村妇女毛片精品久久麻豆| 亚洲欧洲精品一区二区三区| 亚洲一区电影777| 麻豆中文一区二区| 成人免费看的视频| 欧美色图免费看| 精品奇米国产一区二区三区| 国产精品水嫩水嫩| 亚洲1区2区3区4区| 国产一区二区三区| 色欲综合视频天天天| 91精品婷婷国产综合久久性色| 2020国产精品自拍| 亚洲欧美二区三区| 美洲天堂一区二卡三卡四卡视频| 国产精品系列在线观看| 91黄色免费版| 日韩精品在线网站| 中文字幕亚洲一区二区av在线 | 视频一区二区三区入口| 国产精品资源网站| 日本丶国产丶欧美色综合| 日韩免费视频一区| 国产精品蜜臀在线观看| 亚洲另类一区二区| 九九视频精品免费| 91视频www| 精品久久久久一区| 亚洲男人天堂av| 国产中文字幕精品| 在线观看免费亚洲| 久久影院午夜论| 亚洲6080在线| 播五月开心婷婷综合| 日韩一区二区在线看| 亚洲免费在线观看| 国产在线视频一区二区三区| 日本高清成人免费播放| 久久久欧美精品sm网站| 亚洲aⅴ怡春院| 成人av在线影院| 精品欧美一区二区在线观看| 亚洲欧美视频一区| 国产精品一区在线观看乱码 | 亚洲午夜视频在线观看| 国产精品乡下勾搭老头1| 欧美精品日日鲁夜夜添| 中文字幕一区二区不卡 | 丁香婷婷综合色啪| 日韩欧美国产综合| 亚洲一区二区在线播放相泽| 高清日韩电视剧大全免费| 日韩欧美色电影| 亚洲图片欧美一区| 成人av网在线| 久久免费午夜影院| 奇米888四色在线精品| 欧美午夜精品免费| 亚洲欧美怡红院| 国产suv精品一区二区883| 91精品国产综合久久精品|