Bilder reinladen ...

DD2k3

Mitglied
hi,

ich möchte nun eine Art Bildermenuleiste erstellen lassen, mit for schleife, externer xml datei für die informationen usw.

naja soweit klappt ja auch alles, bis auf eins ;) ... er will die Bilder nicht wirklich laden ...

wenn ich die bilder in nen mc lade, welches ich so erstelle, gehts ohne probs ...

Code:
_root.viewport.picside.createEmptyMovieClip("schuelerbild"+i,i);

... nur will ich diese Flash Datei dann in eine große Einbinden ... wo das _root wo anders liegt ...

deswegen die frage ... wie macht man das anderser -.-
 
Wenn die von dir genannte Zeile auf der Hauptzeitleiste der hinzuzuladenden Datei liegt, dann this statt _root.
Ansonsten müßte man deine Zeitleistenhierarchien kennen.
Generell jedoch: relative statt absolute Pfade verwenden.

Alternative:
Schau mal in der Flashhilfe nach _lockroot (ab Flash MX 2004).
 
ich wöllte es ja mit

this.


machen ... nur kommen dann keine Bilder, egal was ich mache ... es ist auch so bei einen neuen leeren Flashdatei ... das es mit "_root" geht und mit "this" nicht

aber danke ;)
 
DD2k3 hat gesagt.:
...egal was ich mache ...
Ja was machst du denn?
Ohne mehr Infos und nur mit der einen Zeile wird's schwierig.
Aufbau? Scripte? Auf das Problem reduzierte Demodateien?

Nach _lockroot hast mittlerweile schon geschaut, nehm ich an.
 
... ich kann ja alles mal posten ... aber bringen wirds wohl auch nix

Code:
myXML = new XML() 
myXML.ignoreWhite = true
myXML.load("schueler.xml")
myXML.ref = this

myXML.onLoad = function(succes){ 
	if(succes){ 
		var root = this.firstChild 
	    nodes = root.childNodes 
		var schueler : Array = new Array;
	    for(var i=0; i<nodes.length; i++) {
			schueler.push({sname:nodes[i].childNodes[0].childNodes[0].nodeValue,sbild:nodes[i].childNodes[1].childNodes[0].nodeValue,stext:nodes[i].childNodes[2].childNodes[0].nodeValue});
			
			var schuelerpic = _root.createEmptyMovieClip("schueler"+i*2,i*2);
			schuelerpic.loadMovie(schueler[i].sbild);
			schuelerpic._y = 150 * i;
			schuelerpic._yscale = 20;
			schuelerpic._xscale = 20;		
			
			var schuelerpic2 = this.createEmptyMovieClip("schueler"+i*2+1,i*2+1);
			schuelerpic2.loadMovie(schueler[i].sbild);
			schuelerpic2._y = 150 * i;
			schuelerpic2._x = 120;			
			schuelerpic2._yscale = 20;
			schuelerpic2._xscale = 20;					
		} 				
    } else trace("Error loading XML document") 
}

so, da hab ich es mal in nen leeren dokument so mal getestet ... schuelerpic wird angeziegt ... und schuelerpic2 nicht ...
 

Anhänge

Und wie soll's nun aussehen?
Bei mir so ... siehe Anhang...

Ich seh drei Bilder - drei Bilder sind in der XML genannt ...
Wo ist also der Fehler?
 

Anhänge

  • 25494attachment.jpg
    25494attachment.jpg
    17,8 KB · Aufrufe: 11
so,

links, wie es ist

rechts, wie es sein müsste bzw. söllte (hab das this durch ein _root ersetzt, damit du siehst was ich will -.-


ich hoff das hilft weiter ;) ...
 

Anhänge

  • 25495attachment.jpg
    25495attachment.jpg
    71,3 KB · Aufrufe: 10
Hi,

Code:
var schuelerpic2 = this.createEmptyMovieClip("schueler"+i*2+1,i*2+1);
"this" verweist an dieser Stelle auch nicht auf die aktuelle Zeitleiste, sondern auf Dein XML-Objekt, da Du Dich immer noch in der onLoad-Funktion dieses Objektes befindest.

Setze am Beginn des Scriptes einen Verweis auf die Zeitleiste:
Code:
var that = this;
und verwende in der onLoad-Funktion dann diesen Verweis:
Code:
var schuelerpic2 = that.createEmptyMovieClip("schueler"+i*2+1,i*2+1);

Gruß
.
 
Zurück