import com.greensock.*;
import com.greensock.easing.*;
//die Verknüpften Klassen in der Bibliothek///////////////////////////////////////
var mainBTNClass:String = "mainBtnClass";
var subBTNClass:String = "subBtnClass";
//Arrays zu speichern der Werte aus der XML///////////////////////////////////////
var mainArray:Array = [];
var subArray:Array = [];
var linkArray:Array = [];
//Arrays zum speicher der Buttons/////////////////////////////////////////////////
var mainBtnArray:Array = [];
var subBtnArray:Array = [];
//Array zum temporären speichern des geladenen Contents///////////////////////////
var childArray:Array = [];
//Variablen für die Ordner der png, jpg und swf's/////////////////////////////////
var swfFiles:String = "./swf_files/";
var pictureFiles:String = "./picture/";
//Variable zum temporären speichern der MovieClips innerhalb der swf//////////////
var innerMc:MovieClip;
//x&y position des Menues/////////////////////////////////////////////////////////
var menueXPos:int = 170;
var menueYPos:int = 20;
//Variable zum speicher der Buttonhöhe und breite/////////////////////////////////
var mainWidth:Number;
var mainHeight:Number;
//Variable zum übergeben der ID des MainButtons an die SubButton//////////////////
var baseID:int;
//Variable zum "RollOver/RollOut abschalten bei klick auf die SubButtons//////////
var pull_it:Boolean = false;
//die im swf eingebundenen MovieClips unsichtbar schalten/////////////////////////
movieclip1_mc.visible = movieclip2_mc.visible = false;
//das erstellen der MainButton//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function init_mainMenue () {
for (var j:int =0; j<mainArray.length; j++) {
var mainClass:Class = getDefinitionByName(mainBTNClass) as Class;
var mainInst:MovieClip = new mainClass();
mainWidth = mainInst.width;
mainHeight = mainInst.height;
mainBtnArray[j] = addChild(mainInst) as MovieClip;
mainBtnArray[j].test_txt.text = mainArray[j];
mainBtnArray[j].x = menueXPos+(mainWidth*j);
mainBtnArray[j].y = menueYPos;
mainBtnArray[j].ID = j;
mainBtnArray[j].buttonMode = true;
mainBtnArray[j].addEventListener (MouseEvent.ROLL_OVER, pull_down);
mainBtnArray[j].addEventListener (MouseEvent.ROLL_OUT, pull_up);
function pull_down (e:Event):void {
if (pull_it == false) {
baseID = e.target.ID;
for (var i:int =0; i<subBtnArray[e.target.ID].length; i++) {
TweenMax.to (subBtnArray[e.target.ID][i], 0.5, {y:subBtnArray[e.target.ID][i].endY, ease:Circ.easeOut});
}
}
}
function pull_up (e:Event):void {
if (pull_it == false) {
for (var i:int =0; i<subBtnArray[e.target.ID].length; i++) {
TweenMax.to (subBtnArray[e.target.ID][i], 0.3, {y:0, ease:Circ.easeIn});
}
}
}
}
init_subMenue ();
}
//das erstellen der SubButton//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function init_subMenue () {
for (var j:int = 0; j<subArray.length; j++) {
subBtnArray[j] = [];
for (var i:int =0; i<subArray[j].length; i++) {
var subClass:Class = getDefinitionByName(subBTNClass) as Class;
var subInst:MovieClip = new subClass();
subBtnArray[j][i] = mainBtnArray[j].addChild(subInst);
subBtnArray[j][i].sub_ID = i;
subBtnArray[j][i].x = subBtnArray[j][i].y = 0;
subBtnArray[j][i].endY = mainHeight+(mainHeight*i);
subBtnArray[j][i].test_txt.text = subArray[j][i];
subBtnArray[j][i].buttonMode = true;
subBtnArray[j][i].mouseChildren = false;
subBtnArray[j][i].addEventListener (MouseEvent.CLICK, init_file);
function init_file (e:Event):void {
pull_it = true;
for (var i:int =0; i<subBtnArray[baseID].length; i++) {
TweenMax.to (subBtnArray[baseID][i], 0.3, {y:0, ease:Circ.easeIn, onComplete:switchPull});
}
function switchPull () {
pull_it = false;
}
init_content (linkArray[baseID][e.target.sub_ID]);
}
mainBtnArray[j].setChildIndex (mainBtnArray[j].getChildAt(mainBtnArray[j].getChildIndex(subBtnArray[j][i])), 0);
}
}
}
//der Check um was für eine Art Content es sich handelt/////////////////////////////////////////////////////////////////////////////////////////////////////
function init_content (cont_str:String) {
if (innerMc != null && cont_str.search("http") != 0) {
innerMc.visible = false;
}
if (cont_str.search("http") == 0) {
navigateToURL (new URLRequest(cont_str),"_blank");
}
if (cont_str.search(".swf") == cont_str.length - 4) {
load_content (swfFiles, cont_str);
}
if ((cont_str.search(".png") == cont_str.length-4) ||(cont_str.search(".jpg") == cont_str.length-4)) {
load_content (pictureFiles, cont_str);
}
if (cont_str.search("_mc") == cont_str.length - 3) {
remove ();
innerMc = MovieClip(root)[cont_str];
innerMc.visible = true;
}
}
//löscht den eingeladenen Content///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function remove () {
if (childArray[0] != undefined) {
removeChild (childArray[0]);
childArray = [];
}
}
//der Content-Loader (nicht für html zuständig!!!///////////////////////////////////////////////////////////////////////////////////////////////////////////
function load_content (folder:String, cont_load:String) {
var laden:Loader = new Loader();
laden.load (new URLRequest(folder+cont_load));
laden.contentLoaderInfo.addEventListener (Event.INIT, init_funk);
laden.contentLoaderInfo.addEventListener (Event.COMPLETE, complete_funk);
function init_funk (evt_i:Event):void {
remove ();
childArray[0] = addChild(laden);
setChildIndex (laden,0);
}
function complete_funk (evt_c:Event):void {
laden.visible = true;
}
}
//der XML-Loader der die Array's befüllt////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var xml_loader:URLLoader = new URLLoader();
xml_loader.load (new URLRequest("./xml_daten/navifile.xml"));
xml_loader.addEventListener (Event.COMPLETE, parseXML);
function parseXML (e:Event):void {
var xml_Doc:XML = new XML(e.target.data);
xml_Doc.ignoreWhitespace = true;
for (var i:uint = 0; i<xml_Doc.base_btn.length(); i++) {
subArray[i] = [];
linkArray[i] = [];
mainArray[i] = xml_Doc.base_btn[i]. @ id;
for (var j:uint = 0; j<xml_Doc.base_btn[i].sub_btn.length(); j++) {
subArray[i][j] = xml_Doc.base_btn[i].sub_btn[j]. @ namen;
linkArray[i][j] = xml_Doc.base_btn[i].sub_btn[j]. @ link;
}
}
init_mainMenue ();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////