Frame 1
function pos_init(star) {
star.px = (random(spacelimit) << 1) - spacelimit;
star.py = (random(spacelimit) << 1) - spacelimit;
star.pz = spacelimit;
}
function doscript(beta, alpha, which) {
if (getTimer() > nextaction_t) {
if (beta != actions[nextaction][0]) {
beta = lerp(beta, actions[nextaction][0], 0.025);
}
if (alpha != actions[nextaction][1]) {
alpha = lerp(alpha, actions[nextaction][1], 0.025);
} else if (beta == actions[nextaction][0]) {
nextaction_t = getTimer() + actions[nextaction][2];
nextaction++;
nextaction = nextaction % actions.length;
}
}
return([alpha, beta]);
}
function drawLine(instructions) {
var _local1 = 0;
while (_local1 < instructions.length) {
if ((instructions[_local1] == -1) || (_local1 == 0)) {
if (instructions[_local1] == -1) {
_local1 = _local1 + 1;
}
moveTo(stars[instructions[_local1]]._x, stars[instructions[_local1]]._y);
} else {
lineTo(stars[instructions[_local1]]._x, stars[instructions[_local1]]._y);
}
_local1++;
}
}
function lerp(from, to, speed) {
while (speed > 1E-5) {
if ((from + speed) < to) {
return(from + speed);
}
if ((from - speed) > to) {
return(from - speed);
}
speed = speed / 2;
}
return(to);
}
stop();
_quality = "LOW";
var nstars = 300;
var frameTimer;
var frames = 0;
var spacelimit = 100;
var vel = 3;
var stars = new Array();
var star_mc = _root.createEmptyMovieClip("starmc", 2);
star_mc.setMask(lap.screen);
star_mc._xscale = 62;
star_mc._yscale = 50;
star_mc._x = 106.5;
star_mc._y = 101;
var i = 0;
while (i < nstars) {
stars[i] = star_mc.attachMovie("xstar", "starID" + Math.random(), star_mc.getNextHighestDepth());
pos_init(stars[i]);
stars[i].pz = (random(spacelimit) << 1) - spacelimit;
i++;
}
viewmatrix = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]];
actions = [[-1.5707963267949, 0, 2000], [0, 0, 2000], [Math.PI, (Math.PI/2), 10], [Math.PI, -1.5707963267949, 2000]];
nextaction = 0;
nextaction_t = 0;
alpha = 0;
beta = -1.5707963267949;
_root.onEnterFrame = function () {
var _local14 = Math.cos(alpha);
var _local13 = Math.cos(beta);
var _local16 = Math.sin(alpha);
var _local15 = Math.sin(beta);
var _local8 = {x:{x:_local13, z:_local15}, y:{x:_local15 * _local16, y:_local14, z:(-_local13) * _local16}, z:{x:(-_local15) * _local14, y:_local16, z:_local13 * _local14}};
var _local17 = doscript(beta, alpha);
beta = _local17[1];
alpha = _local17[0];
var _local12 = 0;
var _local1;
var _local11;
var _local10;
var _local5;
var _local7;
var _local9;
var _local6;
var _local3;
var _local2;
var _local4 = 0;
while (_local4 < 300) {
_local1 = stars[_local4];
_local1.pz = _local1.pz - 3;
if (_local1.pz < -103) {
_local1.px = random(200) - 100;
_local1.py = random(200) - 100;
_local1.pz = 100;
}
_local7 = _local1.px;
_local9 = _local1.py;
_local6 = _local1.pz;
_local2 = _local8.z;
_local5 = ((_local7 * _local2.x) + (_local9 * _local2.y)) + (_local6 * _local2.z);
if ((_local5 <= 10) || (_local5 > 200)) {
_local1._visible = false;
} else {
_local2 = _local8.x;
_local11 = (_local7 * _local2.x) + (_local6 * _local2.z);
_local2 = _local8.y;
_local10 = ((_local7 * _local2.x) + (_local9 * _local2.y)) + (_local6 * _local2.z);
_local12++;
_local1._visible = true;
_local3 = 200 / _local5;
_local1._x = 275 + (_local3 * _local11);
_local1._y = 200 + (_local3 * _local10);
_local1._xscale = (_local1._yscale = 12 + (_local3 << 1));
_local1._alpha = _local3 * 20;
}
_local4++;
}
frames++;
if (frames == 20) {
trace((((frames * 1000) / (getTimer() - frameTimer)) + " vs:") + _local12);
frameTimer = getTimer();
frames = 0;
}
};
_root.onEnterFrame();