3Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
763
763
EMPFEHLEN
-
Hi leute habe mal ne kurze frage:
ich lass in flash ne xml datei auslesen und zwar so :
Code :1 2 3 4 5 6 7 8 9 10 11 12
var xmlloader:URLLoader = new URLLoader(); xmlloader.addEventListener(Event.COMPLETE, parseXML); xmlloader.load(new URLRequest("URL")); function parseXML(evt:Event):void { var xml:XML = XML(xmlloader.data); xml.ignoreWhite = true; image_txt.text = xml.mount[0].stream; song_txt.text = xml.mount[0].song; }
jetzt will ich das diese datei alle 30 sekunden noch mal abgefragt werden oder wenn der inhalt der datei geändert also quasi als intervall..
kann mir da jemand vll weiterhelfen.?
LG
Bilal
-
Ich bin kein Flash Programmierer, aber da es praktisch mit JavaScript identisch ist, würde ich so tippen:
Code actionscript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
function loadXML() { var xmlloader:URLLoader = new URLLoader(); xmlloader.addEventListener(Event.COMPLETE, parseXML); xmlloader.load(new URLRequest("URL")); function parseXML(evt:Event):void { var xml:XML = XML(xmlloader.data); xml.ignoreWhite = true; image_txt.text = xml.mount[0].stream; song_txt.text = xml.mount[0].song; } } setInterval(loadXML, 30000);
Edit: Oder besser wäre es, mit setTimeout zu arbeiten und das zu starten, sobald der letzte Aufruf abgearbeitet ist. Sonst kommst du in Bedrängnis, wenn der Server mal länger mit der Antwort brauch.
-
Danke für deine schnelle antwort könntest du mir auch vll zeigen wieder das mit dem setTimeout funktionieren würde und was der unterschied zu dem interval wäre..?Edit: Oder besser wäre es, mit setTimeout zu arbeiten und das zu starten, sobald der letzte Aufruf abgearbeitet ist. Sonst kommst du in Bedrängnis, wenn der Server mal länger mit der Antwort brauch.
LG
Bilal
-
setInterval läuft ununterbrochen in genau dem festgelegten Abstand. Die Problematik ist, dass das Herunterladen deiner Datei nicht deterministisch ist. Der Server kann nicht erreichbar sein oder das Laden kann mal eine Minute dauern. setInterval weiß davon nichts und löst ständig weiter die Funktion aus und die behindern sich gegenseitig, es kann auch zu race conditions kommen.
setTimeout wird einmalig ausgeführt. Also solltest du einfach nach dem vollständigen Abarbeiten des Dokumentes den Timer starten.
Code actionscript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
function loadXML() { var xmlloader:URLLoader = new URLLoader(); xmlloader.addEventListener(Event.COMPLETE, parseXML); xmlloader.load(new URLRequest("URL")); function parseXML(evt:Event):void { var xml:XML = XML(xmlloader.data); xml.ignoreWhite = true; image_txt.text = xml.mount[0].stream; song_txt.text = xml.mount[0].song; //Wir haben alles abgearbeitet, ab JETZT 30 Sekunden warten setTimeout(loadXML, 30000); } } //Aller erster Aufruf, der alles lostritt loadXML();
-
habe das mal versucht bekomme folgedene fehler meldung :
1180: Aufruf einer möglicherweise undefinierten Methode setTimeout.
-
Welche Flash Version benutzt du?
Geht es so?
Code actionscript:1
_global.setTimeout(loadXML, 30000);
Oder laut Dokumentation mit Timern (sind aber scheinbar relativ neu). http://help.adobe.com/en_US/FlashPla...filter_air=2.6
Code actionscript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
var timer:Timer = new Timer(30000, 1); timer.addEventListener(TimerEvent.TIMER, loadXML); function loadXML() { timer.reset(); var xmlloader:URLLoader = new URLLoader(); xmlloader.addEventListener(Event.COMPLETE, parseXML); xmlloader.load(new URLRequest("URL")); function parseXML(evt:Event):void { var xml:XML = XML(xmlloader.data); xml.ignoreWhite = true; image_txt.text = xml.mount[0].stream; song_txt.text = xml.mount[0].song; //Wir haben alles abgearbeitet, ab JETZT 30 Sekunden warten timer.start(); } } //Aller erster Aufruf, der alles lostritt loadXML();
Ich hab keinen Actionscript Compiler installiert und kann deshalb selbst nur probieren.
-
Benutze Adobe Flash Professional CS5 " Actionscript 3 "
musste den timer umbennen weil ich die funktion timer schonmal verwende
beim exportieren kommt kein fehler.. Aber nach den 30 sekunden hehehe ich blick ehrlich nicht mehr durch hahahahaPHP-Code:var xtimer:Timer = new Timer(30000, 1);
xtimer.addEventListener(TimerEvent.TIMER, loadXML);
function loadXML() {
xtimer.reset();
var xmlloader:URLLoader = new URLLoader();
xmlloader.addEventListener(Event.COMPLETE, parseXML);
xmlloader.load(new URLRequest("URL"));
function parseXML(evt:Event):void
{
var xml:XML = XML(xmlloader.data);
xml.ignoreWhite = true;
image_txt.text = xml.mount[0].stream;
song_txt.text = xml.mount[0].song;
//Wir haben alles abgearbeitet, ab JETZT 30 Sekunden warten
xtimer.start();
}
}
//Aller erster Aufruf, der alles lostritt
loadXML();
Code :1 2 3
ArgumentError: Error #1063: Argument count mismatch on Mp3Player/loadXML(). Expected 0, got 1. at flash.utils::Timer/_timerDispatch() at flash.utils::Timer/tick()
-
hab das probleme gelöst

VIELEN VIELEN DANK FÜR DEINE HILFEEE ******PHP-Code:var xtimer:Timer = new Timer(30000, 1);
xtimer.addEventListener(TimerEvent.TIMER, loadXML);
function loadXML(e:Event=null):void{ // (e:Event=null):void{ GEÄNDERT
xtimer.reset();
var xmlloader:URLLoader = new URLLoader();
xmlloader.addEventListener(Event.COMPLETE, parseXML);
xmlloader.load(new URLRequest("URL"));
function parseXML(e:Event=null):void{ // (e:Event=null):void{ GEÄNDERT
var xml:XML = XML(xmlloader.data);
xml.ignoreWhite = true;
image_txt.text = xml.mount[0].stream;
song_txt.text = xml.mount[0].song;
//Wir haben alles abgearbeitet, ab JETZT 30 Sekunden warten
xtimer.start();
}
}
//Aller erster Aufruf, der alles lostritt
loadXML();
LG
BILAL
-
Ich nehme an, dass loadXML als Parameter ein Event-Objekt übergeben bekommen, weil es ja beim "TIMER" event ausgeführt wird. Am einfachsten ist es, du schaltest noch eine Funktion dazwischen.
Code actionscript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
var xtimer:Timer = new Timer(30000, 1); xtimer.addEventListener(TimerEvent.TIMER, onTimer); function onTimer(evt:TimerEvent) { loadXML(); } function loadXML() { xtimer.reset(); var xmlloader:URLLoader = new URLLoader(); xmlloader.addEventListener(Event.COMPLETE, parseXML); xmlloader.load(new URLRequest("URL")); function parseXML(evt:Event):void { var xml:XML = XML(xmlloader.data); xml.ignoreWhite = true; image_txt.text = xml.mount[0].stream; song_txt.text = xml.mount[0].song; //Wir haben alles abgearbeitet, ab JETZT 30 Sekunden warten xtimer.start(); } } //Aller erster Aufruf, der alles lostritt loadXML();
Edit: War wohl zu langsam.
-
macht nix super lieben dank für deine hilfe nochmalEdit: War wohl zu langsam.

LG
Bilal
Ähnliche Themen
-
MySQL: Prozess alle t Sekunden ausführen
Von timestamp im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 18.06.10, 09:04 -
Alle paar Sekunden Seite wechseln
Von DooMoOo im Forum Visual Basic 6.0Antworten: 14Letzter Beitrag: 14.05.06, 13:34 -
[Premiere 6.0]Alle 0.2 Sekunden ein Frame ?!
Von Baam im Forum Videoschnitt, Videotechnik & -produktionAntworten: 2Letzter Beitrag: 05.07.05, 22:04 -
Wie lade ich eine Datei oder IFRAME alle 5 sekunden neu?
Von Lukasz im Forum PHPAntworten: 2Letzter Beitrag: 22.01.04, 20:20 -
Notebook rechnet alle 2 Sekunden
Von d4k4 im Forum HardwareAntworten: 12Letzter Beitrag: 03.04.03, 08:41





Zitieren

Login





