JavaScript in Flash einbinden.

Ich hab jetzt nochmals alles überprüft aber finde keinen
Fehler. Zumindestens hab ich nichts falsch gemacht beim ändern
des ActionScripts.
Vielleicht noch jemand eine Idee?

Greetz SixxKiller

P.S.: Falls jemand über den Link schauen will, da läuft der Countdown weil ich
das JavaScript wieder komplett in der fla hab.
 
Hallo,

ohne Einblick in deine *.fla bin ich chancenlos, bei mir hat das Skript auch online funktioniert.
Da die Seite, in die du deinen Counter eingebaut hast, gross aussieht, bitte ich dich, nur die relevanten Passagen zu posten.

gruss
 
Ich hoffe das ist so korrekt. Hab zwei Screens von der fla gemacht.
Den kompletten Code das Scripts poste ich mit.
Wie gesagt der Code ist jetzt nicht ausgelagert sondern komplett
in de fla.

PHP:
var jahr = 2007, monat = 03, tag = 16, stunde = 19, minute = 30, sekunde = 0;
// Ziel-Datum in MEZ
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";
}
interval = setInterval(this, "countdown", 200);

Greetz SixxKiller
 

Anhänge

  • fla1.JPG
    fla1.JPG
    88,4 KB · Aufrufe: 13
  • fla2.JPG
    fla2.JPG
    86,6 KB · Aufrufe: 13
Guten Morgen.

Die Screens bleiben ja gleich nur der Code is ja anders.
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,

setze die erste Zeile des Skripts, die das Zieldatum-Objekt initialisiert, in den Body der Countdownfunktion:

Code:
function countdown() {
    startDatum = new Date();
    var zielDatum = new Date(jahr, monat-1, tag, stunde, minute, sekunde);

//..usw

gruss
 
Wunderbar! Habs geändert, hochgeladen und es geht!
Danke luke_the_duke für deine Hilfe, Geduld und Ausdauer.
Tutorials.de ist nur zu empfehlen!

Greetz SixxKiller
 

Neue Beiträge

Zurück