JavaScript in Flash einbinden.

Hallo,

also ein bisschen Kreativität und die Verwendung von Suchen/Ersetzen ist ja mal nicht zuviel verlangt:

Code:
function datumSpeichern(daten) {
	
	var l = daten.length;	
	for (var i = 0; i < l; i++) {
		this[daten[i].nodeName] = daten[i].firstChild.nodeValue;
	}
	this.interval = setInterval(this, "countdown", 200);
}

var daten = new XML();
daten.ignoreWhite = true;
daten.onLoad = function () {
	datumSpeichern(this.firstChild.childNodes);
}

daten.load("datum.daten");

Es reicht natürlich nicht wenn du bloss einen "xml"-Variablennamen ersetzt.

gruss
 
Guten Morgen.

Sorry aber da hab ich Dich wohl falsch verstanden. Jetzt funktioniert es einwandfrei.
Danke nochmals für deine Hilfe.

Greetz SixxKiller
 
Auch auf die Gefahr hin das ich bald erschlagen werde.
Hab die Dateien hoch geladen und nun es wieder mal nicht. Dabei hab ich nur
deinen Code mit dem alten ersetzt.
Hab ich wieder was falsch gemacht? Oder liegt es nicht an mir?
Hier nochmal der Code:
PHP:
var zielDatum = new Date(jahr, monat-1, tag, stunde, minute, sekunde);


function countdown() {
	startDatum = new Date();
	// Aktuelles Datum
	// Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
	if (startDatum <= zielDatum) {
		var jahre = 0, monate = 0, tage = 0, stunden = 0, minuten = 0, sekunden = 0;
		/* Allgemeines Vorgehen:
		             * Zunächst werden die vollen Jahre gezählt
		             * und anschließend der Start- und Ziel-Monat auf den jeweiligen 1. gesetzt.
		             * Nun werden erst die vollen Monate vom 1. zum 1. des Start- bzw. Ziel-Monats berechnet
		             * und danach die tatsächlichen Monatstage wieder mit einbezogen.
		             * Dieses Vorgehen vermeidet Probleme mit den verschiedenen Monatslängen.
		             * Die restliche Differenz zwischen Start- und Ziel-Zeit wird mit Tagen aufgefüllt und
		             * was dann noch übrig bleibt, in Stunden, Minuten und Sekunden ausgedrückt.*/
		// Jahre
		if (startDatum<zielDatum) {
			while (startDatum<zielDatum) {
				if (startDatum.setFullYear(startDatum.getFullYear()+1)<=zielDatum) {
					jahre++;
				}
			}
			startDatum.setFullYear(startDatum.getFullYear()-1);
		}
		// Restliche Tage zum Monatsende ermitteln 
		var restTage = 0;
		var m = startDatum.getMonth();
		if (m == 1-1 || m == 3-1 || m == 5-1 || m == 7-1 || m == 8-1 || m == 10-1 || m == 12-1) {
			restTage = 31-startDatum.getDate();
		} else if (m == 4-1 || m == 6-1 || m == 9-1 || m == 11-1) {
			restTage = 30-startDatum.getDate();
		} else if (m == 2-1) {
			if (startDatum.getFullYear()%4 == 0 && (startDatum.getFullYear()%100 != 0 || startDatum.getFullYear()%400 == 0)) {
				restTage = 29-startDatum.getDate();
			} else {
				restTage = 28-startDatum.getDate();
			}
			// Schaltjahr 
		}
		// Start- und Ziel-Tag merken und auf 1 setzen 
		var startTag = startDatum.getDate();
		var zielTag = zielDatum.getDate();
		startDatum.setDate(1);
		zielDatum.setDate(1);
		// Monate
		if (startDatum<zielDatum) {
			while (startDatum<zielDatum) {
				if (startDatum.setMonth(startDatum.getMonth()+1)<=zielDatum) {
					monate++;
				}
			}
			startDatum.setMonth(startDatum.getMonth()-1);
		}
		// Tatsächlichen Start- und Ziel-Tag berücksichtigen 
		if (startDatum.getMonth() == zielDatum.getMonth()) {
			if (startTag<=zielTag) {
				startDatum.setDate(startTag);
			} else {
				monate--;
				tage = restTage+1;
			}
		} else {
			startDatum.setMonth(startDatum.getMonth()+1);
			if (startTag>=zielTag) {
				tage = restTage+1;
			} else {
				monate++;
				startDatum.setDate(startTag);
			}
		}
		zielDatum.setDate(zielTag);
		// Tage
		restTage = Math.floor((zielDatum-startDatum)/(24*60*60*1000));
		startDatum.setTime(startDatum.getTime()+restTage*24*60*60*1000);
		tage += restTage;
		// Stunden
		stunden = Math.floor((zielDatum-startDatum)/(60*60*1000));
		startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);
		// Minuten
		minuten = Math.floor((zielDatum-startDatum)/(60*1000));
		startDatum.setTime(startDatum.getTime()+minuten*60*1000);
		// Sekunden
		sekunden = Math.floor((zielDatum-startDatum)/1000);
		// Anzeige formatiere
		(tage<10) ? tage="0"+tage+"t " : tage=tage+"t ";
		(stunden<10) ? stunden="0"+stunden+"h " : stunden=stunden+"h ";
		(minuten<10) ? minuten="0"+minuten+"m " : minuten=minuten+"m ";
		(sekunden<10) ? sekunden="0"+sekunden+"s" : sekunden=sekunden+"s";
		if (monate>0) {
			(monate<10) ? monate=monate+"M " : monate=monate+"M ";
			txt.text = monate+tage+stunden+minuten+sekunden;
		} else {
			txt.text = "In: "+tage+stunden+minuten+sekunden;
		}
		
	} else clearInterval(interval);
	// Anderenfalls alles auf Null setzen 
	// document.countdownform.countdowninput.value="0 Jahre,  0 Monate,  0 Tage,  0 Stunden,  0 Minuten  und  00 Sekunden";
}
function datumSpeichern(daten) {
	
	var l = daten.length;	
	for (var i = 0; i < l; i++) {
		this[daten[i].nodeName] = daten[i].firstChild.nodeValue;
	}
	this.interval = setInterval(this, "countdown", 200);
}

var daten = new XML();
daten.ignoreWhite = true;
daten.onLoad = function () {
	datumSpeichern(this.firstChild.childNodes);
}

daten.load("datum.xml");

Greetz SixxKiller
 
Hallo,

hast du die xml-Datei auch hochgeladen? Du musst ausserdem die URL der xml-Datei immer relativ zum Hauptfilm pfaden, alternativ kannst du auch versuchen, absolut zu verlinken.

gruss
 
Die xml Datei liegt im selben Ordner wie die swf.
Hab jetzt den absoluten Pfad angegeben aber das auch nicht.

Greetz SixxKiller
 
Hallo,

poste mal die URL, mit der du die xml-Datei ansteuerst und am besten auch gleich noch die URL der HTML-Seite, in die du deine *.swf einbettest.

gruss
 
Hallo,

der Code der xml-Datei ist fehlerhaft, war er übrigens schon in meiner Vorlage, die ich weiter oben gepostet hatte. Statt "<startdatum" sollte es "<startdatum>" heissen.

gruss
 
Hab dies in der datum.xml geändert aber trotzdem wird nichts
angezeigt.
Werde nochmals die fla kontrollieren aber bin mir sicher das ich nichts
falsch eingetragen hab.

Greetz SixxKiller
 

Neue Beiträge

Zurück