XML menü verschiebt sich nicht

so thx das hat nun geklappt.
hab nun noch eine globale Variable hinzugefügt.
Und eine onRelease Funktion.

PHP:
			navi_mc["button"+i+"_mc"].button_btn.onRelease = function (){
				playBackwards(this._parent._parent["button"+_global.button+"_mc"],1,0);
				playForwards(this._parent,1,0);
				_global.button = this._parent;
			}

jetzt ist dort mein Problem dies.

playBackwards(this._parent._parent["button"+_global.button+"_mc"],1,0);

ich will das das der alte button wieder die Rückwärdsbewegung macht. Allerdings weiß ich nicht wie ich das mit dem pfad mach
 
Na wenn du this._parent in in _global.button speicherst, sollte eigentlich playBackwards(_global.button,1,0); reichen

Ungetestet, nur so vom drüberlesen.
Lass dir doch einfach mal die globale Variable, nachdem du ihr den Wert zugewiesen hast, als trace ausgeben. Dort müßte eigentlich dann der korrekte Pfad drin stehen

Gruß
Rena

PS: Brauchst du zu den Funktionen keinen Pfad? Auch gut, wenn es so klappt. Es könnte - falls du mal mit dem Gedanken spielen solltest, das ganze Menü irgendwo hinzuzuladen - allerdings daran liegen, falls es dann nicht mehr klappen sollte
 
ahh das kommt davon wenn man zulange dran hock dachte die ganze zeit ich hätte in _global.button nur die zahl i

naja also ich hab alles in _root drin und es klappt bis jetzt.
Werde wenn ich fertig bin dies mal online stellen... vllt sogar einfach mal die ganze seite wenn sie fertig ist.
 
so also jetzt hab ich noch ein kleines problem...

PHP:
var XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true; 
XMLdaten.load("navi.xml"); 
XMLdaten.onLoad = function(success) { 
    if(success){
        anzahl = XMLdaten.firstChild.childNodes.length;
        buttonnumber = [];
		buttonname = [];
		buttontarget = [];
        for (var i=0; i<anzahl; i++) { 
            buttonnumber[i] = XMLdaten.firstChild.childNodes[i].attributes.number;
			buttonname[i] = XMLdaten.firstChild.childNodes[i].attributes.name;
			buttontarget[i] = XMLdaten.firstChild.childNodes[i].attributes.target;
			navi_mc.attachMovie("button_mc", "button"+i+"_mc", i);
			navi_mc["button"+i+"_mc"]._y = i*18;
			navi_mc["button"+i+"_mc"].button_txt_mc.btnname.text = buttonname[i];
						
			navi_mc["button"+i+"_mc"].button_btn.onRollOver = function (){
				if(_global.button != this._parent){
					playForwards(this._parent,1,0);
				}
			}
				
			navi_mc["button"+i+"_mc"].button_btn.onRollOut = function (){
				if(_global.button != this._parent){
					playBackwards(this._parent,1,0); 
				}
			}
				
			navi_mc["button"+i+"_mc"].button_btn.onRelease = function (){
				if(_global.button != this._parent){
					playBackwards(_global.button,1,0);
					playForwards(this._parent,1,0);
					_global.button = this._parent;
				}
			}
		}
    }
}

So also jetzt habe ich das problem das wenn man wenn bei der Rollover also wenn man draufbleibt und dann wartet bis der MC fertig durchgeloffen ist als bis er am ende ist und man dann klickt nicht am Ende bleibt so wie ich es will sondern an Anfang springt und nicht mehr weiter geht.
Aber wenn man schondrückt solange die Animation also der Mc vorwärds läuft klappt alles
 
Hhmm ... da fällt mir jetzt aus der Ferne nichts zu ein.
Bastel doch mal eine Demodatei mit Demo-XML vom aktuellen Stand und häng die hier an.
Zwei Buttons aus Vierecken und paar Worte als Dummy-Inhalt genügen, bloß nichts Großes, durch das man sich erst durchwurschteln muss

Gruß
Rena

PS: In der niedrigstmöglichen Version abspeichern. Keine Ahnung mit welcher du arbeitest aber CS3 dürften viele (inkl. mir) sich noch nicht geleistet haben.
 
so also ich hab mal noch ein bisschen weiter gemacht und bin nun dabei den content zu machen.
Dies hab ich einfach so gelöst, das ich im xml file die art der content auslöse und den target also auf welches weiter xml file der content zugreifen soll.
nun ist aber mein problem, das die Variable i nicht geht. den wenn ich in der if Abfrage trace(i) mach... kommt jedes mal 4 also die anzahl der childnotes.

PHP:
			navi_mc["button"+i+"_mc"].button_btn.onRelease = function (){
				if(_global.button != this._parent){
					playBackwards(_global.button,1,0);
					playForwards(this._parent,1,0);
					_global.button = this._parent;
					
					if(contentstyle[i] == "textfield"){
						textfield(buttontarget[i]);
					}else if(contentstyle[i] == "portfolio"){
						portfolio(buttontarget[i]);
					}else if(contentstyle[i] == "contact"){
						contact(buttontarget[i]);
					}
 
dies oben war nur ein code ausschnitt
das ist die ganze xml abfrage

PHP:
var XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true; 
XMLdaten.load("navi.xml"); 
XMLdaten.onLoad = function(success) { 
    if(success){
        anzahl = XMLdaten.firstChild.childNodes.length;
        buttonnumber = [];
		buttonname = [];
		buttontarget = [];
		contentstyle = [];
        for (var i=0; i<anzahl; i++) { 
            buttonnumber[i] = XMLdaten.firstChild.childNodes[i].attributes.number;
			buttonname[i] = XMLdaten.firstChild.childNodes[i].attributes.name;
			buttontarget[i] = XMLdaten.firstChild.childNodes[i].attributes.target;
			contentstyle[i] = XMLdaten.firstChild.childNodes[i].attributes.style;
			
			navi_mc.attachMovie("button_mc", "button"+i+"_mc", i);
			navi_mc["button"+i+"_mc"]._y = i*18;
			navi_mc["button"+i+"_mc"].button_txt_mc.btnname.text = buttonname[i];
						
			navi_mc["button"+i+"_mc"].button_btn.onRollOver = function (){
				if(_global.button != this._parent){
					playForwards(this._parent,1,0);
				}
			}
				
			navi_mc["button"+i+"_mc"].button_btn.onRollOut = function (){
				if(_global.button != this._parent){
					playBackwards(this._parent,1,0); 
				}
			}
				
			navi_mc["button"+i+"_mc"].button_btn.onRelease = function (){
				if(_global.button != this._parent){
					playBackwards(_global.button,1,0);
					playForwards(this._parent,1,0);
					_global.button = this._parent;
					
					if(contentstyle[i] == "textfield"){
						textfield(buttontarget[i]);
					}else if(contentstyle[i] == "portfolio"){
						portfolio(buttontarget[i]);
					}else if(contentstyle[i] == "contact"){
						contact(buttontarget[i]);
					}
					
				}
			}
		}
    }
}
 
nochmal hi zusammen
also ich will jetzt nicht nerven aber ich komme immer noch nicht voran.
Ich poste mal das ganze script sondas man sieht was es macht.

PHP:
_global.button = "";

_root.createEmptyMovieClip("navi_mc", 1);

function playForwards(timeline) {
    if (timeline == undefined) timeline = this;
    timeline.playBackwardsHelper.removeMovieClip();
    timeline.play();
}

function playBackwards(timeline, to, loop) {
	if (timeline == undefined) timeline = this;
	var from = timeline._currentframe;
	if (to == undefined || !(to > 0)) to = 1;
	if (to > from) to = from;
	if (loop == undefined) loop = 1;
	timeline.playBackwardsHelper.removeMovieClip();
	var helper = timeline.createEmptyMovieClip("playBackwardsHelper", timeline.getNextHighestDepth());
	helper.onEnterFrame = function() {
		if (timeline._currentframe > to) {
			timeline.prevFrame();
		} else {
			if (loop) {
				timeline.gotoAndStop(from);
			} else {
				delete this.onEnterFrame;
				this.removeMovieClip();
			}
		}
	}
}

function textfield(contentxml){
	var XMLdaten = new XML(); 
	XMLdaten.ignoreWhite=true; 
	XMLdaten.load(contentxml+".xml"); 
	XMLdaten.onLoad = function(success) { 
		if(success){
			anzahl = XMLdaten.firstChild.childNodes.length;
			contenttext = [];
			for (var i=0; i<anzahl; i++) { 
				contenttext[i] = XMLdaten.firstChild.childNodes[i].attributes.text;
				
				this.createClassObject(mx.containers.ScrollPane, "textfield", 10);
				textfield.setSize(150, 200);
				var scrollListener:Object = new Object();
				textfield.addEventListener("scroll", scrollListener);
				var completeListener:Object = new Object();
				textfield.addEventListener("complete", completeListener);
				textfield.contentPath = contenttext[i];
			}
		}
	}
}



var XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true; 
XMLdaten.load("navi.xml"); 
XMLdaten.onLoad = function(success) { 
    if(success){
        anzahl = XMLdaten.firstChild.childNodes.length;
        buttonnumber = [];
		buttonname = [];
		buttontarget = [];
		contentstyle = [];
        for (var i=0; i<anzahl; i++) { 
            buttonnumber[i] = XMLdaten.firstChild.childNodes[i].attributes.number;
			buttonname[i] = XMLdaten.firstChild.childNodes[i].attributes.name;
			buttontarget[i] = XMLdaten.firstChild.childNodes[i].attributes.target;
			contentstyle[i] = XMLdaten.firstChild.childNodes[i].attributes.style;
			
			navi_mc.attachMovie("button_mc", "button"+i+"_mc", i);
			navi_mc["button"+i+"_mc"]._y = i*18;
			navi_mc["button"+i+"_mc"].button_txt_mc.btnname.text = buttonname[i];
						
			navi_mc["button"+i+"_mc"].button_btn.onRollOver = function (){
				if(_global.button != this._parent){
					playForwards(this._parent,1,0);
				}
			}
				
			navi_mc["button"+i+"_mc"].button_btn.onRollOut = function (){
				if(_global.button != this._parent){
					playBackwards(this._parent,1,0); 
				}
			}
				
			navi_mc["button"+i+"_mc"].button_btn.onRelease = function (){
				if(_global.button != this._parent){
					playBackwards(_global.button,1,0);
					playForwards(this._parent,1,0);
					_global.button = this._parent;
					
					if(contentstyle[i] == "textfield"){
						textfield(buttontarget[i]);
					}else if(contentstyle[i] == "portfolio"){
						portfolio(buttontarget[i]);
					}else if(contentstyle[i] == "contact"){
						contact(buttontarget[i]);
					}
					
				}
			}
		}
    }
}

Also ich habe immer noch nicht rausgefunden wie ich die Variable i abfrage:

PHP:
				if(_global.button != this._parent){
					playBackwards(_global.button,1,0);
					playForwards(this._parent,1,0);
					_global.button = this._parent;
					
					if(contentstyle[i] == "textfield"){
						textfield(buttontarget[i]);
					}else if(contentstyle[i] == "portfolio"){
						portfolio(buttontarget[i]);
					}else if(contentstyle[i] == "contact"){
						contact(buttontarget[i]);
					}
					
				}

und es kommt ebenfalls noch diese fehlermeldung.

Code:
**Warnung** Szene=Szene 1, Ebene=Ebene 2, Bild=1:Zeile 125: Der Bezeichner 'textfield' wird zur Laufzeit nicht in das integrierte Objekt 'TextField' aufgelöst.
     						textfield(buttontarget[i]);

Anzahl der ActionScript-Fehler: 1 	 Gemeldete Fehler: 1

woran könnte das liegen?
 
Zu der Fehlermeldung
**Warnung** Szene=Szene 1, Ebene=Ebene 2, Bild=1:Zeile 125: Der Bezeichner 'textfield' wird zur Laufzeit nicht in das integrierte Objekt 'TextField' aufgelöst.
textfield(buttontarget[ i ]);
Der Begriff "TextField" scheint laut dieser von Flash vorbesetzt zu sein. Was passiert, wenn du das textfeld statt textfield nennst?

Zur i-Frage von weiter oben:
Irgendwo wirst du den MCs ihr jeweils eigenes i zuweisen müssen, z.B. navi_mc["button"+i+"_mc"].i=i innerhalb der for-Schleife. (Den dann später auch mit this.i oder Ähnlichem ansprechen)
Ansonsten nimmt jeder MC natürlich den aktuellen Wert der generellen Variable i. Und der ist nach Beendigung der Schleife eben z.B. 4.

Gruß
Rena
 

Neue Beiträge

Zurück