Frame 1
url = new String(_root._url);
trace((url + " ") + url.indexOf("grapefrukt.com"));
if (url.indexOf("grapefrukt.com") == -1) {
_root.gotoAndStop(3);
}
Frame 2
function addSegment(newtype, newsize, newrotspeed, newx, newy) {
clearDraw();
trace("adding segment");
segmentcount++;
if (newtype == "rotator") {
depthcheat = 1;
} else {
depthcheat = -1;
}
container.attachMovie("segment", "segment" + segmentcount, 10000 + (segmentcount * depthcheat), {_x:newx, _y:newy, size:newsize, type:newtype, rotspeed:newrotspeed, rota:0});
segments.push(container["segment" + segmentcount]);
_root.export();
}
function removeSegment() {
clearDraw();
if (segments.length > 3) {
segments[segments.length - 1].removeMovieClip();
segments.pop();
}
_root.export();
}
function clearDraw() {
_root.container.drawing.removeMovieClip();
}
function startDraw() {
with (_root) {
container.drawing.removeMovieClip();
container.createEmptyMovieClip("drawing", 2);
container.drawing.lineStyle(2, 65280, 100);
container.drawing.moveTo(((-Math.sin(((-segments[segments.length - 1]._rotation) * Math.PI) / 180)) * segments[segments.length - 1].size) + segments[segments.length - 1]._x, ((-Math.cos(((-segments[segments.length - 1]._rotation) * Math.PI) / 180)) * segments[segments.length - 1].size) + segments[segments.length - 1]._y);
go = true;
}
}
function stopDraw() {
with (_root) {
i = 0;
while (i < segments.length) {
segments[i + 1]._rotation = 0;
segments[i + 1].rota = 0;
i++;
}
drawing._alpha = 50;
go = false;
}
}
function export() {
with (_root) {
exportstr = new String();
with (_root) {
i = 1;
while (i < segments.length) {
exportstr = exportstr + (((segments[i].rotspeed + ":") + segments[i + 1].size) + ":");
i = i + 2;
}
exportstr = exportstr.slice(0, exportstr.length - 1);
trace(exportstr);
}
}
}
function randomize(count) {
while (segments.length > 3) {
removeSegment();
}
segments[1].rotspeed = Math.round((Math.random() * 60) - 30) / 10;
trace(segments[1].rotspeed);
segments[1].update();
segments[2].size = (Math.round(Math.random() * 4) * 10) + 40;
trace(segments[2].size);
segments[2].update();
while ((segments.length - 1) < (count * 2)) {
addSegment("rotator", 0, Math.round((Math.random() * 60) - 30) / 10);
addSegment("extender", (Math.round(Math.random() * 4) * 10) + 40, 0);
}
}
function doImport() {
with (_root) {
importarr = new Array();
importarr = exportstr.split(":");
proper = true;
if ((importarr.length / 2) != Math.round(importarr.length / 2)) {
proper = false;
}
i = 0;
while (i < importarr.length) {
if (Number(importarr[i]) != importarr[i]) {
proper = false;
}
if (Number(importarr[i + 1]) != importarr[i + 1]) {
proper = false;
}
importarr[i] = Number(importarr[i]);
importarr[i + 1] = Number(importarr[i + 1]);
if ((importarr[i] > 3) || (importarr[i] < -3)) {
proper = false;
}
if ((importarr[i + 1] < 40) || (importarr[1] > 80)) {
proper = false;
}
i = i + 2;
}
trace("is proper: " + proper);
if (proper) {
while (segments.length > 3) {
removeSegment();
}
segments[1].rotspeed = importarr[0];
segments[1].update();
segments[2].size = importarr[1];
segments[2].update();
j = 2;
while (j < importarr.length) {
trace(j);
addSegment("rotator", 0, importarr[j], 250, 250);
addSegment("extender", importarr[j + 1], 0, 250, 250);
j = j + 2;
}
} else {
exportstr = "bad format!";
}
}
}
fscommand ("allowscale", false);
fscommand ("showmenu", false);
url = new String(_root._url);
trace((url + " ") + url.indexOf("grapefrukt.com"));
if (url.indexOf("grapefrukt.com") == -1) {
_root.gotoAndStop(3);
}
segments = new Array();
segmentcount = 1;
go = false;
zoom = 100;
speed = 300;
stopLoop = true;
_root.createEmptyMovieClip("container", _root.getNextHighestDepth());
container._x = 250;
container._y = 250;
this.onEnterFrame = function () {
this.done = 0;
i = 0;
while (i < segments.length) {
if (segments[i].type == "rotator") {
if (go) {
segments[i].rota = segments[i].rota + ((segments[i].rotspeed * _root.speed) / 100);
if (stopLoop) {
if ((segments[i].rotspeed == 0) || (Math.abs(segments[i].rota % 360) < Math.abs((segments[i].rotspeed * _root.speed) / 100))) {
this.done++;
}
}
}
}
segments[i]._rotation = segments[i - 1]._rotation + segments[i].rota;
segments[i + 1]._x = ((-Math.sin(((-segments[i]._rotation) * Math.PI) / 180)) * segments[i].size) + segments[i]._x;
segments[i + 1]._y = ((-Math.cos(((-segments[i]._rotation) * Math.PI) / 180)) * segments[i].size) + segments[i]._y;
i++;
}
if (go) {
container.drawing.lineTo(((-Math.sin(((-segments[segments.length - 1]._rotation) * Math.PI) / 180)) * segments[segments.length - 1].size) + segments[segments.length - 1]._x, ((-Math.cos(((-segments[segments.length - 1]._rotation) * Math.PI) / 180)) * segments[segments.length - 1].size) + segments[segments.length - 1]._y);
if (this.done >= ((segments.length - 1) / 2)) {
_root.stopDraw();
playbutton.gotoAndStop(1);
}
}
container._xscale = zoom;
container._yscale = zoom;
};
addSegment("anchor", 0, 0, 0, 0);
addSegment("rotator", 0, 1);
addSegment("extender", 50, 0);
help._visible = false;
inputfield.onChanged = function (textfield_txt) {
_root.doImport();
};
stop();
Instance of Symbol 28 MovieClip in Frame 2
on (press) {
if (_root.help._visible == true) {
_root.help._visible = false;
} else {
_root.help._visible = true;
}
}
Instance of Symbol 28 MovieClip in Frame 2
on (press) {
_parent.removeSegment();
_parent.removeSegment();
}
Instance of Symbol 28 MovieClip in Frame 2
on (press) {
_parent.addSegment("rotator", 0, _root.segments[_root.segments.length - 2].rotspeed, 250, 250);
_parent.addSegment("extender", 50, 0);
_root.dump();
}
Instance of Symbol 58 MovieClip in Frame 2
onClipEvent (load) {
var ydrag = 0;
var val = 3000;
var dispval = 300;
var orgval = 100;
var offset = 0;
var range_min = 10;
var range_max = 30000;
var granularity = 10;
var speed = 0.5;
gotoAndStop(Math.round((((val - range_min) / (range_max - range_min)) * 40) + 1));
stop();
}
on (press) {
ydrag = _root._ymouse;
orgval = val;
this.onEnterFrame = function () {
offset = Math.round(((ydrag - _root._ymouse) / speed) * granularity) / granularity;
val = val + offset;
if (val < range_min) {
val = range_min;
}
if (val > range_max) {
val = range_max;
}
gotoAndStop(Math.round((((val - range_min) / (range_max - range_min)) * 40) + 1));
trace(val + newline);
dispval = Math.round(val / 10);
};
}
on (release, releaseOutside) {
_parent.ydrag = 0;
_parent.speed = dispval;
trace("speed set to: " + _parent.speed);
_root.export();
delete this.onEnterFrame;
}
Instance of Symbol 62 MovieClip "playbutton" in Frame 2
on (press) {
if (_root.go) {
_root.stopDraw();
_parent.stopLoop = 1;
gotoAndStop (1);
} else {
_root.startDraw();
gotoAndStop (2);
if (Key.isDown(16)) {
_parent.stopLoop = 0;
gotoAndStop (3);
}
}
}
Instance of Symbol 58 MovieClip in Frame 2
onClipEvent (load) {
var ydrag = 0;
var val = 1000;
var dispval = 100;
var orgval = 100;
var offset = 0;
var range_min = 10;
var range_max = 2000;
var granularity = 10;
var speed = 0.5;
gotoAndStop(Math.round((((val - range_min) / (range_max - range_min)) * 40) + 1));
stop();
}
on (press) {
ydrag = _root._ymouse;
orgval = val;
this.onEnterFrame = function () {
offset = Math.round(((ydrag - _root._ymouse) / speed) * granularity) / granularity;
val = val + offset;
if (val < range_min) {
val = range_min;
}
if (val > range_max) {
val = range_max;
}
gotoAndStop(Math.round((((val - range_min) / (range_max - range_min)) * 40) + 1));
trace(val + newline);
dispval = Math.round(val / 10);
_parent.zoom = dispval;
};
}
on (release, releaseOutside) {
_parent.ydrag = 0;
_parent.zoom = dispval;
trace("zoom set to: " + _parent.zoom);
delete this.onEnterFrame;
}
Instance of Symbol 28 MovieClip in Frame 2
on (press) {
_root.randomize(3);
}
Instance of Symbol 25 MovieClip [fps_meter] in Frame 2
//component parameters
onClipEvent (construct) {
component = true;
}
Symbol 1 MovieClip [blur] Frame 1
var myBitmapData = (new flash.display.BitmapData(500, 500, true, 0));
var mc = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData, this.getNextHighestDepth());
var filter = (new flash.filters.BlurFilter(2, 2, 1));
mc.onEnterFrame = function () {
var _local2 = new flash.geom.Matrix();
_local2.translate(_root.container._x, _root.container._y);
myBitmapData.draw(_root.container.drawing, _local2);
myBitmapData.applyFilter(myBitmapData, myBitmapData.rectangle, new flash.geom.Point(0, 0), filter);
};
stop();
Symbol 22 MovieClip [segment] Frame 1
switch (type) {
case "stick" :
gotoAndStop (2);
break;
case "rotator" :
gotoAndStop (3);
break;
case "extender" :
gotoAndStop (4);
break;
case "mover" :
gotoAndStop (5);
break;
case "anchor" :
gotoAndStop (6);
break;
default :
gotoAndStop (2);
}
stop();
Symbol 22 MovieClip [segment] Frame 2
extender._yscale = size;
Symbol 22 MovieClip [segment] Frame 3
function update() {
if (rotspeed == undefined) {
widget.val = 10;
} else {
widget.val = rotspeed * 10;
}
trace("updating rotator with value: " + rotspeed);
widget.dispval = Math.round(widget.val) / 10;
widget.gotoAndStop(Math.round((((widget.val - widget.range_min) / (widget.range_max - widget.range_min)) * 40) + 1));
}
stop();
Instance of Symbol 15 MovieClip "widget" in Symbol 22 MovieClip [segment] Frame 3
onClipEvent (load) {
var val = 0;
var dispval = 0;
var ydrag = 0;
var orgval = val;
var offset = 0;
_parent.update();
var range_min = -30;
var range_max = 30;
var granularity = 10;
var speed = 200;
gotoAndStop(Math.round((((val - range_min) / (range_max - range_min)) * 40) + 1));
stop();
}
on (press) {
_root.clearDraw();
ydrag = _root._ymouse;
orgval = val;
this.onEnterFrame = function () {
offset = Math.round(((ydrag - _root._ymouse) / speed) * granularity) / granularity;
val = val + offset;
if (val < range_min) {
val = range_min;
}
if (val > range_max) {
val = range_max;
}
gotoAndStop(Math.round((((val - range_min) / (range_max - range_min)) * 40) + 1));
trace(val + newline);
dispval = Math.round(val) / 10;
};
}
on (release, releaseOutside) {
_parent.ydrag = 0;
_parent.rotspeed = dispval;
_root.export();
delete this.onEnterFrame;
}
Symbol 22 MovieClip [segment] Frame 4
function update() {
if (size < 40) {
size = 40;
}
if (size > 80) {
size = 80;
}
trace(size);
extender._yscale = size;
button._y = (-size) / 2;
button._yscale = size;
}
update();
button._alpha = 0;
Instance of Symbol 17 MovieClip "button" in Symbol 22 MovieClip [segment] Frame 4
on (press) {
_root.clearDraw();
_parent.ydrag = _root._ymouse;
_parent.sizeoffset = 0;
this._alpha = 100;
this.onEnterFrame = function () {
_parent.size = _parent.size - _parent.sizeoffset;
_parent.sizeoffset = Math.round((_parent.ydrag - _root._ymouse) / 10) * 10;
_parent.size = _parent.size + _parent.sizeoffset;
_parent.update();
};
}
on (release, releaseOutside) {
_parent.ydrag = 0;
this._alpha = 0;
_root.export();
delete this.onEnterFrame;
}
Symbol 22 MovieClip [segment] Frame 5
button._alpha = 0;
Instance of Symbol 20 MovieClip "button" in Symbol 22 MovieClip [segment] Frame 5
on (press) {
this._alpha = 100;
_parent.xdrag = _parent._xmouse;
_parent.ydrag = _parent._ymouse;
this.onEnterFrame = function () {
_parent._x = _root._xmouse - _parent.xdrag;
_parent._y = _root._ymouse - _parent.ydrag;
};
}
on (release, releaseOutside) {
this._alpha = 0;
delete this.onEnterFrame;
}
Symbol 25 MovieClip [fps_meter] Frame 1
#initclip 1
FPS = function () {
this.onEnterFrame = function () {
this.fc++;
};
setInterval(this, "calc", 1000);
};
var p = ((FPS.prototype = new MovieClip()));
p.calc = function () {
this.dp.text = this.fc;
this.fc = 0;
};
Object.registerClass("fps_meter", FPS);
#endinitclip
Symbol 62 MovieClip Frame 1
stop();