Webserver killt Slideshow!

maexn

Grünschnabel
Hallo erstmal!
Ich bastle zur Zeit an einer dynamischen Bildergallerie, für die Actionscript sich die URLs der Bilder aus einer XML-File holt und diese dann in einem Loader lädt.
Wenn ich den Film teste, läuft alles wie bestellt, aber wenn ich das Ganze im Internet auf meinem Webspace teste, funktioniert garnichts, der Bildschirm bleibt weiss! Habe mir mit einem dynamischen Textfeld mit Instanznamen "checkTxt" ein Output erstellt, damit ich auch im Internet erkennen kann ob die XML-File geladen wird. Die XML-Datei wird als Variable ssx geladen. Hier der Code:
Code:
ssx.onLoad = function(success) {

	if (success) {
		checkTxt.text = "working";//das dynamische Textfeld das als Output dienen soll
		var picArray:Array = ssx.firstChild.childNodes;//Array für picture-tags im xml
		
		for(i=0;i<picArray.length;i++) {
			urls.push("galleries/gallery1/" + picArray[i].attributes.url);//liest urls aus dem xml und gibt sie für das urls-Array weiter
		}
		
		mcLoader.loadClip(urls[pressed], picLoader);//ein Preloader für die Bilder
		picLoader.load(urls[pressed]);//picLoader ist der Loader für die Anzeige des gewählten Bildes
	} else {
		trace("no success");
		checkTxt.text = "error";
	}
};
Habe das XML testweise vom Server entfernt um die Ausgabe von checkTxt zu testen, und es gibt tatsächlich das Richtige aus; was anscheinend bedeutet, dass das XML zwar geladen wird, nur die Bilder nicht (was auch nicht am Script liegen kann, da es im [Strg][Enter]-Test ja einwandfrei funktioniert!).
Kann mir nicht mehr vorstellen woran es liegen könnte, wäre für Hilfe sehr dankbar!
MfG
 
Hallo und hezlich Willkommen auf tutorials.de!

Was genau ist denn das Array urls, was ist pressed? Zeig mal deine XML. Wo sind die Bilder gespeichert? Extern? Umlaute im Pfad? Der Codeschnipsel gibt leider viel zu wenig Informationen...

Probier es mal mit allen Bildern im selben Verzeichnis wie die swf - funktioniert das? Dann vorsichtig ein paar Verzeichnisstrukturen einfügen - funktioniert's immernoch? Lass dir mal in dein Textfeld den Wert von urls[pressed] ausgeben - was kommt da raus?

Gruß
jens
 
Hi und danke erstmal für die Antwort, bin langsam am Verzweifeln..!

Die .swf-Datei liegt im root-Verzeichnis, das XML und die Bilder im Verzeichnis /galleries/gallery1/. Die swf heisst gallery1.swf und wird von einer index.swf geladen. Hab die gallery.swf testweise insVerzeichnis der Bilder und der XML verschoben (und natürlich die Pfade im Script entsprechend geändert), allerdings mit dem gleichen Ergebnis!

Hab zu wenig vom Code gepostet, also:
"pressed" ist die Variable, die per onRelease auf einen Button den Wert des jeweiligen Bildes im Array "urls" bekommt. Dieses Array speichert die URLs der Bilder, die in den jeweiligen picture-tags im XML stehen. Hier mal der XML-Code:
HTML:
<?xml version="1.0" encoding="utf-8"?>
<pictures>
	<pic url="gut_1_sw.jpg"/>
	<pic url="gut_21_sw.jpg"/>
	<pic url="IMG_3027.jpg"/>
	<pic url="IMG_3036.jpg"/>
	<pic url="IMG_3037.jpg"/>
	<pic url="IMG_3111.jpg"/>
	<pic url="IMG_3124.jpg"/>
	<pic url="IMG_3126.jpg"/>
	<pic url="IMG_3156.jpg"/>
</pictures>

Hier der AS 2-Code:
Code:
var ssx:XML = new XML();//ssx steht für SlideShowXml
ssx.ignoreWhite = true;

ssx.load("galleries/gallery1/gallery1.xml");

var pressed:Number = 0;//wird mit einem Mouseclick auf ein anderes Bild mit dem jeweiligen Wert überschrieben und dieser Wert wird dann aus dem urls-Array gelesen
var urls:Array = new Array();//Array für urls in der xml-file
Dann eben die onLoad-function:
Code:
ssx.onLoad = function(success) {

	if (success) {
		checkTxt.text = "working";
		var picArray:Array = ssx.firstChild.childNodes;//Array für picture-tags im xml
		
		for(i=0;i<picArray.length;i++) {
			urls.push("galleries/gallery1/" + picArray[i].attributes.url);//liest urls aus dem xml und gibt sie ans urlsArray weiter
		}
		
		mcLoader.loadClip(urls[pressed], picLoader);//der Preloader für die Bilder
		picLoader.load(urls[pressed]);//großeAnsicht
		
	} else {
		trace("no success");
		checkTxt.text = "error";
	}
};

Hier die function, die bei einem onRelease gecallt wird:
Code:
function mouseClick() {
	picLoader.load(urls[pressed]);
	mcLoader.loadClip(urls[pressed], picLoader);
}

Und hier noch der Code für den Preloader "mcLoader", der das Laden der Bilder im "picLoader" anzeigt:
Code:
extLoader._visible = false;//extLoader ist ein Movieclip auf der Bühne, der den Ladebalken anzeigt
var mcLoader:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object;
mcLoader.addListener(myListener);

myListener.onLoadProgress = function(target_mc, bytesLoaded, bytesTotal) {
	extLoader._visible = true;
	var pctLoaded = Math.round(bytesLoaded/bytesTotal*100);
	extLoader.extLoader_mc._xscale = pctLoaded;
	if(bytesLoaded >= bytesTotal) {
		extLoader._visible = false;
	}
}
So, ich hoffe, das ganze ist jetzt schon etwas verständlicher..?
Was mich am meisten wundert ist, dass die Slideshow im lokalen Test auf meinem PC einwandfrei funktioniert, nur im Internet nicht! Deshalb kann ich mir schlecht vorstellen, dass der Fehler im Code liegt... :-?
Vielen Dank jedenfalls für Hilfestellungen!
Grüße

PS.: Kann mich erst ab 21. 2. wieder melden, weil ich bis dahin außer Lande bin, deshalb bitte nicht denken dies wäre ein toter Thread weil ich nicht mehr antworte!!
 
Zuletzt bearbeitet:
Wollte nur schnell sagen dass ich das "Problem" grad gelöst hab:
Die Bilddateien enden jeweils auf .JPG, ich hab aber im XML jedes jpg kleingeschrieben :rolleyes:
Tja... blöd muss man sein!
Trotzdem danke für die Hilfe!
Grüße maex
 
Zurück