Код AS3:
import caurina.transitions.Tweener;
subspace = 18;
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
if (success) {
readXmlData();
}
};
this.createEmptyMovieClip("allMenus",1);
myXML.load(xml=_root.xmlFile ? _root.xmlFile : "galleries/menu.xml");
function readXmlData() {
l = myXML.childNodes.length-1;
_global.abouttitle = myXML.childNodes[l].childNodes[0].attributes.title;
_global.abouttext = myXML.childNodes[l].childNodes[0].firstChild.nodeValue
_global.adminmail = myXML.childNodes[l].childNodes[1].attributes.mail;
_global.contacttitle = myXML.childNodes[l].childNodes[1].attributes.title;
_global.contacttext = myXML.childNodes[l].childNodes[1].firstChild.nodeValue
target = myXML.childNodes[l].attributes.target;
collapse = myXML.childNodes[l].attributes.collapse;
maincolor = myXML.childNodes[l].attributes.maincolor;
subcolout = myXML.childNodes[l].attributes.subcolorout;
subcolover = myXML.childNodes[l].attributes.subcolorover;
menu = new Array(l);
for (i=0; i<l; i++) {
menu[i] = myXML.childNodes[i].attributes.name;
addNewMenu();
if (i == l-1) {
loadFirst();
}
}
}
function loadFirst() {
allMenus["menu"+0].menu_txt.textColor = subcolover;
mid = allMenus["menu"+0].id;
sl = myXML.childNodes[mid].childNodes.length;
for (j=0; j<sl; j++) {
allMenus["menu"+0].subs.attachMovie("subMenuItem","sub"+j,j,{_y:0, id:j, pid:mid});
Tweener.addTween(allMenus["menu"+0].subs["sub"+j],{time:.3, transition:"easeOutCirc", _y:(j+1)*subspace});
allMenus["menu"+0].subs["sub"+j].menu_txt.autoSize = true;
allMenus["menu"+0].subs["sub"+j].menu_txt.text = myXML.childNodes[mid].childNodes[j].attributes.name;
allMenus["menu"+0].subs["sub"+j].bg_mc._width = allMenus["menu"+0].subs["sub"+j].menu_txt._width;
allMenus["menu"+0].subs["sub"+j].onRelease = subrelease;
allMenus["menu"+0].subs["sub"+j].onRollOver = subover;
allMenus["menu"+0].subs["sub"+j].onRollOut = subout;
allMenus["menu"+0].subs["sub"+j].menu_txt.textColor = subcolout;
}
allMenus["menu"+0].released = true;
if (sl == 0) {
loadGallery(myXML.childNodes[mid].attributes.url);
} else {
allMenus["menu"+0].subs["sub"+0].menu_txt.textColor = subcolover;
allMenus["menu"+0].subs["sub"+0].rect_mc.gotoAndPlay("in");
allMenus["menu"+0].subs["sub"+0].bg_mc.gotoAndPlay("in");
loadGallery(myXML.childNodes[0].childNodes[0].attributes.url);
}
previd = mid;
prevmenu = allMenus["menu"+0].bg_mc;
prevsub = allMenus["menu"+0].subs["sub"+0];
prevmenu.enabled = false;
prevsub.enabled = false;
}
function addNewMenu() {
allMenus.attachMovie("menuItem","menu"+i,i,{_y:i*31, id:i});
allMenus["menu"+i].menu_txt.autoSize = true;
allMenus["menu"+i].menu_txt.text = menu[i];
allMenus["menu"+i].menu_txt.textColor = maincolor;
allMenus["menu"+i].bg_mc._width = allMenus["menu"+i].menu_txt._width;
allMenus["menu"+i].bg_mc.onRelease = menuRelease;
allMenus["menu"+i].bg_mc.onRollOver = mainOver;
allMenus["menu"+i].bg_mc.onRollOut = mainOut;
}
function menuRelease() {
removeInfo();
prevmenu._parent.menu_txt.textColor = maincolor;
prevmenu.enabled = true;
if (collapse == "true") {
this.enabled = false;
prevmenu.enabled = true;
hl = myXML.childNodes[previd].childNodes.length;
for (h=0; h<hl; h++) {
Tweener.addTween(prevmenu._parent.subs["sub"+h],{time:.3, transition:"easeOutCirc", _y:0, _alpha:0});
}
prevmenu.released = false;
}
mid = this._parent.id;
sl = myXML.childNodes[mid].childNodes.length;
if (this.released != true && sl>0) {
for (i=0; i<sl; i++) {
this._parent.subs.attachMovie("subMenuItem","sub"+i,i,{_y:0, id:i, pid:mid});
Tweener.addTween(this._parent.subs["sub"+i],{time:.3, transition:"easeOutCirc", _y:(i+1)*subspace});
this._parent.subs["sub"+i].menu_txt.autoSize = true;
this._parent.subs["sub"+i].menu_txt.text = myXML.childNodes[mid].childNodes[i].attributes.name;
this._parent.subs["sub"+i].bg_mc._width = this._parent.subs["sub"+i].menu_txt._width;
this._parent.subs["sub"+i].onRelease = subrelease;
this._parent.subs["sub"+i].onRollOver = subover;
this._parent.subs["sub"+i].onRollOut = subout;
this._parent.subs["sub"+i].menu_txt.textColor = subcolout;
}
this.released = true;
} else if (this.released == true) {
for (j=0; j<sl; j++) {
Tweener.addTween(this._parent.subs["sub"+j],{time:.3, transition:"easeOutCirc", _y:0, _alpha:0});
this._parent.subs["sub"+j].enabled = false;
}
this.released = false;
}
if (sl == 0) {
fadeOutElements();
prevmenu.enabled = true;
prevsub.enabled = true;
prevsub.rect_mc.gotoAndStop("in");
prevsub.menu_txt.textColor = subcolout;
this.enabled = false;
loadGallery(myXML.childNodes[mid].attributes.url);
}
previd = mid;
prevmenu = this;
}
function subrelease() {
removeInfo();
fadeOutElements();
if (collapse != "true") {
prevmenu.enabled = true;
prevmenu._parent.menu_txt.textColor = maincolor;
}
prevsub.rect_mc.gotoAndPlay("out");
prevsub.menu_txt.textColor = subcolout;
prevsub.enabled = true;
this.enabled = false;
prevsub = this;
sid = this.id;
msid = this.pid;
surl = myXML.childNodes[msid].childNodes[sid].attributes.url;
loadGallery(surl);
}
function fadeOutElements() {
_root.nav_mc._visible = false;
Tweener.addTween(_root.big_mc,{_x:Stage.width, time:.7, onComplete:moveBig});
Tweener.addTween(_root.title_mc,{_y:Stage.height, time:.7});
}
function moveBig() {
_root.big_mc._x = 0-_root.big_mc._width;
}
function subover() {
this.menu_txt.textColor = subcolover;
this.rect_mc.gotoAndPlay("in");
this.bg_mc.gotoAndPlay("in");
}
function subout() {
this.menu_txt.textColor = subcolout;
this.rect_mc.gotoAndPlay("out");
this.bg_mc.gotoAndPlay("out");
}
function mainOver() {
this._parent.menu_txt.textColor = subcolover;
}
function mainOut() {
this._parent.menu_txt.textColor = maincolor;
}