Frame 1
if (nocredit) {
credit._visible = false;
} else {
credit.onPress = function () {
getURL ("http://www.krazydad.com/blog/2006/04/23/visual-harmony/");
};
}
nbrPoints = 48;
cycleLength = 180;
speed = nbrPoints / cycleLength;
width = Stage.width;
height = Stage.height;
cx = width / 2;
cy = height / 2;
crad = (width / 2) * 0.95;
kRadiansToDegrees = 57.2957795130823;
kDegreesToRadians = (Math.PI/180);
drawCircle = function (mc, radius) {
var r = radius;
var n = 8;
var theta = (45 * kDegreesToRadians);
var cr = (radius / Math.cos(theta / 2));
var _local3 = 0;
var _local2 = (-theta) / 2;
mc.moveTo(x + r, y);
var _local1 = 0;
while (_local1 < n) {
_local3 = _local3 + theta;
_local2 = _local2 + theta;
var endX = (r * Math.cos(_local3));
var endY = (r * Math.sin(_local3));
var cX = (cr * Math.cos(_local2));
var cY = (cr * Math.sin(_local2));
mc.curveTo(cX, cY, endX, endY);
_local1++;
}
};
getColor = function (ratio) {
var _local1 = (Math.PI*2) * ratio;
var _local3 = 128 + (Math.cos(_local1) * 127);
var g = (128 + (Math.cos(_local1 + 2.0943951023932) * 127));
var _local2 = 128 + (Math.cos(_local1 + 4.18879020478639) * 127);
return(((_local3 << 16) | (g << 8)) | _local2);
};
var i = 0;
while (i < nbrPoints) {
var mc = _root.createEmptyMovieClip("mc" + i, 100 + i);
var r = (i / nbrPoints);
var len = (((i + 1) * cRad) / nbrPoints);
var rad = Math.max(2, r * 8);
mc._x = cx;
mc._y = cy;
mc.len = len;
mc.createEmptyMovieClip("dot", 1);
mc.dot._x = len;
mc.dot._y = 0;
mc.dot.clear();
mc.dot.beginFill(getColor(r), 100);
drawCircle(mc.dot, rad);
mc.dot.endFill();
mc.createEmptyMovieClip("outline", 2);
mc.outline.clear();
mc.outline._x = len;
mc.outline._y = 0;
mc.outline.beginFill(getColor(r) | 15790320, 100);
drawCircle(mc.outline, rad + 1);
mc.outline.endFill();
i++;
}
startTime = getTimer() * 0.001;
_root.onEnterFrame = function () {
var elapsed = ((getTimer() * 0.001) - startTime);
if (elapsed >= cycleLength) {
startTime = startTime + cycleLength;
}
var t = ((elapsed * speed) * 360);
var ti = (t / nbrPoints);
var _local2 = 0;
while (_local2 < nbrPoints) {
var _local1 = _root["mc" + _local2];
var at = t;
_local1._rotation = at;
t = t - ti;
var _local3 = at / 360;
_local3 = _local3 - int(_local3);
if (_local3 < 0.1) {
if (_local1.outline._visible == false) {
_local1.outline._visible = true;
_local1.outline._alpha = 100;
} else {
_local1.outline._alpha = _local1.outline._alpha * 0.95;
}
} else {
_local1.outline._visible = false;
}
_local2++;
}
};
_root.clear();
_root.lineStyle(0.5, 5592405, 100);
_root.moveTo(cx, cy);
_root.lineTo(width, cy);