enisk
Threadersteller
Dabei seit: 09.07.2006
Ort: Ffm
Alter: 35
Geschlecht:
|
Verfasst Di 18.12.2007 21:43
Titel
|
|
|
so sieht der code bis jetzt aus:
---------------------------------------------------------------------------------------------------
/*
** CURRENT VERSION **
+ Supports same-domain paths
+ Easier to use go to field
+ Items that are not at front are not grown to full size
+ Now changes brightness instead of fading off the edges
+ Fixed reflections
--- Update 11
'Thanks to DarkMotion and my little brother for the new album art'
+ Images snap to size (autoJump)
+ Default messages for missing information
+ Invalid image errors fixed
+ Better distortion
+ Less CPU usage for artwork
+ Go to field
--- Update 10
+ Fixed reflection depths
+ Solid-Transparent reflections
+ Blur for reflections
+ Fixed the last artwork loading (Accidentally took it out in the last update)
--- Update 9
+ Enhanced MouseWheel functioning
+ Fixed Mouse and Keyboard skipping bugs
+ More intelligent loading routines
+ Fixed alternative artwork display
--- Update 8
+ XML information
+ Dynamically loaded artork
--- Update 7
- Resizing jump
- Variable changes for items (the excessDisplay is no longer necessary)
+ Masking
+ Artwork's heights now change too
+ Scrollbar snaps
+ Scrollbar keeps scrolling while bar is clicked
+ Maximum scroll speeds, change maxSlide to change this... to not use this, set it really high, as in 3000
--- Update 6
- Creation of new MC for each artwork
+ Fixed Scrollbar (Compatible for varying lengths)
+ Less CPU Intensive
--- Update 5
+ code shortened
--- Update 4
- small resizing glitches
- reflection onPress events
+ fixed gradient fills for reflections
--- Update 3
+ Reflections
- Clicking Left/Right Double Jump Bugs
--- Update 2
+ Clicks on scrollbar work
+ Fullscreen thing (only using fcommand)
+ Improved skipping buttons
--- Update 1
+ Scrollbar
+ Skip buttons
+ Mouse Wheel interaction
+ Second Example Album
+ Proper "Fake" Song Information
** Version 1 **
*/
mask._alpha = 0;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
var root:MovieClip = this;
var myMO:Object;
var myKO:Object;
var loadedAll:Boolean;
var distance:Number;
var autoJump:Number = .2;
var maxSlide:Number = 100;
var minScaleDistance:Number = 150;
var deleteMinDistance:Number = 0;
var deleteMaxDistance:Number = 500;
var doubleClickRegister:Number = 500;
var frontCDWidth:Number = 70;
var frontCDHeight:Number = 70;
var shelveCDHeight:Number = 45;
var shelveCDWidth:Number = 30;
var shelveCDSpacing:Number = 20;
var centerDistance:Number = 20;
var albumEase:Number = 4;
var angle:Number = 4;
var fadePoint:Number = 500;
var fadeDist:Number = 00;
var current:Number = 1;
var centerX:Number = Stage.width/2;
var centerY:Number = 70;
var clickDelay:Number = 750;
var scrollBarStart:Number = 20;
var scrollerDelay:Number = 150;
var scrollBarStop:Number = scrollBar.scroller._width+18;
var reflectionBackgroundColour:Number = 0xa0a0a0;
var reflectionBlurX:Number = 0;
var reflectionBlurY:Number = 0;
var reflectionQuality:Number = 3;
var reflectionSpace:Number = 0;
var reflectionAlpha:Number = 100;
var reflectionRotation:Number = 90;
var reflectionFocalPointRatio:Number = 0.3;
var reflectionFillType:String = "linear";
var reflectionSpreadMethod:String = "pad";
var reflectionInterpolationMethod:String = "RGB";
var unknownSong:String = "Unknown Title";
var unknownUrl:String = "Unknown Url";
var unknownArtist:String = "Unknown Artist";
var unknownAlbum:String = "Unknown Album";
var infostruc:Array = [];
var reflectionColors:Array = [0xa0a0a0, 0xa0a0a0];
var reflectionAlphas:Array = [100, 40];
var reflectionRatios:Array = [50, 80];
var xmlData:XML = new XML();
MovieClip.prototype.setSides = function(x1:Number, y1:Number, x2:Number, y2:Number, x3:Number, y3:Number, x4:Number, y4:Number):Void {
this.px1 = x1;
this.py1 = y1;
this.px2 = x2;
this.py2 = y2;
this.px3 = x3;
this.py3 = y3;
this.px4 = x4;
this.py4 = y4;
};
Mouse.addListener(mouseListener);
MovieClip.prototype.DistortImage = function(ptexture, vseg:Number, hseg:Number) {
if (ptexture instanceof BitmapData) {
this.texture = ptexture;
} else if (ptexture instanceof MovieClip) {
this.texture = new BitmapData(ptexture._width, ptexture._height);
this.texture.draw(ptexture);
}
this._w = this.texture.width;
this._h = this.texture.height;
this._aMcs = [];
this._p = [];
this._tri = [];
this.init();
};
MovieClip.prototype.setTransform = function(x0:Number, y0:Number, x1:Number, y1:Number, x2:Number, y2:Number, x3:Number, y3:Number):Void {
this.dx30 = x3-x0;
this.dy30 = y3-y0;
this.dx21 = x2-x1;
this.dy21 = y2-y1;
for (var l in this._p) {
this.point = this._p[l];
var gx = (this.point.x-this._xMin)/this._w;
var gy = (this.point.y-this._yMin)/this._h;
var bx = x0+gy*(this.dx30);
var by = y0+gy*(this.dy30);
this.point.sx = bx+gx*((x1+gy*(this.dx21))-bx);
this.point.sy = by+gx*((y1+gy*(this.dy21))-by);
}
this.render();
};
MovieClip.prototype.init = function(Void):Void {
this._p = [];
this._tri = [];
this.w2 = this._w/2;
this.h2 = this._h/2;
this._xMin = this._yMin=0;
this._xMax = this._w;
this._yMax = this._h;
this._hsLen = this._w/2;
this._vsLen = this._h/2;
for (ix=0; ix<3; ix++) {
for (iy=0; iy<3; iy++) {
x = ix*this._hsLen;
y = iy*this._vsLen;
this._p.push({x, y:y, sx:x, sy:y});
}
}
for (ix=0; ix<2; ix++) {
for (iy=0; iy<2; iy++) {
this.p0 = this._p[iy+ix*3];
this.p1 = this._p[iy+ix*3+1];
this.p2 = this._p[iy+(ix+1)*3];
this.addTriangle(this.p0, this.p1, this.p2);
this.p0 = this._p[iy+(ix+1)*3+1];
this.p1 = this._p[iy+(ix+1)*3];
this.p2 = this._p[iy+ix*3+1];
this.addTriangle(this.p0, this.p1, this.p2);
}
}
this.render();
};
MovieClip.prototype.addTriangle = function(p0:Object, p1:Object, p2:Object):Void {
this.tMat = {};
this.u0 = p0.x;
this.v0 = p0.y;
this.u1 = p1.x;
this.v1 = p1.y;
this.u2 = p2.x;
this.v2 = p2.y;
this.tMat.tx = -this.v0*(this._w/(this.v1-this.v0));
this.tMat.ty = -this.u0*(this._h/(this.u2-this.u0));
this.tMat.a = this.tMat.d=0;
this.tMat.b = this._h/(this.u2-this.u0);
this.tMat.c = this._w/(this.v1-this.v0);
this._tri.push([p0, p1, p2, this.tMat]);
};
MovieClip.prototype.render = function(Void):Void {
this.clear();
this.ih = 1/this._h;
this.iw = 1/this._w;
this.tM = this.sM={};
for (var l in this._tri) {
a = this._tri[l];
this.p0 = a[0];
this.p1 = a[1];
this.p2 = a[2];
this.tM = a[3];
this.sM.a = (this.p1.sx-(this.x0=this.p0.sx))*this.iw;
this.sM.b = (this.p1.sy-(this.y0=this.p0.sy))*this.iw;
this.sM.c = (this.p2.sx-this.x0)*this.ih;
this.sM.d = (this.p2.sy-this.y0)*this.ih;
this.sM.tx = this.x0;
this.sM.ty = this.y0;
this.sM = concat(this.sM, this.tM);
this.beginBitmapFill(this.texture, this.sM, false, false);
this.moveTo(this.x0, this.y0);
this.lineTo(this.p1.sx, this.p1.sy);
this.lineTo(this.p2.sx, this.p2.sy);
this.endFill();
}
};
function init(Void):Void {
myMO = {};
myKO = {};
Mouse.addListener(myMO);
Key.addListener(myKO);
for (var i in infostruc) {
loader.clear();
loader.gradient_mc.removeMovieClip();
loader.attachMovie("default", "art", 1);
loader._width = frontCDWidth;
loader._height = frontCDHeight;
this["_bmd"+i] = new BitmapData(loader._width, loader._height);
this["_ref"+i] = new BitmapData(loader._width, loader._height);
this["_bmd"+i].draw(loader);
var mc:MovieClip = loader.createEmptyMovieClip("gradient_mc", loader.getNextHighestDepth());
matrix = new Matrix();
matrix.createGradientBox(loader._width, loader._height, reflectionRotation/180*Math.PI, 0, 0);
mc.beginGradientFill(reflectionFillType, reflectionColors, reflectionAlphas, reflectionRatios, matrix, reflectionSpreadMethod, reflectionInterpolationMethod, reflectionFocalPointRatio);
mc.moveTo(0, 0);
mc.lineTo(0, loader._height);
mc.lineTo(loader._width, loader._height);
mc.lineTo(loader._width, 0);
mc.lineTo(0, 0);
mc.endFill();
loader.art._alpha = reflectionAlpha;
loader.beginFill(reflectionBackgroundColour);
loader.moveTo(0, 0);
loader.lineTo(0, loader._height);
loader.lineTo(loader._width, loader._height);
loader.lineTo(loader._width, 0);
loader.lineTo(0, 0);
loader.endFill();
this["_ref"+i].draw(loader);
}
for (var i:Number = count=0; count<Stage.width-(centerDistance*2); count += shelveCDSpacing, i++) {
var cArt:MovieClip = this.createEmptyMovieClip("art"+this.getNextHighestDepth(), this.getNextHighestDepth());
var rArt:MovieClip = this.createEmptyMovieClip("reflection"+(this.getNextHighestDepth()-1), this.getNextHighestDepth());
rArt.id = cArt.id=rArt.cid=cArt.cid=Number(i)+1;
cArt.DistortImage(this["_bmd"+cArt.id]);
controlTheObject(cArt);
rArt.DistortImage(this["_ref"+cArt.id]);
controlTheObject(rArt);
var tmpFilter:BlurFilter = new BlurFilter(reflectionBlurX, reflectionBlurY, reflectionQuality);
rArt.filterArray = cArt.filterArray=[];
rArt.filterArray[0] = tmpFilter;
rArt.filters = rArt.filterArray;
tmask = mask.duplicateMovieClip("_mask"+cArt.id, this.getNextHighestDepth(), {_x:mask._x, _y:mask._y});
rmask = mask.duplicateMovieClip("_rmask"+cArt.id, this.getNextHighestDepth(), {_x:mask._x, _y:mask._y});
cArt.setMask(tmask);
rArt.setMask(rmask);
rArt._visible = cArt._visible=false;
}
myMO.onMouseWheel = function(delta:Number):Void {
if (delta>0) {
next();
} else if (delta<=0) {
previous();
}
};
myKO.onKeyDown = function():Void {
if (Selection.getFocus() != "_level0.goto") {
if (Key.isDown(Key.RIGHT)) {
next();
} else if (Key.isDown(Key.LEFT)) {
previous();
}
}
};
mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
if(delta > 0){
next();
}
else{
previous();
}
}
scrollBar.scroller.onPress = function():Void {
dist = this._parent._xmouse-this._x;
this.onMouseMove = function():Void {
tmp = 1+Math.ceil(((this._parent._xmouse-dist)-scrollBarStart)/(scrollBar._width-scrollBarStop)*(infostruc.length-1));
if (tmp>infostruc.length) {
tmp = infostruc.length;
}
if (tmp<1) {
tmp = 1;
}
current = tmp;
updateInfo();
};
};
scrollBar.scroller.onRelease = scrollBar.scroller.onReleaseOutside=function ():Void {
stopDrag();
delete this.onMouseMove;
};
scrollBar.left.onPress = function():Void {
previous();
shifter = setInterval(previous, scrollerDelay);
};
scrollBar.right.onPress = function():Void {
next();
shifter = setInterval(next, scrollerDelay);
};
scrollBar.onMouseUp = function():Void {
clearInterval(shifter);
};
scrollBar.onMouseDown = function():Void {
if (this.hitTest(_xmouse, _ymouse, true) && !this.left.hitTest(_xmouse, _ymouse, true) && !this.right.hitTest(_xmouse, _ymouse, true)) {
if (this._xmouse<this.scroller._x) {
previous();
shifter = setInterval(previous, clickDelay);
}
if (this._xmouse>this.scroller._x+this.scroller._width) {
next();
shifter = setInterval(next, clickDelay);
}
}
};
goto.restrict = "0-9";
goto.onKillFocus = function():Void {
if (!isNaN(Number(this.text)+1)) {
if (this.text>infostruc.length) {
this.text = infostruc.length;
}
if (this.text<1) {
this.text = 1;
}
current = this.text;
} else {
this.text = current;
}
updateInfo();
};
fscreen.onPress = function():Void {
fscommand("fullscreen", !(this._currentframe-1));
this.gotoAndStop(!(this._currentframe-1)+1);
};
distance = Number(i);
mask.removeMovieClip();
fscreen.swapDepths(1102);
loader.removeMovieClip();
scrollBar.swapDepths(1101);
loadNext();
updateInfo();
}
function concat(m1, m2):Object {
var mat:Object = {};
mat.a = m1.c*m2.b;
mat.b = m1.d*m2.b;
mat.c = m1.a*m2.c;
mat.d = m1.b*m2.c;
mat.tx = m1.a*m2.tx+m1.c*m2.ty+m1.tx;
mat.ty = m1.b*m2.tx+m1.d*m2.ty+m1.ty;
return mat;
}
function updateInfo():Void {
goto.text = current;
scrollBar.info = infostruc[current-1].info;
scrollBar.author = infostruc[current-1].auth;
scrollBar.album = infostruc[current-1].album;
displayAlternArt(root["_bmd"+(current-1)], artDisplay._width, artDisplay._height);
scrollBar.scroller._x = scrollBarStart+((current-1)/(infostruc.length-1)*(scrollBar._width-scrollBarStop));
}
function brightness(_prop:String, _old:Number, _new:Number, target:MovieClip):Void {
var brightness_array:Array = [1, 0, 0, 0, _new, 0, 1, 0, 0, _new, 0, 0, 1, 0, _new, 0, 0, 0, 1, 0];
target.filterArray[1] = new ColorMatrixFilter(brightness_array);
target.filters = target.filterArray;
}
function controlTheObject(mc):Void {
if (mc._name.indexOf("reflection") == -1) {
mc.onPress = function():Void {
if (getTimer()-this.pressTime<=doubleClickRegister && this.pressTime) {
getURL(infostruc[current-1].artUrl, "_blank");
//button actions
}
this.pressTime = getTimer();
current = this.cid+1;
updateInfo();
};
}
mc.watch("_brightness", brightness, mc);
mc.onEnterFrame = function():Void {
this._visible = true;
if (Math.abs(this._x-this.x)>1) {
if (this._name.indexOf("reflection") == -1) {
this._y = centerY;
if (this._x>=centerX+centerDistance) {
this.swapDepths(Stage.width-this._x);
this.setSides(-(shelveCDWidth/2), -(shelveCDHeight/2)+((Math.sin(angle*Math.PI/180)*frontCDWidth)), shelveCDWidth/2, -(shelveCDHeight/2), shelveCDWidth/2, shelveCDHeight/2, -(shelveCDWidth/2), (shelveCDHeight/2)-((Math.sin(angle*Math.PI/180)*frontCDWidth)));
} else if (this._x<=centerX-centerDistance) {
this.swapDepths(this._x);
this.setSides(-(shelveCDWidth/2), -(shelveCDHeight/2), shelveCDWidth/2, -(shelveCDHeight/2)+(Math.sin(angle*Math.PI/180)*frontCDWidth), shelveCDWidth/2, (shelveCDHeight/2)-(Math.sin(angle*Math.PI/180)*frontCDWidth), -(shelveCDWidth/2), shelveCDHeight/2);
} else if (this.cid == current-1 || this.cid == current || this.cid == current-2) {
if (this._x>centerX-centerDistance && Math.floor(this._x)<centerX && angle-((this._x-(centerX-centerDistance))/centerDistance*angle)>autoJump) {
this.swapDepths(1002);
var sum:Number = shelveCDWidth+((this._x-(centerX-centerDistance))/centerDistance*(frontCDWidth-shelveCDWidth));
var sum2:Number = angle-((this._x-(centerX-centerDistance))/centerDistance*angle);
var sum3:Number = shelveCDHeight+((this._x-(centerX-centerDistance))/centerDistance*(frontCDHeight-shelveCDHeight));
this.setSides(-(sum/2), -(sum3/2), sum/2, -(sum3/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)), sum/2, (sum3/2)-((Math.sin(sum2*Math.PI/180)*frontCDWidth)), -(sum/2), sum3/2);
} else if (this._x<centerX+centerDistance && Math.ceil(this._x)>centerX && angle-(((centerX+centerDistance)-this._x)/centerDistance*angle)>autoJump) {
this.swapDepths(1003);
var sum:Number = shelveCDWidth+(((centerX+centerDistance)-this._x)/centerDistance*(frontCDWidth-shelveCDWidth));
var sum2:Number = angle-(((centerX+centerDistance)-this._x)/centerDistance*angle);
var sum3:Number = shelveCDHeight+(((centerX+centerDistance)-this._x)/centerDistance*(frontCDHeight-shelveCDHeight));
this.setSides(-(sum/2), -(sum3/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)), sum/2, -(sum3/2), sum/2, sum3/2, -(sum/2), (sum3/2)-((Math.sin(sum2*Math.PI/180)*frontCDWidth)));
} else {
this.swapDepths(1004);
this.setSides(-(frontCDWidth/2), -(frontCDHeight/2), frontCDWidth/2, -(frontCDHeight/2), frontCDWidth/2, frontCDHeight/2, -(frontCDWidth/2), frontCDHeight/2);
}
} else {
if (this._x>centerX-centerDistance && Math.floor(this._x)<centerX && angle-((this._x-(centerX-centerDistance))/centerDistance*angle)>autoJump) {
this.swapDepths(1002);
var sum2:Number = angle-((this._x-(centerX-centerDistance))/centerDistance*angle);
this.setSides(-(shelveCDWidth/2), -(shelveCDHeight/2), shelveCDWidth/2, -(shelveCDHeight/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)), shelveCDWidth/2, (shelveCDHeight/2)-((Math.sin(sum2*Math.PI/180)*frontCDWidth)), -(shelveCDWidth/2), shelveCDHeight/2);
} else if (this._x<centerX+centerDistance && Math.ceil(this._x)>centerX && angle-(((centerX+centerDistance)-this._x)/centerDistance*angle)>autoJump) {
this.swapDepths(1003);
var sum2:Number = angle-(((centerX+centerDistance)-this._x)/centerDistance*angle);
this.setSides(-(shelveCDWidth/2), -(shelveCDHeight/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)), shelveCDWidth/2, -(shelveCDHeight/2), shelveCDWidth/2, shelveCDHeight/2, -(shelveCDWidth/2), (shelveCDHeight/2)-((Math.sin(sum2*Math.PI/180)*frontCDWidth)));
}
}
} else {
this._yscale = -100;
if (this._x>=centerX+centerDistance) {
this._y = centerY+shelveCDHeight+reflectionSpace;
this.swapDepths((Stage.width-this._x)-333);
this.setSides(-(shelveCDWidth/2), -(shelveCDHeight/2)+(Math.sin(angle*Math.PI/180)*frontCDWidth), -(shelveCDWidth/2)+shelveCDWidth, -(shelveCDHeight/2), -(shelveCDWidth/2)+shelveCDWidth, shelveCDHeight/2, -(shelveCDWidth/2), (shelveCDHeight/2)+((Math.sin(angle*Math.PI/180)*frontCDWidth)));
} else if (this._x<=centerX-centerDistance) {
this._y = centerY+shelveCDHeight+reflectionSpace;
this.swapDepths(this._x-333);
this.setSides(-(shelveCDWidth/2), -(shelveCDHeight/2), -(shelveCDWidth/2)+shelveCDWidth, -(shelveCDHeight/2)+((Math.sin(angle*Math.PI/180)*frontCDWidth)), -(shelveCDWidth/2)+shelveCDWidth, (shelveCDHeight/2)+(Math.sin(angle*Math.PI/180)*frontCDWidth), -(shelveCDWidth/2), shelveCDHeight/2);
} else if (this.cid == current-1 || this.cid == current || this.cid == current-2) {
if (this._x>centerX-centerDistance && this._x<centerX && !validateOk(this)) {
this.swapDepths(999);
var sum:Number = shelveCDWidth+((this._x-(centerX-centerDistance))/centerDistance*(frontCDWidth-shelveCDWidth));
var sum2:Number = angle-((this._x-(centerX-centerDistance))/centerDistance*angle);
var sum3:Number = shelveCDHeight+((this._x-(centerX-centerDistance))/centerDistance*(frontCDHeight-shelveCDHeight));
this._y = centerY+sum3+reflectionSpace;
this.setSides(-(sum/2), -(sum3/2), sum/2, -(sum3/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)), sum/2, (sum3/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)), -(sum/2), sum3/2);
} else if (this._x<centerX+centerDistance && this._x>centerX && !validateOk(this)) {
this.swapDepths(998);
var sum:Number = shelveCDWidth+(((centerX+centerDistance)-this._x)/centerDistance*(frontCDWidth-shelveCDWidth));
var sum2:Number = angle-(((centerX+centerDistance)-this._x)/centerDistance*angle);
var sum3:Number = shelveCDHeight+(((centerX+centerDistance)-this._x)/centerDistance*(frontCDHeight-shelveCDHeight));
this.setSides(-(sum/2), -(sum3/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)), sum/2, -(sum3/2), sum/2, sum3/2, -(sum/2), (sum3/2)+((Math.sin(sum2*Math.PI/180)*frontCDWidth)));
this._y = centerY+sum3+reflectionSpace;
} else if (!validateOk(this)) {
this.swapDepths(995);
this._y = centerY+frontCDHeight+reflectionSpace;
this.setSides(-(frontCDWidth/2), -(frontCDHeight/2), frontCDWidth/2, -(frontCDHeight/2), frontCDWidth/2, frontCDHeight/2, -(frontCDWidth/2), frontCDHeight/2);
}
}
}
}
if (infostruc[this.cid].loaded && !this.loadedImage) {
this.DistortImage(this._name.indexOf("reflection")>-1 ? this._parent["_ref"+this.cid] : this._parent["_bmd"+this.cid]);
this.loadedImage = true;
}
if (this._x<deleteMinDistance && this._parent["_ref"+(this.cid+distance)]) {
this.cid += distance;
this._x = deleteMaxDistance;
controlTheObject(this);
this.loadedImage = infostruc[this.cid].loaded;
this.DistortImage(this._name.indexOf("reflection")>-1 ? this._parent["_ref"+this.cid] : this._parent["_bmd"+this.cid]);
}
if (this._x>deleteMaxDistance && this._parent["_ref"+(this.cid-distance)]) {
this.cid -= distance;
this._x = deleteMinDistance;
controlTheObject(this);
this.loadedImage = infostruc[this.cid].loaded;
this.DistortImage(this._name.indexOf("reflection")>-1 ? this._parent["_ref"+this.cid] : this._parent["_bmd"+this.cid]);
}
if (this.cid+1>current) {
this.x = (centerX+((this.cid+1-current)*shelveCDSpacing))+centerDistance;
} else if (this.cid+1<current) {
this.x = (centerX+((this.cid+1-current)*shelveCDSpacing))-centerDistance;
} else {
this.x = centerX+((this.cid+1-current)*shelveCDSpacing);
}
this._x -= Math.min(Math.max((this._x-this.x)/albumEase, -maxSlide), maxSlide);
if (this._x<fadeDist) {
this._brightness = -(250-(this._x/fadeDist*250));
} else if (this._x>fadePoint-fadeDist) {
this._brightness = -(250-((fadePoint-this._x)/fadeDist*250));
} else {
this._brightness = 0;
}
this.setTransform(this.px1, this.py1, this.px2, this.py2, this.px3, this.py3, this.px4, this.py4);
};
}
function next():Void {
if (current<infostruc.length) {
current += 1;
}
updateInfo();
trace("next")
}
function previous():Void {
if (current>1) {
current -= 1;
}
updateInfo();
trace("previous")
}
function displayAlternArt(art, width:Number, height:Number):Void {
artDisplay.attachBitmap(art, 1);
artDisplay._width = width;
artDisplay._height = height;
}
function loadNext():Void {
if (!loadedAll) {
var num:Number = current-1;
if (infostruc[current-1].loaded) {
var num:Number = current-Math.floor(distance/2)-1>=0 ? current-Math.floor(distance/2)-1 : 0;
while (infostruc[num].loaded && num<infostruc.length) {
num++;
}
if (num>=infostruc.length) {
var num:Number = current-1;
while (infostruc[num].loaded && num>0) {
num--;
}
if (num<=0) {
loadedAll = true;
}
}
}
var newLoad:MovieClip = this.createEmptyMovieClip("artLoad"+num, this.getNextHighestDepth());
newLoad.createEmptyMovieClip("art", newLoad.getNextHighestDepth());
newLoad._alpha = 0;
var mc:Object = {};
mc.number = num;
var artLoader:MovieClipLoader = new MovieClipLoader();
artLoader.addListener(mc);
artLoader.loadClip(infostruc[num].httpType+infostruc[num].art, newLoad.art);
mc.onLoadError = function() {
infostruc[this.number].loaded = true;
loadNext();
};
mc.onLoadInit = function(target:MovieClip) {
target._parent._width = frontCDWidth;
target._parent._height = frontCDHeight;
root["_bmd"+this.number] = new BitmapData(target._width, target._height);
root["_ref"+this.number] = new BitmapData(target._width, target._height);
root["_bmd"+this.number].draw(target);
var mc:MovieClip = target._parent.createEmptyMovieClip("gradient_mc", target._parent.getNextHighestDepth());
matrix = new Matrix();
matrix.createGradientBox(target._width, target._height, reflectionRotation/180*Math.PI, 0, 0);
mc.beginGradientFill(reflectionFillType, reflectionColors, reflectionAlphas, reflectionRatios, matrix, reflectionSpreadMethod, reflectionInterpolationMethod, reflectionFocalPointRatio);
mc.moveTo(0, 0);
mc.lineTo(0, target._height);
mc.lineTo(target._width, target._height);
mc.lineTo(target._width, 0);
mc.lineTo(0, 0);
mc.endFill();
target._alpha = reflectionAlpha;
target._parent.beginFill(reflectionBackgroundColour);
target._parent.moveTo(0, 0);
target._parent.lineTo(0, target._height);
target._parent.lineTo(target._width, target._height);
target._parent.lineTo(target._width, 0);
target._parent.lineTo(0, 0);
target._parent.endFill();
root["_ref"+this.number].draw(target._parent);
infostruc[this.number].loaded = true;
target._parent.removeMovieClip();
updateInfo();
loadNext();
};
}
}
xmlData.onLoad = function(success:Boolean):Void {
if (success) {
for (var i:Number = -1; this.childNodes[0].childNodes[++i]; ) {
var cNode:XMLNode = this.childNodes[0].childNodes[i].childNodes;
var val1:String = cNode[1].childNodes[0].nodeValue ? unescape(cNode[1].childNodes[0].nodeValue) : unknownSong;
var val2:String = cNode[2].childNodes[0].nodeValue ? unescape(cNode[2].childNodes[0].nodeValue) : unknownArtist;
var val3:String = cNode[3].childNodes[0].nodeValue ? unescape(cNode[3].childNodes[0].nodeValue) : unknownAlbum;
var val4:String = cNode[4].childNodes[0].nodeValue ? unescape(cNode[4].childNodes[0].nodeValue) : "./";
var val5:String = cNode[5].childNodes[0].nodeValue ? unescape(cNode[5].childNodes[0].nodeValue) : unkownUrl;
infostruc.push({art:cNode[0].childNodes[0].nodeValue, info:val1, auth:val2, album:val3, httpType:val4, artUrl:val5, loaded:false});
}
loadStat = "";
init();
} else {
loadStat = "There was an error loading that data, sorry.";
}
};
xmlData.ignoreWhite = true;
xmlData.load("./XML/albuminfo.xml");
this.createEmptyMovieClip("loader", this.getNextHighestDepth());
loader._visible = false;
scrollBar.scroller._y = 0;
stop();
---------------------------------------------------------------------------------------------------
|
|