tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von CPoly
  • 1 Beitrag von CPoly
  • 1 Beitrag von CPoly
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
763
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Webesek Webesek ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    15
    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
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    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.
    Webesek bedankt sich. 

  3. #3
    Webesek Webesek ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    15
    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..?

    LG
    Bilal
     

  4. #4
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    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();
    Jens B. bedankt sich. 

  5. #5
    Webesek Webesek ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    15
    habe das mal versucht bekomme folgedene fehler meldung :

    1180: Aufruf einer möglicherweise undefinierten Methode setTimeout.
     

  6. #6
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    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.
     

  7. #7
    Webesek Webesek ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    15
    Benutze Adobe Flash Professional CS5 " Actionscript 3 "
    musste den timer umbennen weil ich die funktion timer schonmal verwende

    PHP-Code:
    var xtimer:Timer = new Timer(300001);
    xtimer.addEventListener(TimerEvent.TIMERloadXML);
     
    function 
    loadXML() {
        
    xtimer.reset();
     
        var 
    xmlloader:URLLoader = new URLLoader();
        
    xmlloader.addEventListener(Event.COMPLETEparseXML);
        
    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(); 
    beim exportieren kommt kein fehler.. Aber nach den 30 sekunden hehehe ich blick ehrlich nicht mehr durch hahahaha

    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()
     

  8. #8
    Webesek Webesek ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    15
    hab das probleme gelöst

    PHP-Code:
    var xtimer:Timer = new Timer(300001);
    xtimer.addEventListener(TimerEvent.TIMERloadXML);
     
    function 
    loadXML(e:Event=null):void{  // (e:Event=null):void{ GEÄNDERT
        
    xtimer.reset();
     
        var 
    xmlloader:URLLoader = new URLLoader();
        
    xmlloader.addEventListener(Event.COMPLETEparseXML);
        
    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(); 
    VIELEN VIELEN DANK FÜR DEINE HILFEEE ******

    LG
    BILAL
     

  9. #9
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    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.
    Webesek bedankt sich. 

  10. #10
    Webesek Webesek ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    15
    Edit: War wohl zu langsam.
    macht nix super lieben dank für deine hilfe nochmal

    LG

    Bilal
     

Ähnliche Themen

  1. MySQL: Prozess alle t Sekunden ausführen
    Von timestamp im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 18.06.10, 09:04
  2. Alle paar Sekunden Seite wechseln
    Von DooMoOo im Forum Visual Basic 6.0
    Antworten: 14
    Letzter Beitrag: 14.05.06, 13:34
  3. [Premiere 6.0]Alle 0.2 Sekunden ein Frame ?!
    Von Baam im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 2
    Letzter Beitrag: 05.07.05, 22:04
  4. Antworten: 2
    Letzter Beitrag: 22.01.04, 20:20
  5. Notebook rechnet alle 2 Sekunden
    Von d4k4 im Forum Hardware
    Antworten: 12
    Letzter Beitrag: 03.04.03, 08:41