home *** CD-ROM | disk | FTP | other *** search
- <html>
- <head>
- <title>The Show</title>
- <script language="JavaScript">
- <!-- begin script
- //******************************************************
- // Chapter 16 - Visual Effects
- // Functions/Objects
- //******************************************************
- var hexchars = '0123456789ABCDEF';
- function fromHex (str) {
- var high = str.charAt(0); // Note: Netscape 2.0 bug workaround
- var low = str.charAt(1);
- return (16 * hexchars.indexOf(high)) +
- hexchars.indexOf(low);
- }
- function toHex (num) {
- return hexchars.charAt(num >> 4) + hexchars.charAt(num & 0xF);
- }
- function Color (str) {
- this.red = fromHex(str.substring(0,2));
- this.green = fromHex(str.substring(2,4));
- this.blue = fromHex(str.substring(4,6));
- this.toString = ColorString;
- return this;
- }
- function ColorString () {
- return toHex(this.red) + toHex(this.green) + toHex(this.blue);
- }
- function BodyColor (bgColor,fgColor,linkColor,vlinkColor,alinkColor) {
- this.bgColor = bgColor;
- this.fgColor = fgColor;
- this.linkColor = linkColor;
- this.vlinkColor = vlinkColor;
- this.alinkColor = alinkColor;
- this.toString = BodyColorString;
- return this;
- }
- function BodyColorString () {
- return '<body' +
- ((this.bgColor == null) ? '' : ' bgcolor="#' + this.bgColor + '"') +
- ((this.fgColor == null) ? '' : ' text="#' + this.fgColor + '"') +
- ((this.linkColor == null) ? '' : ' link="#' + this.linkColor + '"') +
- ((this.vlinkColor == null) ? '' : ' vlink="#' + this.vlinkColor + '"') +
- ((this.alinkColor == null) ? '' : ' alink="#' + this.alinkColor + '"') +
- '>';
- }
- function IntColor (start, end, step, steps) {
- this.red = Math.round(start.red+(((end.red-start.red)/(steps-1))*step));
- this.green = Math.round(start.green+(((end.green-start.green)/(steps-1))*step));
- this.blue = Math.round(start.blue+(((end.blue-start.blue)/(steps-1))*step));
- this.toString = ColorString;
- return this;
- }
- function Alternator (bodyA, bodyB, text) {
- this.bodyA = bodyA;
- this.bodyB = bodyB;
- this.currentBody = "A";
- this.text = text;
- this.toString = AlternatorString;
- return this;
- }
- function AlternatorString () {
- var str = "<html>";
- with (this) {
- if (currentBody == "A") {
- str += bodyA;
- currentBody = "B";
- }
- else {
- str += bodyB;
- currentBody = "A";
- }
- str += text + '</body></html>';
- }
- return str;
- }
- function Fader (bodyA, bodyB, steps, text) {
- this.bodyA = bodyA;
- this.bodyB = bodyB;
- this.step = 0;
- this.steps = steps;
- this.text = text;
- this.toString = FaderString;
- return this;
- }
- function FaderString () {
- var intBody = new BodyColor();
- with (this) {
- if (bodyA.bgColor != null && bodyB.bgColor != null)
- intBody.bgColor = new IntColor (bodyA.bgColor, bodyB.bgColor, step, steps);
- if (bodyA.fgColor != null && bodyB.fgColor != null)
- intBody.fgColor = new IntColor (bodyA.fgColor, bodyB.fgColor, step, steps);
- if (bodyA.linkColor != null && bodyB.linkColor != null)
- intBody.linkColor = new IntColor (bodyA.linkColor, bodyB.linkColor, step, steps);
- if (bodyA.vlinkColor != null && bodyB.vlinkColor != null)
- intBody.vlinkColor = new IntColor (bodyA.vlinkColor, bodyB.vlinkColor, step, steps);
- if (bodyA.alinkColor != null && bodyB.alinkColor != null)
- intBody.alinkColor = new IntColor (bodyA.alinkColor, bodyB.alinkColor, step, steps);
- step++;
- if (step >= steps)
- step = 0;
- }
- return '<html>' + intBody + this.text + '</body></html>';
- }
- function Static (body, text) {
- this.body = body;
- this.text = text;
- this.toString = StaticString;
- return this;
- }
- function StaticString () {
- return '<html>' + this.body + this.text + '</body></html>';
- }
- function Text (text, size, format, color) {
- this.text = text;
- this.length = text.length;
- this.size = size;
- this.format = format;
- this.color = color;
- this.toString = TextString;
- this.substring = TextString;
- return this;
- }
- function TextString (start, end) {
- with (this) {
- if (TextString.arguments.length < 2 || start >= length) start = 0;
- if (TextString.arguments.length < 2 || end > length) end = length;
- var str = text.substring(start,end);
- if (format != null) {
- if (format.indexOf("b") >= 0) str = str.bold();
- if (format.indexOf("i") >= 0) str = str.italics();
- if (format.indexOf("f") >= 0) str = str.fixed();
- }
- if (size != null) str = str.fontsize(size);
- if (color != null) {
- var colorstr = color.toString(); // Note: Netscape 2.0 bug workaround
- str = str.fontcolor(colorstr);
- }
- }
- return str;
- }
- function Block () {
- var argv = Block.arguments;
- var argc = argv.length;
- var len = 0;
- for (var i = 0; i < argc; i++) {
- len += argv[i].length;
- this[i] = argv[i];
- }
- this.length = len;
- this.entries = argc;
- this.toString = BlockString;
- this.substring = BlockString;
- return this;
- }
- function BlockString (start, end) {
- with (this) {
- if (BlockString.arguments.length < 2 || start >= length) start = 0;
- if (BlockString.arguments.length < 2 || end > length) end = length;
- }
- var str = "";
- var segstart = 0;
- var segend = 0;
- for (var i = 0; i < this.entries; i++) {
- segend = segstart + this[i].length;
- if (segend > start)
- str += this[i].substring(Math.max(start,segstart)-segstart, Math.min(end,segend)-segstart);
- segstart += this[i].length;
- if (segstart >= end)
- break;
- }
- return str;
- }
- function Marquee (body, text, maxlength, step) {
- this.body = body;
- this.text = text;
- this.length = text.length;
- this.maxlength = maxlength;
- this.step = step;
- this.offset = 0;
- this.toString = MarqueeString;
- return this;
- }
- function MarqueeString () {
- with (this) {
- var endstr = offset + maxlength;
- var remstr = 0;
- if (endstr > text.length) {
- remstr = endstr - text.length;
- endstr = text.length;
- }
- var str = nbsp(text.substring(offset,endstr) +
- ((remstr == 0) ? "" : text.substring(0,remstr)));
- offset += step;
- if (offset >= text.length)
- offset = 0;
- else if (offset < 0)
- offset = text.length - 1;
- }
- return '<html>' + this.body + '<table border=0 width=100% height=100%><tr>' +
- '<td align="center" valign="center">' + str + '</td></tr></table></body></html>';
- }
- function nbsp (strin) {
- var strout = "";
- var intag = false;
- var len = strin.length;
- for(var i=0, j=0; i < len; i++) {
- var ch = strin.charAt(i);
- if (ch == "<")
- intag = true;
- else if (ch == ">")
- intag = false;
- else if (ch == " " && !intag) {
- strout += strin.substring(j,i) + " ";
- j = i + 1;
- }
- }
- return strout + strin.substring(j,len);
- }
- function Image (url, width, height) {
- this.url = url;
- this.width = width;
- this.height = height;
- return this;
- }
- function Animator (name, body) {
- var argv = Animator.arguments;
- var argc = argv.length;
- for (var i = 2; i < argc; i++)
- this[i-2] = argv[i];
- this.name = name;
- this.body = body;
- this.images = argc - 2;
- this.image = 0;
- this.ready = "y";
- this.toString = AnimatorString;
- return this;
- }
- function AnimatorString () {
- var bodystr = this.body.toString();
- var bodystr = bodystr.substring(0, bodystr.length - 1) +
- ' onLoad="parent.' + this.name + '.ready=\'y\'">';
- var str = '<html>' + bodystr +
- '<table border=0 width=100% height=100%><tr><td align="center" valign="center">' +
- '<img src="' + this[this.image].url + '" width=' + this[this.image].width +
- ' height=' + this[this.image].height + '></td></table></body></html>';
- this.image++;
- if (this.image >= this.images)
- this.image = 0;
- this.ready = "n";
- return str;
- }
- function Event (start, loops, delay, action) {
- this.start = start * 1000;
- this.next = this.start;
- this.loops = loops;
- this.loopsRemaining = loops;
- this.delay = delay * 1000;
- this.action = action;
- return this;
- }
- function EventQueue (name, delay, loopAfter, loops, stopAfter) {
- this.active = true;
- this.name = name;
- this.delay = delay * 1000;
- this.loopAfter = loopAfter * 1000;
- this.loops = loops;
- this.loopsRemaining = loops;
- this.stopAfter = stopAfter * 1000;
- this.event = new Object();
- this.start = new Date ();
- this.loopStart = new Date();
- this.eventID = 0;
- this.addEvent = AddEvent;
- this.processEvents = ProcessEvents;
- this.startQueue = StartQueue;
- this.stopQueue = StopQueue;
- return this;
- }
- function AddEvent (event) {
- this.event[this.eventID++] = event;
- }
- function StartQueue () {
- with (this) {
- active = true;
- start = new Date();
- loopStart = new Date();
- loopsRemaining = loops;
- setTimeout (name + ".processEvents()", this.delay);
- }
- }
- function StopQueue () {
- this.active = false;
- }
- function ProcessEvents () {
- with (this) {
- if (!active) return;
- var now = new Date();
- if (now.getTime() - start.getTime() >= stopAfter) {
- active = false;
- return;
- }
- var elapsed = now.getTime() - loopStart.getTime();
- if (elapsed >= loopAfter) {
- if (--loopsRemaining <= 0) {
- active = false;
- return;
- }
- loopStart = new Date();
- elapsed = now.getTime() - loopStart.getTime();
- for (var i in event)
- if (event[i] != null) {
- event[i].next = event[i].start;
- event[i].loopsRemaining = event[i].loops;
- }
- }
- for (var i in event)
- if (event[i] != null)
- if (event[i].next <= elapsed)
- if (event[i].loopsRemaining-- > 0) {
- event[i].next = elapsed + event[i].delay;
- eval (event[i].action);
- }
- setTimeout (this.name + ".processEvents()", this.delay);
- }
- }
- function xbmDrawPoint (x,y) {
- if (x < 0 || x >= this.pixelWidth ||
- y < 0 || y >= this.height)
- return;
- this.row[y].col[x>>4] |= 1<<(x&0xF);
- this.row[y].redraw = true;
- }
- function xbmDrawLine (x1,y1,x2,y2) {
- var x,y,e,temp;
- var dx = Math.abs(x1-x2);
- var dy = Math.abs(y1-y2);
- if ((dx >= dy && x1 > x2) || (dy > dx && y1 > y2)) {
- temp = x2;
- x2 = x1;
- x1 = temp;
- temp = y2;
- y2 = y1;
- y1 = temp;
- }
- if (dx >= dy) {
- e = (y2-y1)/((dx == 0) ? 1 : dx);
- for (x = x1, y = y1; x <= x2; x++, y += e)
- this.drawPoint(x,Math.round(y));
- }
- else {
- e = (x2-x1)/dy;
- for (y = y1, x = x1; y <= y2; y++, x += e)
- this.drawPoint(Math.round(x),y);
- }
- }
- function xbmDrawRect (x1,y1,x2,y2) {
- this.drawLine (x1,y1,x2,y1);
- this.drawLine (x1,y1,x1,y2);
- this.drawLine (x1,y2,x2,y2);
- this.drawLine (x2,y1,x2,y2);
- }
- function xbmDrawFilledRect (x1,y1,x2,y2) {
- var x,temp;
- if (x1 > x2) {
- temp = x2;
- x2 = x1;
- x1 = temp;
- temp = y2;
- y2 = y1;
- y1 = temp;
- }
- for (x = x1; x <= x2; x++)
- this.drawLine(x,y1,x,y2);
- }
- function xbmDrawCircle (x,y,radius) {
- for (var a=0, b=1; a < b; a++) {
- b = Math.round(Math.sqrt(Math.pow(radius,2)-Math.pow(a,2)));
- this.drawPoint(x+a,y+b);
- this.drawPoint(x+a,y-b);
- this.drawPoint(x-a,y+b);
- this.drawPoint(x-a,y-b);
- this.drawPoint(x+b,y+a);
- this.drawPoint(x+b,y-a);
- this.drawPoint(x-b,y+a);
- this.drawPoint(x-b,y-a);
- }
- }
- function xbmDrawFilledCircle (x,y,radius) {
- for (var a=0, b=1; a < b; a++) {
- b = Math.round(Math.sqrt(Math.pow(radius,2)-Math.pow(a,2)));
- this.drawLine(x+a,y+b,x+a,y-b);
- this.drawLine(x-a,y+b,x-a,y-b);
- this.drawLine(x+b,y+a,x+b,y-a);
- this.drawLine(x-b,y+a,x-b,y-a);
- }
- }
- function xbmReverse () {
- this.negative = !this.negative;
- for (var i = 0; i < this.height; i++)
- this.row[i].redraw = true;
- }
- function xbmClear (value) {
- if (value == null)
- value = this.initialValue;
- for (var i = 0; i < this.height; i++) {
- this.row[i].redraw = true;
- for (var j = 0; j < this.width; j++)
- this.row[i].col[j] = value;
- }
- }
- function xbmRowString () {
- if (this.redraw) {
- this.redraw = false;
- this.text = "";
- for (var i = 0; i < this.parent.width; i++) {
- var pixels = this.col[i];
- if (this.parent.negative)
- pixels ^= 0xFFFF;
- var buf = "0x" + hexchars.charAt((pixels>>4)&0xF) +
- hexchars.charAt(pixels&0xF) + ",0x" +
- hexchars.charAt((pixels>>12)&0xF) +
- hexchars.charAt((pixels>>8)&0xF) + ",";
- this.text += buf;
- }
- }
- return this.text;
- }
- function xbmPartitionString (left,right) {
- if (left == right) {
- var str = this.row[left].toString();
- if (left == 0)
- str = this.head + str;
- else if (left == this.height - 1)
- str += "};\n";
- return str;
- }
- var mid = (left+right)>>1;
- return this.partition(left,mid) + this.partition(mid+1,right);
- }
- function xbmString () {
- return this.partition(0,this.height - 1);
- }
- function xbmRow (parent, columns, initialValue) {
- this.redraw = true;
- this.text = null;
- this.parent = parent;
- this.col = new Object();
- for (var i = 0; i < columns; i++)
- this.col[i] = initialValue;
- this.toString = xbmRowString;
- return this;
- }
- function xbmImage (width, height, initialValue) {
- this.width = (width+15)>>4;
- this.pixelWidth = this.width<<4;
- this.height = height;
- this.head = "#define xbm_width " + (this.pixelWidth) +
- "\n#define xbm_height " + this.height +
- "\nstatic char xbm_bits[] = {\n";
- this.initialValue = ((initialValue == null) ? 0 : initialValue);
- this.negative = false;
- this.row = new Object();
- for (var i = 0; i < height; i++)
- this.row[i] = new xbmRow(this, this.width, this.initialValue);
- this.drawPoint = xbmDrawPoint;
- this.drawLine = xbmDrawLine;
- this.drawRect = xbmDrawRect;
- this.drawFilledRect = xbmDrawFilledRect;
- this.drawCircle = xbmDrawCircle;
- this.drawFilledCircle = xbmDrawFilledCircle;
- this.reverse = xbmReverse;
- this.clear = xbmClear;
- this.partition = xbmPartitionString;
- this.toString = xbmString;
- return this;
- }
- //******************************************************
- // The Show
- //******************************************************
-
- var black = new Color ("000000");
- var white = new Color ("FFFFFF");
- var red = new Color ("FF0000");
- var green = new Color ("00FF00");
- var blue = new Color ("0000FF");
- var yellow = new Color ("FFFF00");
- var cyan = new Color ("00FFFF");
- var magenta = new Color ("FF00FF");
- var pink = new Color ("FF80A0");
- var orange = new Color ("FF5010");
-
- var blackOnBlack = new BodyColor (black,black);
- var blackOnWhite = new BodyColor (white,black);
- var whiteOnWhite = new BodyColor (white,white);
- var whiteOnBlack = new BodyColor (black,white);
- var redOnWhite = new BodyColor (white,red);
- var whiteOnRed = new BodyColor (red,white);
- var blueOnWhite = new BodyColor (white,blue);
- var redOnYellow = new BodyColor (yellow,red);
- var yellowOnRed = new BodyColor (red,yellow);
- var pinkOnGreen = new BodyColor (green,pink);
- var greenOnPink = new BodyColor (pink,green);
- var orangeOnWhite = new BodyColor (white,orange);
- var whiteOnOrange = new BodyColor (orange,white);
- var blueOnYellow = new BodyColor (yellow,blue);
- var yellowOnBlue = new BodyColor (blue,yellow);
- var blueOnBlack = new BodyColor (black,blue);
- var yellowOnBlack = new BodyColor (black,yellow);
- var blueOnRed = new BodyColor (red,blue);
- var orangeOnGreen = new BodyColor (green,orange);
-
- var blackout = new Static (blackOnBlack, "");
- var whiteout = new Static (whiteOnWhite, "");
-
- var square1 = new xbmImage (48,48);
- square1.drawRect (23,23,24,24);
- square1.drawRect (19,19,28,28);
- square1.drawRect (15,15,32,32);
- square1.drawRect (11,11,36,36);
- square1.drawRect (7,7,40,40);
- square1.drawRect (3,3,44,44);
- var sq1str = square1.toString();
-
- var square2 = new xbmImage (48,48);
- square2.drawRect (22,22,25,25);
- square2.drawRect (18,18,29,29);
- square2.drawRect (14,14,33,33);
- square2.drawRect (10,10,37,37);
- square2.drawRect (6,6,41,41);
- square2.drawRect (2,2,45,45);
- var sq2str = square2.toString();
-
- var square3 = new xbmImage (48,48);
- square3.drawRect (21,21,26,26);
- square3.drawRect (17,17,30,30);
- square3.drawRect (13,13,34,34);
- square3.drawRect (9,9,38,38);
- square3.drawRect (5,5,42,42);
- square3.drawRect (1,1,46,46);
- var sq3str = square3.toString();
-
- var square4 = new xbmImage (48,48);
- square4.drawRect (20,20,27,27);
- square4.drawRect (16,16,31,31);
- square4.drawRect (12,12,35,35);
- square4.drawRect (8,8,39,39);
- square4.drawRect (4,4,43,43);
- square4.drawRect (0,0,47,47);
- var sq4str = square4.toString();
-
- var circle1 = new xbmImage (48,48);
- circle1.drawCircle (23,23,1);
- circle1.drawCircle (23,23,7);
- circle1.drawCircle (23,23,13);
- circle1.drawCircle (23,23,19);
- circle1.drawCircle (23,23,25);
- var cir1str = circle1.toString();
-
- var circle2 = new xbmImage (48,48);
- circle2.drawCircle (23,23,2.5);
- circle2.drawCircle (23,23,8.5);
- circle2.drawCircle (23,23,14.5);
- circle2.drawCircle (23,23,20.5);
- circle2.drawCircle (23,23,26.5);
- var cir2str = circle2.toString();
-
- var circle3 = new xbmImage (48,48);
- circle3.drawCircle (23,23,4);
- circle3.drawCircle (23,23,10);
- circle3.drawCircle (23,23,16);
- circle3.drawCircle (23,23,22);
- var cir3str = circle3.toString();
-
- var circle4 = new xbmImage (48,48);
- circle4.drawCircle (23,23,5.5);
- circle4.drawCircle (23,23,11.5);
- circle4.drawCircle (23,23,17.5);
- circle4.drawCircle (23,23,23.5);
- var cir4str = circle4.toString();
-
- var sqanim = new Animator ("sqanim", blueOnYellow,
- new Image ("javascript:parent.sq1str",48,48),
- new Image ("javascript:parent.sq2str",48,48),
- new Image ("javascript:parent.sq3str",48,48),
- new Image ("javascript:parent.sq4str",48,48)
- );
-
- var ciranim = new Animator ("ciranim", blueOnYellow,
- new Image ("javascript:parent.cir1str",48,48),
- new Image ("javascript:parent.cir2str",48,48),
- new Image ("javascript:parent.cir3str",48,48),
- new Image ("javascript:parent.cir4str",48,48)
- );
-
- var evq = new EventQueue ("evq", .05, 200, 3, 600);
-
- // Object to hold a list of objects
- var objlist = new Object();
- var obj = 0;
-
- // Function to use table to center vertically/horizontally
- function center (text) {
- return '<table width=100% height=100% border=0 cellpadding=0 cellspacing=0>' +
- '<tr><td align="center" valign="center">' + text + '</td></tr></table>';
- }
-
- // Function to create a bunch of objects/events
- function makeList (frame, start, loops, delay, object) {
- var argv = makeList.arguments;
- var argc = argv.length;
- if (argc % 5 != 0) {
- alert ("Invalid number of arguments")
- return;
- }
- for (var i = 0; i < argc; i += 5, obj++) {
- objlist[obj] = argv[i+4];
- evq.addEvent (new Event(argv[i+1], argv[i+2], argv[i+3],
- ((objlist[obj].ready == null) ? '' : ('if (' + objlist[obj].name + '.ready=="y")')) +
- 'self.f' + argv[i] + '.location = "javascript:parent.objlist[' + obj + ']"'));
- }
- }
-
- // Note: maximum args to a function appears to be 255,
- // so makeList is called twice.
-
- // the countdown
- makeList (
- 5, 0, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("10","7","b"))),
- 5, 3, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("10","7","b"))),
- 0, 2, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("9","7","b"))),
- 0, 5, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("9","7","b"))),
- 8, 4, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("8","7","b"))),
- 8, 7, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("8","7","b"))),
- 2, 6, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("7","7","b"))),
- 2, 9, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("7","7","b"))),
- 3, 8, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("6","7","b"))),
- 3, 11, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("6","7","b"))),
- 7, 10, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("5","7","b"))),
- 7, 13, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("5","7","b"))),
- 1, 12, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("4","7","b"))),
- 1, 15, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("4","7","b"))),
- 6, 14, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("3","7","b"))),
- 6, 17, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("3","7","b"))),
- 9, 16, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("2","7","b"))),
- 9, 19, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("2","7","b"))),
- 4, 18, 8, .1, new Fader(whiteOnWhite, redOnWhite, 8, center(new Text("1","7","b"))),
- 4, 21, 8, .1, new Fader(redOnWhite, whiteOnWhite, 8, center(new Text("1","7","b"))),
- // all frames to black
- 0, 24, 1, .1, blackout,
- 1, 24, 1, .1, blackout,
- 2, 24, 1, .1, blackout,
- 3, 24, 1, .1, blackout,
- 4, 24, 1, .1, blackout,
- 5, 24, 1, .1, blackout,
- 6, 24, 1, .1, blackout,
- 7, 24, 1, .1, blackout,
- 8, 24, 1, .1, blackout,
- 9, 24, 1, .1, blackout,
- // Welcome to the show
- 0, 26, 10, .1, new Alternator(yellowOnRed,redOnYellow,center(new Text("Welcome","7","b"))),
- 3, 28, 10, .1, new Alternator(pinkOnGreen,greenOnPink,center(new Text("to","7","bf"))),
- 4, 30, 10, .1, new Alternator(whiteOnOrange,orangeOnWhite,center(new Text("The","6","bi"))),
- 7, 32, 10, .1, new Alternator(orangeOnWhite,whiteOnOrange,center(new Text("Show","7","bi"))),
- 0, 34, 1, .1, blackout,
- 3, 34, 1, .1, blackout,
- // Ladies and Gentlemen...
- 1, 34.2, 300, .2, new Marquee(blueOnBlack,
- new Text(" Ladies and Gentlemen, Welcome to the Visual Effects Show! ","7","bf"),15,2),
- 2, 34.2, 300, .2, new Marquee(yellowOnBlack,
- new Text(" Ladies and Gentlemen, Welcome to the Visual Effects Show! ","7","bf"),15,-2),
- // Animated circles and squares
- 4, 40, 1, .1, blackout,
- 7, 40, 1, .1, blackout,
- 5, 40, 500, .1, sqanim,
- 9, 40, 500, .1, ciranim
- );
- // All the World's Your Stage (alternating Alternators!)
- makeList (
- 0, 40, 60, 2, new Alternator(yellowOnBlue,yellowOnBlue,center(new Text("All","7","b"))),
- 0, 41, 60, 2, new Alternator(blueOnYellow,blueOnYellow,center(new Text("The","7","b"))),
- 3, 40.5, 60, 2, new Alternator(redOnWhite,redOnWhite,center(new Text("The","7","b"))),
- 3, 41.5, 60, 2, new Alternator(whiteOnRed,whiteOnRed,center(new Text("World\'s","7","b"))),
- 6, 41, 60, 2, new Alternator(pinkOnGreen,pinkOnGreen,center(new Text("World\'s","7","b"))),
- 6, 42, 60, 2, new Alternator(greenOnPink,greenOnPink,center(new Text("Your","7","b"))),
- 8, 41.5, 60, 2, new Alternator(blackOnWhite,blackOnWhite,center(new Text("Your","7","b"))),
- 8, 42.5, 60, 2, new Alternator(whiteOnBlack,whiteOnBlack,center(new Text("Stage","7","b"))),
- // Visual Effects
- 4, 43.3, 300, .2, new Fader(orangeOnWhite,yellowOnRed,32,center(new Text("Visual","7","b"))),
- 7, 43.6, 300, .2, new Fader(blueOnRed,orangeOnGreen,32,center(new Text("Effects","7","b"))),
- // All black, then all white
- 0, 190, 1, .1, blackout,
- 1, 190, 1, .1, blackout,
- 2, 190, 1, .1, blackout,
- 3, 190, 1, .1, blackout,
- 4, 190, 1, .1, blackout,
- 5, 190, 1, .1, blackout,
- 6, 190, 1, .1, blackout,
- 7, 190, 1, .1, blackout,
- 8, 190, 1, .1, blackout,
- 9, 190, 1, .1, blackout,
- 0, 198, 1, .1, whiteout,
- 1, 198, 1, .1, whiteout,
- 2, 198, 1, .1, whiteout,
- 3, 198, 1, .1, whiteout,
- 4, 198, 1, .1, whiteout,
- 5, 198, 1, .1, whiteout,
- 6, 198, 1, .1, whiteout,
- 7, 198, 1, .1, whiteout,
- 8, 198, 1, .1, whiteout,
- 9, 198, 1, .1, whiteout
- );
- function initialize() {
- evq.startQueue();
- }
- var emptyFrame = '<html><body bgcolor="#FFFFFF"></body></html>';
- // end script -->
- </script>
- <frameset rows="*,*,*,*,*" onLoad="initialize()">
- <frameset cols="3*,2*">
- <frame name="f0" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- <frame name="f1" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- </frameset>
- <frameset cols="2*,3*">
- <frame name="f2" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- <frame name="f3" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- </frameset>
- <frameset cols="3*,2*">
- <frame name="f4" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- <frame name="f5" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- </frameset>
- <frameset cols="2*,3*">
- <frame name="f6" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- <frame name="f7" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- </frameset>
- <frameset cols="3*,2*">
- <frame name="f8" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- <frame name="f9" src="javascript:parent.emptyFrame" scrolling="no" noresize
- marginwidth=1 marginheight=1>
- </frameset>
- </frameset>
- <noframes>
- <h1 align="center">Sorry, JavaScript-enabled browser required</h1>
- </noframes>