Difference between revisions of "Logo.as"
From Organic Design wiki
m |
m |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{legacy}} | ||
+ | <source lang="js"> | ||
// This is the script which compiles the logo with dynamic changes behind it | // This is the script which compiles the logo with dynamic changes behind it | ||
// - compiles [[[[Logo_Test|here]]]] | // - compiles [[[[Logo_Test|here]]]] | ||
Line 30: | Line 32: | ||
id0 = id; | id0 = id; | ||
} | } | ||
− | + | time = row.shift(); | |
− | + | author = row.shift(); | |
− | + | title = row.shift(); | |
− | + | textcol = row.shift(); | |
− | + | comment = row.join(','); | |
− | + | if (comment != '') title = comment; | |
− | changes[i] = '<font size="9" face="arial, helvetica" color="'+textcol + | + | changes[i] = '<font size="9" face="arial, helvetica" color="'+textcol+'">'+time+': (<u><font color="#217A28">'+author+'</font></u>) '; |
− | changes[i] += '</font><font face="arial" size="10"> </font><br>'; | + | changes[i] += title+'</font><font face="arial" size="10"> </font><br>'; |
} | } | ||
rc.htmlText = changes.join(''); | rc.htmlText = changes.join(''); | ||
Line 76: | Line 78: | ||
} | } | ||
else { | else { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
// Logo in background (specified for inclusion in XML properties article) | // Logo in background (specified for inclusion in XML properties article) | ||
Line 133: | Line 106: | ||
} | } | ||
+ | </source> |
Latest revision as of 13:17, 6 August 2024
// This is the script which compiles the logo with dynamic changes behind it
// - compiles [[[[Logo_Test|here]]]]
// - the info it renders is obtained from [[[[Special:Recentchanges]]]] and is generated by [[[[transform-changes.php]]]]
#include "box-model.as"
// Constants
background = parseInt(background,16);
bg_r = (background & 0xff0000)>>16;
bg_g = (background & 0x00ff00)>>8;
bg_b = (background & 0x0000ff);
fw = 20; // width of fades
id0 = 1;
changes = [];
change = false;
offset = -200;
stripes = (width >= 200);
lineHeight = height/nchanges; // NOTE: don't use rects for stripes, use multiples positioned textboxes
// Set up async connection with server
server = new LoadVars();
recv = new LoadVars();
server.title = 'Special:Recentchanges'; // wiki page to request
recv.onLoad = function(success) {
if (success) {
for (i = 0; i<nchanges; i++) {
row = recv['item'+i].split(',');
id = row.shift();
if ( ( i == 0 ) && ( id != id0 ) ) {
if ( id0 ) offset = -20;
id0 = id;
}
time = row.shift();
author = row.shift();
title = row.shift();
textcol = row.shift();
comment = row.join(',');
if (comment != '') title = comment;
changes[i] = '<font size="9" face="arial, helvetica" color="'+textcol+'">'+time+': (<u><font color="#217A28">'+author+'</font></u>) ';
changes[i] += title+'</font><font face="arial" size="10"> </font><br>';
}
rc.htmlText = changes.join('');
// Get info if any returned
if (recv.user) _root.user = recv.user;
}
};
// Textbox for changes-text
createTextField('rc', 1, 3, 0, width, height);
with (rc) {
autosize = 'left';
selectable = false;
_quality = 'BEST';
border = false;
multiline = true;
wordWrap = false;
html = true;
}
if (stripes) {
// Striped background
createEmptyMovieClip('bg',0);
for (i = 0; i<nchanges; i++) {
createSymbol(bg,'rect','bg'+i,i);
var bgi = bg['bg'+i];
col = new Color(bgi);
col.setTransform({rb:0xd4,gb:0xd4,bb:0xd4});
bgi._width = width;
bgi._height = lineHeight;
bgi._x = 0;
bgi._y = i*lineHeight;
if (i%2) bgi._visible = false;
}
bg._x = width/2;
bg._width = width;
bg._height = height;
}
else {
// Logo in background (specified for inclusion in XML properties article)
attachMovie('xmlwiki','bg',0);
with (bg) {
_xscale = _yscale = 75;
_x = (width-_width)/2;
_y = (height-_height)/2;
_alpha = 0;
}
}
// Per-frame function
function reduce() {
// Scrolling
if ( offset < 0 ) offset++;
rc._y = offset;
if (stripes) bg._y = offset+500;
// Make request on some regular cycle which seems about right
// todo: move to socket.onData
if ( ++_root.ctr%400 == 1 ) {
server.SWF = id0;
server.INFO = 1; // request info if user unknown
server.sendAndLoad( '/wiki/index.php', recv, 'GET' );
}
}