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

📄 stdlook.as

📁 太烦了
💻 AS
📖 第 1 页 / 共 4 页
字号:
				var nOffX:Number = Math.round((nW - 8) / 2);
				var nOffY:Number = Math.round((nH - 7) / 2);
				for(var i = 0; i < 7; i++)
				{
					pseudo.Global.drawRect(movie, nOffX + i, nOffY + i, 2, 1, clrImg);
					pseudo.Global.drawRect(movie, nOffX + 6 - i, nOffY + i, 2, 1, clrImg);
				}
				break;
		}
		movie._alpha = data.faded && data.mode == "out" ? 60 : 100;
	}

	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, m_clrBtnShadow, data.border);
				break;
			default:
				drawLayer(movie, nW, nH, m_clrWindow, m_clrBtnShadow, data.border);
				break;
		}
	}

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

	private function drawSign(movie:MovieClip, w:Number, h:Number):Void
	{
		var strPath:String = getIconPath("contentPreloader");
		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();
				pseudo.Global.drawRect(movie, 0, 0, nW, nH, m_clrBtnFace);
				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);
			}
		}
		var clr = new Color(icon);
		var matrix:Object;
		switch(data.mode)
		{
			case "over":
				var r:Number = pseudo.Global.getR(m_clrBtnHover);
				var g:Number = pseudo.Global.getG(m_clrBtnHover);
				var b:Number = pseudo.Global.getB(m_clrBtnHover);
				var min:Number = pseudo.Global.max(r, g, b) - 40;
				r -= min;
				g -= min;
				b -= min;
				matrix = {ra:'80', rb:r, ga:'80', gb:g, ba:'80', bb:b};
				data.fldText.border = true;
				data.fldText.borderColor = m_clrHighlight;
				data.fldText.background = true;
				data.fldText.backgroundColor = m_clrBtnHover;
				break;
			case "press":
				var r:Number = pseudo.Global.getR(m_clrBtnPressed);
				var g:Number = pseudo.Global.getG(m_clrBtnPressed);
				var b:Number = pseudo.Global.getB(m_clrBtnPressed);
				var min:Number = pseudo.Global.max(r, g, b) - 40;
				r -= min;
				g -= min;
				b -= min;
				matrix = {ra:'80', rb:r, ga:'80', gb:g, ba:'80', bb:b};
				data.fldText.border = true;
				data.fldText.borderColor = m_clrHighlight;
				data.fldText.background = true;
				data.fldText.backgroundColor = m_clrBtnPressed;
				break;
			case "out":
				matrix = {ra:'100', rb:'0', ga:'100', gb:'0', ba:'100', bb:'0'};
				data.fldText.border = false;
				data.fldText.background = false;
				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 drawCheckedLayer(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
		drawLayer(movie, nW, nH, clrFill, clrBorder, nBorder);
		if(nBorder & 1) pseudo.Global.drawRect(movie, 1, 1, nW - 2, 1, clrBorder);
		if(nBorder & 2) pseudo.Global.drawRect(movie, 1, 1, 1, nH - 2, clrBorder);
		if(nBorder & 4) pseudo.Global.drawRect(movie, 1, nH - 2, nW - 2, 1, clrBorder);
		if(nBorder & 8) pseudo.Global.drawRect(movie, nW - 2, 1, 1, nH - 2, clrBorder);
	}

	private function drawCheckBox(movie:MovieClip, x:Number, y:Number, clrFill:Number, clrBorder:Number, clrImage:Number, bChecked:Boolean):Void
	{
		pseudo.Global.drawRect(movie, x, y, 13, 13, clrFill);
		pseudo.Global.drawFrame(movie, x, y, 13, 13, clrBorder, 100, bChecked ? 2 : 1);
		if(bChecked)
		{
			for(var i = 0; i < 3; i++)
				pseudo.Global.drawRect(movie, x + i + 3, y + i + 5, 1, 3, clrImage);
			for(var i = 0; i < 4; i++)
				pseudo.Global.drawRect(movie, x - i + 9, y + i + 3, 1, 3, clrImage);
		}
	}

	private function drawBtnCheckBox(movie:MovieClip, w:Number, h:Number, clrFill:Number, clrBorder:Number, clrImage: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), clrFill, clrBorder, clrImage, data.state == "sunken");
	}

	private function drawResizeTitle(movie:MovieClip, nW:Number, nH:Number, clrFill:Number, clrBorder:Number, clrImage:Number, data:Object):Void
	{
		drawLayer(movie, nW, nH, clrFill, clrBorder, data.border);
		drawDoubleArrow(movie, nW - 13, Math.round((nH - 8) / 2),
			data.state == "normal" ? "up" : "down", clrImage);
	}

	private function drawTabMark(movie:MovieClip, nW:Number, nH:Number, data:Object):Void
	{
		drawDefaultBtn(movie, nW, nH, data);
		var clr:Number = data.mode == "press" ? m_clrHilightText : m_clrBtnText;
		drawSingleArrow(movie, 3, 4, "down", clr);
		drawSingleArrow(movie, 3, 4 + 4, "down", clr);
	}

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

	private function drawSingleArrow(movie:MovieClip, nX:Number, nY:Number, strDir:String, clrImage:Number):Void
	{
		var nSign:Number = strDir == "down" ? -1 : 1;
		var nOff:Number = strDir == "down" ? 3 : 0;
		pseudo.Global.drawRect(movie, nX + 0, nY + nOff + nSign * 3, 2, 1, clrImage);
		pseudo.Global.drawRect(movie, nX + 1, nY + nOff + nSign * 2, 2, 1, clrImage);
		pseudo.Global.drawRect(movie, nX + 2, nY + nOff + nSign * 1, 3, 1, clrImage);
		pseudo.Global.drawRect(movie, nX + 3, nY + nOff + nSign * 0, 1, 1, clrImage);
		pseudo.Global.drawRect(movie, nX + 4, nY + nOff + nSign * 2, 2, 1, clrImage);
		pseudo.Global.drawRect(movie, nX + 5, nY + nOff + nSign * 3, 2, 1, clrImage);
	}

	private function drawSolidArrow(movie:MovieClip, nX:Number, nY:Number,
		nW:Number, nH:Number, dir:String, clr:Number):Void
	{
		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 ? 0 : 1;
		var halfSize:Number = (size + 1) / 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":
				for(var i:Number = 0; i < halfSize; i++)
					pseudo.Global.drawRect(movie, x + i, y + halfSize - 1 - i, size - i * 2, 1, clr);
				break;
			case "down":
				for(var i:Number = 0; i < Math.floor(size / 2) + 1; i++)
					pseudo.Global.drawRect(movie, x + i, y + i, size - i * 2, 1, clr);
				break;
			case "left":
				for(var i:Number = 0; i < halfSize; i++)
					pseudo.Global.drawRect(movie, x + halfSize - 1 - i, y + i, 1, size - i * 2, clr);
				break;
			case "right":
				for(var i:Number = 0; i < Math.floor(size / 2) + 1; i++)
					pseudo.Global.drawRect(movie, x + i, y + i, 1, size - i * 2, clr);
				break;
		}
	}

	private function drawGo(movie:MovieClip, x:Number, y:Number, w:Number, h:Number, clr:Number):Void
	{
		drawSolidArrow(movie, x, y + 5, w - 2, h - 10, "right", clr);
		drawSolidArrow(movie, x + 8, y + 5, w - 10, h - 10, "right", clr);
	}

	private function drawResizeBtnLayer(movie:MovieClip, nW:Number, nH:Number, data:Object,
		clrFill:Number, clrBorder:Number, clrImage:Number):Void
	{
		movie.clear();
		drawLayer(movie, nW, nH, clrFill, clrBorder);
		var bSunken:Boolean = data.state == "sunken";
		switch(data.type)
		{
			case "resizeRight":
				drawSolidArrow(movie, bSunken ? 2 : 1, 1, nW - 3, nH - 2, bSunken ? "left" : "right", clrImage);
				break;
			case "resizeLeft":
				drawSolidArrow(movie, bSunken ? 1 : 2, 1, nW - 3, nH - 2, bSunken ? "right" : "left", clrImage);
				break;
			case "resizeTop":
				drawSolidArrow(movie, 1, bSunken ? 1 : 2, nW - 2, nH - 3, bSunken ? "down" : "up", clrImage);
				break;
			case "resizeBottom":
				drawSolidArrow(movie, 1, bSunken ? 2 : 1, nW - 2, nH - 3, bSunken ? "up" : "down", clrImage);
				break;
		}
	}

	private function drawScrollLayer(movie:MovieClip, nW:Number, nH:Number,
		data:Object, clrFill:Number, clrBorder:Number, clrImage:Number):Void
	{
		drawLayer(movie, nW, nH, clrFill, clrBorder, data.border);
		var nX, nY, nMaxLong, nMaxShort, nHalf, nSize:Number;
		var bLow:Boolean = data.type == "scrollLow" && data.type != "comboBoxBtn";
		var bVert:Boolean = data.dir == "vert" || data.type == "comboBoxBtn";
		if(bVert)
		{
			nMaxLong = nW - 8 + (nW - 1) % 2;
			nMaxShort = nH - 8 + nH % 2;
			nSize = nMaxLong > nMaxShort * 2 - 1 ? nMaxShort * 2 - 1 : nMaxLong;
			nHalf = Math.floor(nH / 2 + (bLow ? 1 : -1) * ((nSize + 1) / 4 - 1));
			nX = Math.floor((nW - nSize) / 2);
		}
		else
		{
			nMaxShort = nW - 8 + nW % 2;
			nMaxLong = nH - 8 + (nH - 1) % 2;
			nSize = nMaxLong > nMaxShort * 2 - 1 ? nMaxShort * 2 - 1 : nMaxLong;
			nHalf = Math.floor(nW / 2 + (bLow ? 1 : -1) * ((nSize + 1) / 4 - 1));
			nY = Math.floor((nH - nSize) / 2);
		}
		if(bLow)
		{
			if(bVert)
			{
				for(var i:Number = nSize; i > 0; i -= 2)
					pseudo.Global.drawRect(movie, nX + (nSize - i) / 2, nHalf - (nSize - i) / 2, i, 1, clrImage);
			}
			else
			{
				for(var i:Number = nSize; i > 0; i -= 2)
					pseudo.Global.drawRect(movie, nHalf - (nSize - i) / 2, nY + (nSize - i) / 2, 1, i, clrImage);
			}
		}
		else
		{
			if(bVert)
			{
				for(var i:Number = nSize; i > 0; i -= 2)
					pseudo.Global.drawRect(movie, nX + (nSize - i) / 2, nHalf + (nSize - i) / 2, i, 1, clrImage);
			}
			else
			{
				for(var i:Number = nSize; i > 0; i -= 2)
					pseudo.Global.drawRect(movie, nHalf + (nSize - i) / 2, nY + (nSize - i) / 2, 1, i, clrImage);
			}
		}
	}

	private function getWndTitleParams():Object
	{
		// off1 - offset between hide and maximize buttons
		// off2 - offset between maximize and close buttons
		return new Object({off1:1, off2:3, h:22, btnW:15, btnH:15});
	}

	private function getResizeBtnParams():Object
	{
		return new Object({w:9, h:9, offX:5, offY:5});
	}

	private function getResizeLineParams(strAlign:String, data:Object):Object
	{
		var obj:Object = new Object();
		switch(strAlign)
		{
			case "top":
			case "bottom":
				obj.btnW = 28;
				obj.btnH = 8;
				break;
			default: // left or right
				obj.btnW = 8;
				obj.btnH = 28;
				break;
		}
		return obj;
	}

	private function getTreeParams():Object
	{
		return {offStart:8, off:8, iconW:9, iconH:12};
	}
}

⌨️ 快捷键说明

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