| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| #no.991 @ MM Registriert seit: Apr 2003 Ort: München
Beiträge: 327
| XML Menu mit Leerplätzen
Hi zusammen, ich hab mal ne Frage. In einem Menu, was per XML gefüllt wird, en Childnode aus designgründen NICHT anzeigen lassen. Mein Script: Code: function menuInit() {
_global.host = 'local';
mXML = new XML();
mXML.ignoreWhite = true;
mXML.onLoad = function(success) {
if (success) {
this.oLocation.onEnterFrame = null;
mXML = this.firstChild;
doArray();
doMenu();
} else {
trace("*** menu.xml loading failed! ***");
}
};
mXML.oLocation = this;
if (_global.host == 'server') {
this.mXML.load('menu.xml?random='+Math.random());
} else if (_global.host == 'local') {
this.mXML.load('menu.xml');
}
}
menuArray = new Array();
eventArray = new Array();
function doArray() {
for (var counter = 0; counter<mXML.childNodes.length; counter++) {
// ausageb fuer text
var nodePath = mXML.childNodes[counter];
arr = [nodePath.firstChild.firstChild.nodeValue];
menuArray.push(arr);
// ausgabe für mEvent
mAktion = nodePath.attributes.mEvent;
eventArray.push(mAktion);
}
}
function doMenu() {
var nodePath = mXML.childNodes[counter];
var nodesCount = mXML.childNodes.length;
// trace("nodesCount: " + nodesCount)
align = bottom;
centerx = Stage.width/2;
centery = Stage.height/2;
menuholder = createEmptyMovieClip("menuholder", -1);
menuholder._y = centery;
// anzahl anhand childNodes
menucount = nodesCount;
menuitems = [];
miwidth = 50;
miborder = 5;
startx = centerx-((menucount-1)*(miwidth+miborder));
itemText.anz.text = "";
itemText._alpha = 0;
itemText.scaleTo(1, 1);
for (var i = 0; i<menucount; i++) {
if (eventArray[i] != "null") {
var menuitem = menuholder.attachMovie('menuitem', "menu"+i, i, _visible:false);
} else {
var menuitem = menuholder.attachMovie('menuitem', "menu"+i, i);
}
// var menuitem = menuholder.attachMovie("menuitem", "menu"+i, i);
menuitem._x = startx+i*(miwidth+miborder);
menuitem.id = i;
menuitem.index = i;
menuitem.onRollOver = function() {
_root.selected = this;
itemText.scaleTo(100, 5);
// ausgabe der entsprechenden arrayinhalte
anzeige = menuArray[this.index].toString();
randomTypo.setText(instanceFake, anzeige, "|", ls1, ls2, ls3, ls4);
itemText.alphaTo(100, 20);
// itemText.slideTo(this._x,this._y, 3, "easeOutSine");
itemText.slideTo(_root._xmouse, _root._ymouse);
this.colorTo(0x990000, 1, "easeOutSine");
this.scaleTo(300, 1);
};
menuitem.onRelease = function() {
trace(eventArray[this.index]);
};
menuitem.onRollOut = function() {
itemText.scaleTo(1, 10);
itemText.alphaTo(0, 6);
itemText.slideTo(centerx, centery, 6, "easeOutSine");
// itemText.anz.text = ""
this.scaleTo(100, 1);
this.colorTo(0xCCCCCC, 1, "easeOutSine");
};
menuitems.push(menuitem);
}
onEnterFrame = function () {
var width = 0;
for (var i = 0; i<menucount; i++) {
var xxm = menuitems[i]._xmouse;
var yym = menuitems[i]._ymouse;
var xm = Math.sqrt(xxm*xxm+yym*yym);
if (xm<50) {
menuitems[i]._xscale = menuitems[i]._yscale += ((200-xm)-menuitems[i]._yscale)/3;
} else {
menuitems[i]._xscale = menuitems[i]._yscale += (100-menuitems[i]._yscale)/3;
}
width += menuitems[i]._width;
}
width += (menucount-1)*miborder;
var xpos = Math.round(centerx-width/2);
for (var i = 0; i<menucount; i++) {
xpos += menuitems[i-1]._width/2+miborder+menuitems[i]._width/2;
menuitems[i]._x = xpos;
}
};
} Code: <?xml version="1.0" encoding="UTF-8"?>
<navigation>
<navElement mEvent="link A">
<mName>erster linktext</mName>
</navElement>
<navElement mEvent="null"/>
<navElement mEvent="link B">
<mName>zweiter linktext</mName>
</navElement>
<navElement mEvent="link C">
<mName>dritter linktext</mName>
</navElement>
</navigation> Wenn das Movie losrennt, werden 4 Kästen erzeugt, die noch Funktionen haben. Ich würde aber gerne den (hier) zweiten Kasten unsichtbar bzw. so inaktiv machen, das dort ein Leerplatz ist. In dem Menuscript bekomme ich vor dem erstellen des Menus die "null" Position raus. Nur wie krieg ich das hin, dass mir die zweite Position als _visible angezeigt wird. Bin echt für jede Hilfe dankbar. Ach ja, später möchte ich es so machen, dass maximal 6 Rechtecke angezeigt werden und die folgenden in eine zweite reihe gestellt werden :-) Gruss, Micha
__________________ Arbeit ist keine Lösung... |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |