Blackwizzard.com v3 :: source complete

Description

Voici la source du site BlackWizzard.com(.net/.org/.tk).
C'est la version 3.0, elle est simple et complexe en meme temps, selon votre nivo.
si vous gerez les proto et le XML, alors la source va vous paraitre simple, sinon, il n'est jamais trop tard pour commencer!

Le code est clair, centralisé et orienté objet.

Source / Exemple :


xml_main_file = "main.xml";
document_root = "";
//
// declaration xml
xml_main = new XML();
xml_news = new XML();
xml_news_content = new XML();
xml_server = new XML();
xml_page = new XML();
xml_menu = new XML();

//
// ignorewhite = true
xml_main.ignoreWhite = true;
xml_news.ignoreWhite = true;
xml_news_content.ignoreWhite = true;
xml_server.ignoreWhite = true;
xml_page.ignoreWhite = true;
xml_menu.ignoreWhite = true;

//
// arrays pour les news
tbl_news_titre = new Array();
tbl_news_texte = new Array();
tbl_news_img_src = new Array();
tbl_news_img_title = new Array();
tbl_news_link_a = new Array();
tbl_news_link_text = new Array();
//
// arrays pour les menus
tbl_server_picture = new Array();
tbl_server_text = new Array();
tbl_server_href = new Array();
tbl_page_picture = new Array();
tbl_page_text = new Array();
tbl_page_href = new Array();
//
//
initial_panel_y = _root.menu_server._y;
show("page");
//
_root.onEnterFrame = function() {
	objToScroll.scrolling(_root.news_scrollValue);
	_root.move_menuItem();
};
_root.onKeyUp = function() {
	_root.news_scrollValue = 0;
};
//*************************************** PARSING MAIN ******************************************
// load xml_main
xml_main.load(xml_main_file);
xml_main.onLoad = function(success) {
	xml_main_base = xml_main.childNodes[0];
	//
	// definition des fichier a charger
	xml_news_file = xml_main_base.childNodes[0].attributes.file;
	xml_server_file = xml_main_base.childNodes[1].attributes.file;
	xml_page_file = xml_main_base.childNodes[2].attributes.file;
	xml_menu_file = xml_main_base.childNodes[3].attributes.file;
	
	//
	// chargement des news
	xml_news.load(xml_news_file);
	xml_news.onLoad = function(success) {
		xml_news.readNews();
	};
	xml_server.load(xml_server_file);
	xml_server.onLoad = function(success) {
		xml_server.readserver();
	};
	xml_page.load(xml_page_file);
	xml_page.onLoad = function(success) {
		xml_page.readpage();
	};
	xml_menu.load(xml_menu_file);
	xml_menu.onLoad = function(success) {
		xml_menu.readmenu();
	};
	
};
//*************************************** PARSING NEWS ******************************************
// Parsing News
xml.prototype.readNews = function() {
	xml_news_base = xml_news.childNodes[0];
	news_i0 = 0;
	while (xml_news_base.childNodes[news_i0] != null) {
		xml_news_node = xml_news_base.childNodes[news_i0];
		tbl_news_titre[news_i0] = xml_news_node.childNodes[0].childNodes[0].nodeValue;
		tbl_news_texte[news_i0] = xml_news_node.childNodes[1].childNodes[0].nodeValue;
		tbl_news_img_src[news_i0] = xml_news_node.childNodes[2].attributes.src;
		tbl_news_img_title[news_i0] = xml_news_node.childNodes[2].attributes.title;
		tbl_news_link_a[news_i0] = xml_news_node.childNodes[3].attributes.href;
		tbl_news_link_text[news_i0] = xml_news_node.childNodes[3].childNodes[0].nodeValue;
//pas de news dans cette version...a venir, mais les fonctions sont là!
		news_i0++;
	}
};
//
// Creating News
movieclip.prototype.createNews = function(index, titre, texte, img_src, img_title, url_href, url_text) {
	texte = texte.replace("[br]", "<br>");
	this.news.duplicateMovieClip("panel_news"+index, index);
	if (this["panel_news"+(index-1)] != null) {
		this["panel_news"+index]._y = this["panel_news"+(index-1)]._y+150;
	}
	this["panel_news"+index].txt.htmlText = "<font color='#ffcc00'><font size='12'>"+titre+"</font></font><br>"+texte;
	if (img_pic.length>=1) {
		this["panel_news"+index].pic.loadMovie(img_src);
	}
	this["panel_news"+index].href = url_href;
	this["panel_news"+index]._alpha = 100;
};
//
// Loading news file (by asfunction)
function loadNewsXML(file) {
	xml_news_content.load(file);
	xml_news_content.onLoad = function(success) {
		var_news_content_titre = xml_news_content.childNodes[0].childNodes[0].childNodes[0].nodeValue;
		var_news_content_texte = xml_news_content.childNodes[0].childNodes[1].childNodes[0].nodeValue;
		var_news_content_picture = xml_news_content.childNodes[0].childNodes[2].attributes.src;
		_root.panel_news2.createNewsItem(var_news_content_titre, var_news_content_texte, var_news_content_picture);
		show("panel_news2");
	};
}
//
// Creating News-file item
movieclip.prototype.createNewsItem = function(titre, texte, picture) {
	texte = texte.replace("[br]", "<br>");
	with (this.texte) {
		background = true;
		backgroundColor = 0x333333;
		border = true;
		borderColor = 0x505050;
		autoSize = "left";
		wordWrap = true;
		htmlText = "<font color='#ffcc00' size='12'>"+titre+"</font><br><br>"+texte;
	}
	this._alpha = 100;
};
//*************************************** PARSING server *****************************************
// Parsing server
xml.prototype.readserver = function() {
	xml_server_base = xml_server.childNodes[0];
	server_i0 = 0;
	while (xml_server_base.childNodes[server_i0] != null) {
		xml_server_node = xml_server_base.childNodes[server_i0];
		tbl_server_text[server_i0] = xml_server_node.attributes.text;
		tbl_server_href[server_i0] = xml_server_node.attributes.href;
		_root.menu_server.createListItem(server_i0, tbl_server_text[server_i0], tbl_server_href[server_i0]);
		_root.menu_server.listTitle.text = "Owned Servers";
		server_i0++;
	}
};
//*************************************** PARSING page *****************************************
// Parsing page
xml.prototype.readpage = function() {
	xml_page_base = xml_page.childNodes[0];
	page_i0 = 0;
	while (xml_page_base.childNodes[page_i0] != null) {
		xml_page_node = xml_page_base.childNodes[page_i0];
		tbl_page_text[page_i0] = xml_page_node.attributes.text;
		tbl_page_href[page_i0] = xml_page_node.attributes.href;
		_root.menu_page.createListItem(page_i0, xml_page_node.attributes.text, xml_page_node.attributes.href,xml_page_node.attributes.cost, xml_page_node.attributes.society, xml_page_node.attributes.dev_id,xml_page_node.childNodes[0].childNodes[0].nodeValue);
		_root.menu_page.listTitle.text = "Owned or realised Pages";
		page_i0++;
	}
};
//*************************************** PARSING menu *****************************************
// Parsing menu
xml.prototype.readmenu = function() {
	xml_menu_base = xml_menu.childNodes[0];
	menu_i0 = 0;
	while (xml_menu_base.childNodes[menu_i0] != null) {
		xml_menu_node = xml_menu_base.childNodes[menu_i0];
		_root.menu.createMenuItem(menu_i0, xml_menu_node.attributes.text, xml_menu_node.attributes.href);
		menu_i0++;
	}
};
//*************************************** CREATELISTITEM *****************************************
//
movieclip.prototype.createListItem = function(index, texte, href, cost, society, auth_id, desc) {
	texte = texte.replace("[br]", "<br>");
	this.item.duplicateMovieClip("item"+index, index);
	itemback = this["item"+(index-1)]._y;
	if (itemback == null) {
		itemback = -17;
	}
	this["item"+index]._y = itemback+17;
	this["item"+index].href = href;
	this["item"+index].txt.text = texte;
	this["item"+index].cost = cost;
	this["item"+index].society = society;
	this["item"+index].auth_id = auth_id;
	this["item"+index].desc = desc;
	this["item"+index].texte = texte;
	this["item"+index]._alpha = 100;
};
//*************************************** CREATEMENUITEM *****************************************
//
movieclip.prototype.createMenuItem = function(index, texte, href) {
	texte = texte.replace("[br]", "<br>");
	this.item.duplicateMovieClip("item"+index, index);
	itemback = this["item"+(index-1)]._x;
	if (itemback == null) {
		itemback = this["item"]._x-17;
		itemback._y = 2.2;
		itemback._alpha=0;
	}
	this["item"+index]._x = itemback+17;
	this["item"+index]._y = 12.2;
	this["item"+index].href = href;
	this["item"+index].desc = texte;
	this["item"+index]._alpha = 100;
	return texte;
};
//*************************************** UTILITIES ********************************************
// Utilities
//
// Replace function
String.prototype.replace = function(str, rep, chr) {
	var t = (chr<0) ? this.substr(chr) : this.substr(0, chr);
	var s = str.length;
	var r = rep.length;
	var p = t.indexOf(str);
	while (p != -1) {
		t = t.substr(0, p)+rep+t.substr(p+s);
		p = t.indexOf(str, p+r);
	}
	return (chr) ? (chr<0) ? this.substr(0, this.length+chr)+t : t+this.substr(chr) : t;
};
movieclip.prototype.scrolling = function(value) {
	scrollStep = 3;
	this._y += scrollStep*value;
};
function hideAll() {
	_root.menu_page._visible = 0;
	_root.menu_server._visible = 0;
	_root.site_desc._visible = 0;
}
function show(panel) {
	_root.hideAll();
	switch (panel) {
	case "news" :
		_root.panel_news._visible = 1;
		objToScroll = _root.panel_news;
		break;
	case "server" :
		_root.menu_server._visible = 1;
		objToScroll = _root.menu_server;
		break;
	case "page" :
		_root.menu_page._visible = 1;
		_root.site_desc._visible = 1;
		objToScroll = _root.menu_page;
		break;
	}
	objToScroll._y = initial_panel_y;
}
function contact() {
	getURL("mailto:postmaster@blackwizzard.com");
}

Conclusion :


pas de bugs connus...
amusez vous.

le logo possede un copyright donc utilisation publique et reproduction interdite!

Le code, lui, est libre.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.