Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-03-2005, 10:18   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
Question Setintervall/Pause in For-Schleife?

Hi zusammen!

Kurze (und wahrscheinlich auch simple) Frage:
Ich lese daten aus einem XML aus und gehe die einzelnen Nodes dann mit einer For-Schleife durch.

Nun möchte ich, dass er in der Schleife jeweils 5 sekunden wartet, bevor er das nächste Element ausliest bzw. in diesem Beispiel wieder "TESTAUSGABE IN FOR SCHLEIFE" ausgibt.

In einer simplen Variante, die auf die Problemstellung bezogen ist, sieht das ganze so aus::

Code:
for (var i=0; i<10; i++) {
     trace("TESTAUSGABE IN FOR SCHLEIFE");
     forschleife.wait(5 SEKUNDEN);
}
Hab schon einiges mit setinterval versucht, komm aber auf keinen grünen Zweig. Bin für jeden Tipp dankbar,

LG
Mike
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 ist offline   Mit Zitat antworten
Alt 17-03-2005, 10:35   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Sowas gibts leider nicht, aber du könntest soetwas machen:
Das erste Interval ruft sich jede Sekunde auf, da muss Deine Auslesefunktion hinein.
Das zweite löscht das erste und sich selbst, nachdem das erste 15 mal aufgerufen wurde.
PHP-Code:
var id1 setInterval( function(){ trace(" HUHU"); }, 1000);
var 
id2 setInterval( function(){ clearIntervalid1 ); clearIntervalid2 );}, 16300); 
Also ohne for-Schleife!
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 17-03-2005, 10:50   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
Hi!

Danke für den Tipp.. Ich komm aber um die For-Schleife nicht rum, da ich damit das XML File auslese. Gesamt schaut es eigentlich ja so aus:

Code:
var XMLdaten=new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("index.xml");
XMLdaten.onLoad = function(success) {
	_global.element_anzahl = XMLdaten.firstChild.childNodes.length;
	for (var i=0; i<XMLdaten.firstChild.childNodes.length; i++) {
		trace(unescape(XMLdaten.firstChild.childNodes[i].attributes.typ));
	}
}
Zum Projekt: Das SWF soll eine Slide-Show sein, die dynamisch die Daten aus dem XML File ausliest. In dem XML File ist auch gespeichert, wie lange ein Element angezeigt werden soll (z.B. 3 Sek.).

Ich hätte mir halt gedacht, dass ich das Durchlaufen des XML Files gleich mit dem Anzeigen verbinde...

Hast Du eine Idee für eine andere Lösung??

Danke jedenfalls,
LG
Mike
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 ist offline   Mit Zitat antworten
Alt 17-03-2005, 11:07   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Keine Ahnung ob das geht, kanns ja nicht testen.
Aber ich würde ne Funktion schreiben, die dann den File anzeigt, usw... .
PHP-Code:
var XMLdaten=new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("index.xml");
XMLdaten.onLoad = function(success) {
    
_global.element_anzahl XMLdaten.firstChild.childNodes.length;
    var 
id1 setIntervalshowXMLfiles1000);
    var 
id2 setInterval( function(){ clearIntervalid1 ); clearIntervalid2 );}, _global.element_anzahl 1000 1300);
}
function 
showXMLfiles()
{
    
trace(unescape(XMLdaten.firstChild.childNodes[i].attributes.typ));

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 17-03-2005, 12:48   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
Wink

Danke!

Habe in der Zwischenzeit mit Deinem ersten Vorschlag weiterexperimentiert und eine Lösung gefunden.

Ich push die XML Daten zuerst in einen array, und anschließend prüfe ich das Array mit Setintervall jede Sekune ab...

Beim Aufbau des Arrays lege ich auch gleich die entsprechenden Ebenen rückwärts an (z.B.: 58,56,54,...).

Funktioniert eigentlich prima..
Hier der Sourcecoude (falls Du es auch mal brauchen solltest):

Code:
// EBENEN LAUT ZEITINTERVALL AUSBLENDEN
var timer = setInterval( function(){
	trace("AKTUELLE SEKUNDE: "+_global.sekunden_messung);
	if (_global.sekunden_messung==_global.elementdaten_laufzeit[_global.array_delete_countup]) {
		trace("LÖSCHE EBENE:");
		trace(_global.delete_ebene_nr);
		trace(_global.elementdaten_laufzeit[_global.array_delete_countup]+" Sekunden");
		_global.buehne["Buehne_Content"+_global.delete_ebene_nr]._visible=false;
		_global.buehne["Buehne_Main_BG_Color"+(_global.delete_ebene_nr-1)]._visible=false;
		_global.delete_ebene_nr=_global.delete_ebene_nr-2;
		_global.array_delete_countup=_global.array_delete_countup+2;
		_global.sekunden_messung=1;	
	} else {
		_global.sekunden_messung++;
	}
}, 1000);
// ENDE EBENEN LAUT ZEITINTERVALL AUSBLENDEN
Danke nochmals & LG
Mike
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 ist offline   Mit Zitat antworten
Alt 17-03-2005, 12:55   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Funktioniert eigentlich prima..
Was heist eigentlich?
Und Du claerst aber das Intervall dann auch noch?
Und mit dem trace, das musste dann eh in Textfeldern ausgeben, weil das trace in der swf dann nicht funtzt! (funktioniert nur in der Entwicklungsumgebung)
Super, hat der Ansatz doch etwas genützt...
__________________
ERROR: Signature is too large

Geändert von rendner[i] (17-03-2005 um 12:58 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele