📄 xplook.as
字号:
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 + -