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

📄 xplook.as

📁 太烦了
💻 AS
📖 第 1 页 / 共 4 页
字号:
				drawLayer(movie, nW, nH, 0xffffff, m_clrHighlight, data.border);
				break;
			case "btnClose":
				drawRoundBtn(movie, 0, 0, nW, nH, 0xf3620c, 0xa01c1d, data);
				break;
			case "btnSubmit":
				drawRoundBtn(movie, 0, 0, nW, nH, 0x5cbc2e, 0x006600, data);
				break;
			case "btnGo":
				drawRoundBtn(movie, 0, 0, nW, nH, 0x5cbc2e, 0x006600, data);
				drawGo(movie, 0, 0, nW, nH, 0xffffff);
				break;
			case "checkbox":
				drawBtnCheckBox(movie, nW, nH, data);
				break;
			default:
				movie.clear();
				if(data.state)
					drawRoundBtn(movie, 0, 0, nW, nH, data.state == "sunken" ? 0x489524 : 0x5cbc2e, 0x006600, data);
				else
					drawRoundBtn(movie, 0, 0, nW, nH, 0x028af1, 0x015796, data);
				break;
		}
	}

	private function drawTitleBack(movie:MovieClip, w:Number, h:Number, data:Object):Void
	{
		movie.clear();
		// border rect coords
		var left:Number = getBorder("left", data);
		var right:Number = getBorder("right", data);
		var top:Number = getBorder("top", data);
		var bottom:Number = getBorder("bottom", data);
		if(isNaN(data.border) || data.border)
			pseudo.Global.drawRect(movie, 0, 0, w, h, 0x8f8f8f);
		var colors:Array = [0x1e72ea, 0x28a3ec, 0x1c68ea, 0x2597eb, 0x1a5eea];
		var alphas:Array = [100, 100, 100, 100, 100];
		var ratios:Array = [0, 18, 40, 203, 255];
		var matrix = {matrixType:"box", x:left, y:top, w:w - left - right, h:h - top - bottom, r:Math.PI / 2};
		movie.beginGradientFill("linear", colors, alphas, ratios, matrix);
//		movie.beginGradientFill("linear", 0xFF0000, alphas, ratios, matrix);
		drawFillRect(movie, left, top, w - left - right, h - top - bottom);
		movie.endFill();
		if(data.mode == "out")
		{
			movie.beginFill(0xffffff, 40);
			drawFillRect(movie, left, top, w - left - right, h - top - bottom);
			movie.endFill();
		}
	}

	private function drawResizeDots(movie:MovieClip, nW:Number, nH:Number, nOffX:Number, nOffY:Number, clrFill:Number):Void
	{
		pseudo.Global.drawRect(movie, nW - 5 + nOffX, nH - 13 + nOffY, 2, 2, clrFill);
		pseudo.Global.drawRect(movie, nW - 5 + nOffX, nH - 9 + nOffY, 2, 2, clrFill);
		pseudo.Global.drawRect(movie, nW - 5 + nOffX, nH - 5 + nOffY, 2, 2, clrFill);
		pseudo.Global.drawRect(movie, nW - 9 + nOffX, nH - 9 + nOffY, 2, 2, clrFill);
		pseudo.Global.drawRect(movie, nW - 9 + nOffX, nH - 5 + nOffY, 2, 2, clrFill);
		pseudo.Global.drawRect(movie, nW - 13 + nOffX, nH - 5 + nOffY, 2, 2, clrFill);
	}

	private function drawResizeHandleBtn(movie:MovieClip, nW:Number, nH:Number, clrFill:Number):Void
	{
		movie.clear();
		movie.beginFill(0, 0);
		drawFillRect(movie, 0, 0, nW, nH);
		movie.endFill();
		drawResizeDots(movie, nW, nH, 1, 1, 0xffffff);
		drawResizeDots(movie, nW, nH, 0, 0, clrFill);
	}

	private function drawLine(movie:MovieClip, x1:Number, y1:Number, x2:Number, y2:Number, clr:Number, alpha:Number):Void
	{
		var dx:Number = Math.abs(x2 - x1);
		var dy:Number = Math.abs(y2 - y1);
		var sx:Number = x2 >= x1 ? 1 : -1;
		var sy:Number = y2 >= y1 ? 1 : -1;
		pseudo.Global.drawRect(movie, x1, y1, 1, 1, clr, alpha);
		if(dy <= dx)
		{
			var d1:Number = dy << 1;
			var d:Number  = d1 - dx;
			var d2:Number = ( dy - dx ) << 1;
			var x:Number = x1 + sx;
			var y:Number = y1;
			for(var i:Number = 1; i <= dx; i++)
			{
				if (d > 0)
				{
					d += d2;
					y += sy;
				}
				else d += d1;
				pseudo.Global.drawRect(movie, x, y, 1, 1, clr, alpha);
				x += sx;
			}
		}
		else
		{
			var d1:Number = dx << 1;
			var d:Number  = d1 - dy;
			var d2:Number = (dx - dy) << 1;
			var x:Number = x1;
			var y:Number = y1 + sy;
			for (var i:Number = 1; i <= dy; i++)
			{
				if( d > 0)
				{
					d += d2;
					x += sx;
				}
				else d += d1;
				pseudo.Global.drawRect(movie, x, y, 1, 1, clr, alpha);
				y += sy;
			}
		}
	}

	private function drawTitleButton(movie:MovieClip, nW:Number, nH:Number, data:Object):Void
	{
		movie.clear();
		movie._alpha = 100; // xxx this line fixes alpha value, changed in other themes
		var bFaded:Boolean = data.faded && data.mode == "out";

		switch(data.type)
		{
			case "titleBtnHide":
				drawSquareBtn(movie, 0, 0, nW, nH, bFaded ? 0x78c5fe : 0x028af1, 0xffffff, data);
				var nOffX:Number = Math.round((nW - 6) / 2);
				var nOffY:Number = Math.round((nH - 8) / 2);
				pseudo.Global.drawRect(movie, nOffX - 1, nOffY + 6, 6, 3, 0xffffff);
				break;
			case "titleBtnMinimize":
				drawSquareBtn(movie, 0, 0, nW, nH, bFaded ? 0x78c5fe : 0x028af1, 0xffffff, data);
				var nOffX:Number = Math.round((nW - 9) / 2);
				var nOffY:Number = Math.round((nH - 9) / 2);
				if(data.state == "sunken")
				{
					pseudo.Global.drawRect(movie, nOffX + 2, nOffY, 7, 2, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX + 8, nOffY + 2, 1, 4, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX, nOffY + 3, 7, 2, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX, nOffY + 5, 1, 4, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX + 1, nOffY + 8, 6, 1, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX + 6, nOffY + 5, 1, 4, 0xffffff);
				}
				else
				{
					pseudo.Global.drawRect(movie, nOffX, nOffY, 9, 2, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX, nOffY + 2, 1, 7, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX + 1, nOffY + 8, 8, 1, 0xffffff);
					pseudo.Global.drawRect(movie, nOffX + 8, nOffY + 2, 1, 7, 0xffffff);
				}
				break;
			case "titleBtnClose":
				drawSquareBtn(movie, 0, 0, nW, nH, bFaded ? 0xf9aa7b : 0xf3620c, 0xffffff, data);
				drawCross(movie, 0, 0, nW, nH, 0xffffff);
				break;
		}
	}

	private function drawPane(movie:MovieClip, nW:Number, nH:Number, data:Object):Void
	{
		switch(data.type)
		{
			case "utilitiesPane":
			case "infoPane":
			case "comboBoxPane":
				drawLayer(movie, nW, nH, 0xffffff, 0x727272, data.border);
				break;
			case "topPane":
				drawTopPane(movie, nW, nH, data);
				break;
			default:
				drawLayer(movie, nW, nH, 0xf2f2f2, 0x727272, data.border);
				break;
		}
	}

	private function drawTopPane(movie:MovieClip, w:Number, h:Number, data:Object):Void
	{
		movie.clear();
		var colors:Array = [0x0066ca, 0x99cdff];
		var alphas:Array = [100, 100];
		var ratios:Array = [0, 255];
		var matrix = {matrixType:"box", x:0, y:0, w:w, h:h, r:0};
		movie.beginGradientFill("linear", colors, alphas, ratios, matrix);
//		movie.beginGradientFill("linear", 0xFF0000, alphas, ratios, matrix);
		drawFillRect(movie, 0, 0, w, h);
		movie.endFill();
	}

	private function drawResizeLine(movie:MovieClip, nX:Number, nY:Number, nW:Number, nH:Number):Void
	{
		movie.clear();
		pseudo.Global.drawRect(movie, nX, nY, nW, nH, 0xa0a0a0);
	}

	private function drawSign(movie:MovieClip, w:Number, h:Number, data:Object):Void
	{
		var strPath:String = getIconPath(data.icon);
		if(movie["icon"].iconPath != strPath)
		{ // we load icon only if it is new or different icon
			var listener:Object = new Object();
			listener.w = w;
			listener.h = h;
			listener.movie = movie;
			listener.path = strPath;
			listener.onLoadInit = function(target:MovieClip):Void
			{
				target._x = Math.round(-target._width / 2);
				target._y = Math.round(-target._height / 2);
				target.iconPath = this.path;
				this.movie.fireEvent("onLoadIcon");
				delete this.loader;
				delete this;
			}
			var loader:MovieClipLoader = new MovieClipLoader();
			listener.loader = loader;
			loader.addListener(listener);
			loader.loadClip(strPath, movie.createEmptyMovieClip("icon", 2));
		}
	}

	private function drawLabel(movie:MovieClip, nW:Number, nH:Number, data:Object):Void
	{
		switch(data.type)
		{
			case "edit":
				drawButton(movie, nW, nH, data);
				break;
			case "info":
				movie.clear();
				/*movie.lineStyle(1, 0xa0a0a0);
				movie.beginFill(0xffffff, 100);
				drawFillRect(movie, 0.5, 0.5, nW - 1, nH - 1);
				movie.endFill();
				movie.lineStyle(undefined);*/
				break;
		}
	}

	private function drawIconLayer(movie:MovieClip, nW:Number, nH:Number, data:Object):Void
	{
		var strPath:String = getIconPath(data.icon);
		var icon:MovieClip = movie["icon"];
		var iconH:Number = data.iconH ? data.iconH : nH;
		var iconW:Number = nW;
		if(!icon || icon.iconPath != strPath)
		{ // we are loading icon only if it is new or different icon
			var listener:Object = new Object();
			listener.onLoadInit = function(target:MovieClip):Void
			{
				target._x = Math.round((iconW - target._width) / 2);
				target._y = Math.round((iconH - target._height) / 2);
				target.iconPath = strPath;
				if(data.drawBg)
				{
					movie.clear();
					if(data.fldText)
						pseudo.Global.drawRect(movie, target._x, target._y, target._width, iconH + 2, 0, 0);
					else
						pseudo.Global.drawRect(movie, 0, 0, iconW, iconH, 0, 0);
				}
				delete this.loader;
				delete this;
				movie.fireEvent("loaded", target);
			}
			var loader:MovieClipLoader = new MovieClipLoader();
			listener.loader = loader;
			loader.addListener(listener);
			loader.loadClip(strPath, movie.createEmptyMovieClip("icon", 2));
		}
		else
		{
			icon._x = Math.round((iconW - icon._width) / 2);
			icon._y = Math.round((iconH - icon._height) / 2);
			if(data.drawBg)
			{
				movie.clear();
				if(data.fldText)
					pseudo.Global.drawRect(movie, icon._x, icon._y, icon._width, iconH + 2, 0, 0);
				else
					pseudo.Global.drawRect(movie, 0, 0, iconW, iconH, 0, 0);
			}
		}
		data.fldText.background = false; // these 2 fields should be set to false
		data.fldText.border = false;
		var x:Number = data.fldText._x;
		var y:Number = data.fldText._y;
		var w:Number = data.fldText._width;
		var h:Number = data.fldText._height;
		var clr = new Color(movie["icon"]);
		var matrix:Object;
		switch(data.mode)
		{
			case "over":
				matrix = {ra:'80', rb:'0', ga:'90', gb:'0', ba:'100', bb:'0'};
				movie.beginFill(0x016be3, 100);
				drawRoundRect(movie, x, y, x + w, y + h, 3);
				movie.endFill();
				break;
			case "press":
				matrix = {ra:'70', rb:'0', ga:'80', gb:'0', ba:'90', bb:'0'};
				movie.beginFill(0x015ec5, 100);
				drawRoundRect(movie, x, y, x + w, y + h, 3);
				movie.endFill();
				break;
			case "out":
				matrix = {ra:'100', rb:'0', ga:'100', gb:'0', ba:'100', bb:'0'};
				break;
		}
		clr.setTransform(matrix);
	}

	private function drawLayer(movie:MovieClip, nW:Number, nH:Number, clrFill:Number, clrBorder:Number, nBorder:Number):Void
	{
		if(nBorder == undefined || nBorder == null) nBorder = 1 + 2 + 4 + 8; // draw all border lines on default
		movie.clear();
		pseudo.Global.drawRect(movie, 0, 0, nW, nH, clrFill);
    if(nBorder & 1) pseudo.Global.drawRect(movie, 0, 0, nW, 1, clrBorder);
    if(nBorder & 2) pseudo.Global.drawRect(movie, 0, 0, 1, nH, clrBorder);
    if(nBorder & 4) pseudo.Global.drawRect(movie, 0, nH - 1, nW, 1, clrBorder);
    if(nBorder & 8) pseudo.Global.drawRect(movie, nW - 1, 0, 1, nH, clrBorder);
	}

	private function drawPureBtn(movie:MovieClip, x:Number, y:Number, w:Number, h:Number, data:Object):Void
	{
		switch(data.mode)
		{
			case "out":
			case "press":
				var colors:Array = new Array(
					data.mode == "out" ? 0xdcdcd7 : 0xb0b0a7, data.mode == "out" ? 0xffffff : 0xf1efdf);
				var alphas:Array = new Array(100, 100);
				var ratios:Array = new Array(0, 255);
				var matrix:Object = {matrixType:"box", x:x + 1, y:y + 1, w:w - 2, h:h - 2, r:Math.PI / 4};
				movie.beginGradientFill("linear", colors, alphas, ratios, matrix);
//				movie.beginGradientFill("linear", 0xFF0000, alphas, ratios, matrix);
				drawFillRect(movie, x + 1, y + 1, w - 2, h - 2);
				movie.endFill();
				break;
			case "over":
				var colors:Array = new Array(0xfff0cf, 0xf8b330);
				var alphas:Array = new Array(100, 100);
				var ratios:Array = new Array(0, 255);
				var matrix:Object = {matrixType:"box", x:x + 1, y:y + 1, w:w - 2, h:h - 2, r:Math.PI / 4};
				movie.beginGradientFill("linear", colors, alphas, ratios, matrix);
//				movie.beginGradientFill("linear", 0xFF0000, alphas, ratios, matrix);
				drawFillRect(movie, x + 1, y + 1, w - 2, h - 2);
				movie.endFill();
				pseudo.Global.drawRect(movie, x + 3, y + 3, w - 6, h - 6, 0xe7e7e3);
				break;
		}
		pseudo.Global.drawFrame(movie, x, y, w, h, 0x1c5180);
	}

	private function drawCheckBox(movie:MovieClip, x:Number, y:Number, data:Object):Void
	{
		drawPureBtn(movie, x, y, 13, 13, data);
		if(data.state == "sunken")
		{
			for(var i = 0; i < 3; i++)
				pseudo.Global.drawRect(movie, x + i + 3, y + i + 5, 1, 3, 0x21a121);
			for(var i = 0; i < 4; i++)
				pseudo.Global.drawRect(movie, x - i + 9, y + i + 3, 1, 3, 0x21a121);
		}
	}

	private function drawBtnCheckBox(movie:MovieClip, w:Number, h:Number, data:Object):Void
	{
		movie.clear();
		pseudo.Global.drawRect(movie, 0, 0, w, h, 0, 0);
		drawCheckBox(movie, 0, Math.round((h - 13) / 2 - 1), data);
	}

	private function drawResizeTitle(movie:MovieClip, nW:Number, nH:Number, data:Object):Void
	{
		movie.clear();
		var r:Number = nH - 1;
		movie.lineStyle(1, 0x727272);
		var colBg:Number = 0xdcdcdc;
		switch(data.mode)
		{
			case "over": colBg = 0x016be3; break;
			case "press": colBg = 0x015ec5; break;
		}
		movie.beginFill(colBg, 100);
		// theta = 45 degrees in radians
		movie.moveTo(r + 0.5, 0.5);
		movie.lineTo(nW - 0.5, 0.5);
		var bottom:Boolean = !data.border || data.border & 4;
		movie.lineTo(nW - 0.5, nH - (bottom ? 0.5 : 0));
		if(!bottom) movie.lineStyle(undefined);
		movie.lineTo(0.5, nH - (bottom ? 0.5 : 0));
		movie.lineStyle(1, 0x727272);
		movie.lineTo(0.5, r + 0.5);

		var theta, angle, cx, cy, px, py;
		theta = Math.PI / 4;
		// draw tl corner
		angle = Math.PI;
		cx = r + 0.5 + (Math.cos(angle + (theta / 2)) * r / Math.cos(theta / 2));
		cy = r + 0.5 + (Math.sin(angle + (theta / 2)) * r / Math.cos(theta / 2));
		px = r + 0.5 + (Math.cos(angle + theta) * r);
		py = r + 0.5 + (Math.sin(angle + theta) * r);
		movie.curveTo(cx, cy, px, py);
		angle += theta;
		cx = r + 0.5 + (Math.cos(angle + (theta / 2)) * r / Math.cos(theta / 2));
		cy = r + 0.5 + (Math.sin(angle + (theta / 2)) * r / Math.cos(theta / 2));
		px = r + 0.5 + (Math.cos(angle + theta) * r);
		py = r + 0.5 + (Math.sin(angle + theta) * r);
		movie.curveTo(cx, cy, px, py);

		movie.endFill();
		movie.lineStyle(undefined);
		var x:Number = nW - 15;
		var y:Number = Math.round((nH - 9) / 2);
		drawDoubleArrow(movie, x, y, 9, 9, data.state == "sunken" ? "down" : "up",
			data.mode == "out" ? 0 : 0xffffff);
	}

	private function drawDoubleArrow(movie:MovieClip, nX:Number, nY:Number, nW:Number, nH:Number, strDir:String, clrImage:Number):Void
	{
		drawSingleArrow(movie, nX, nY, nW, nH - 5, strDir, clrImage);
		drawSingleArrow(movie, nX, nY + 5, nW, nH - 5, strDir, clrImage);
	}

	private function drawSingleArrow(movie:MovieClip, nX:Number, nY:Number, nW:Number, nH:Number, dir:String, clr:Number, alpha:Number):Void
	{
		if(!alpha) alpha = 100;
		var bVert:Boolean = dir == "up" || dir == "down";
		var size:Number = bVert 
			? ((nW / 2 > nH) ? nH * 2 : nW)
			: ((nH / 2 > nW) ? nW * 2 : nH);
		size -= size % 2;
		var halfSize:Number = size / 2;
		var x:Number = nX + Math.round((nW - (bVert ? size : halfSize)) / 2);
		var y:Number = nY + Math.round((nH - (bVert ? halfSize : size)) / 2);
		switch(dir)
		{
			case "up":
				pseudo.Global.drawRect(movie, x, y + halfSize - 2, 1, 2, clr, alpha);
				pseudo.Global.drawRect(movie, x + size - 1, y + halfSize - 2, 1, 2, clr, alpha);
				for(var i:Number = 1; i < halfSize; i++)
				{
					pseudo.Global.drawRect(movie, x + i, y + halfSize - i - 2, 1, 3, clr, alpha);
					pseudo.Global.drawRect(movie, x + size - i - 1, y + halfSize - i - 2, 1, 3, clr, alpha);
				}
				break;
			case "down":
				pseudo.Global.drawRect(movie, x, y, 1, 2, clr, alpha);
				pseudo.Global.drawRect(movie, x + size - 1, y, 1, 2, clr, alpha);
				for(var i:Number = 1; i < halfSize; i++)
				{
					pseudo.Global.drawRect(movie, x + i, y + i - 1, 1, 3, clr, alpha);
					pseudo.Global.drawRect(movie, x + size - i - 1, y + i - 1, 1, 3, clr, alpha);

⌨️ 快捷键说明

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