Difference between revisions of "Logo.as"
From Organic Design wiki
(Changed to yi text (and changed to more +ve hex ;-)) |
m |
||
| (201 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | {{legacy}} | |
| − | + | <source lang="js"> | |
| − | + | // 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" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | // Textbox | + | // Constants |
| − | createTextField( 'rc', 1, | + | background = parseInt(background,16); |
| − | with ( rc ) { | + | 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; | selectable = false; | ||
_quality = 'BEST'; | _quality = 'BEST'; | ||
| Line 21: | Line 57: | ||
wordWrap = false; | wordWrap = false; | ||
html = true; | html = true; | ||
| − | |||
} | } | ||
| − | // Logo | + | |
| − | attachMovie( ' | + | 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' ); | ||
| + | } | ||
| + | |||
| + | } | ||
| + | </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' );
}
}



