IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH 8] [XML] Probleme de setInterval


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Phenomenium
    Inscrit en
    Janvier 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2004
    Messages : 185
    Par défaut [FLASH 8] [XML] Probleme de setInterval
    Bonjour.
    J'ai un petit souci avec cette fonction.
    Je voudrais que toutes les 5sec le code m'affiche un nouvelle item de mon xml.
    Mais il reste bloqué sur le premier, est ce que quelqun voit pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
     
    tickers_xml = new XML();
    tickers_xml.ignoreWhite = true;
    tickers_xml.onLoad = function(ok) {
    	if (ok) {
    		noeuds = tickers_xml.firstChild.childNodes;
    		// on se positionne au second niveau
    		nbrtickers = noeuds.length;
    		// on récupère le nombre de noeuds à ce niveau
    		premiereticker = this.firstChild.firstChild;
    		// on sélectionne le premier noeud
    		derniereticker = this.firstChild.lastChild;
    		// on sélectionne le dernier noeud
    		enCours = premiereticker;
    		// enCours correspond au noeud en cours d'affichage
    		// ici, la premiere ticker sera donc la premiere affichée
    		afficheticker(enCours);
    		// on affiche la ticker du premier noeud
    	}
    };
    tickers_xml.load("...");
     
    // affichage de la ticker
    function afficheticker(ticker) {
    	loadMovie(ticker.attributes.image, ecran);
    	textes = ticker.attributes.titre + " : " + ticker.attributes.soustitre;
    	if (enCours.attributes.num == nbrtickers) {
    		enCours = premiereticker;
    	} else {
    		enCours = enCours.nextSibling;
    	}
    	var timer = setInterval("afficheticker(enCours)", 5000);
    }
    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    As tu essaye de mettre ce code hors de ta fonction?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var timer = setInterval("afficheticker(enCours)", 5000);

  3. #3
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Salut,

    essaie plutôt un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    var nbrtickers :Number;
    var currentTicker:Number = 0;
    var noeuds:XMLNode;
    var timer:Number;
     
    var tickers_xml:XML = new XML();
    tickers_xml.ignoreWhite = true;
    tickers_xml.onLoad = function(ok:Boolean) {
    	if (ok) {
    		noeuds = tickers_xml.firstChild.childNodes;
    		// on se positionne au second niveau
    		nbrtickers = noeuds.length;
                    timer = setInterval("afficheticker", 5000);
    	}
    };
    tickers_xml.load("http://newepita.3ie.org/admin/ticker.php");
     
    // affichage de la ticker
    function afficheticker() {
            var ticker:XMLNode = noeuds.childNodes[currentTicker];
            currentTicker++;
    	loadMovie(ticker.attributes.image, ecran);
    	if(currentTicker == nbrtickers ) {
                  clearInterval(timer);
            }
    }

  4. #4
    Membre confirmé Avatar de Phenomenium
    Inscrit en
    Janvier 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2004
    Messages : 185
    Par défaut
    j'ai reussi avec ma methode en remplacant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var timer = setInterval("afficheticker(enCours)", 5000);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setInterval(afficheticker, 5000, enCours);
    Mais certain truc ne vont pas.

    freegreg est ce que tu peux m'expliquer ton script stp ? me dire ce qu'il est censé faire ? Merci

  5. #5
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Citation Envoyé par Phenomenium
    freegreg est ce que tu peux m'expliquer ton script stp ? me dire ce qu'il est censé faire ? Merci
    La même chose , enfin je crois

    En fait, la différence c'est que toi tu passes le prochain noeud en argument. Moi je me base sur le l'index du prochain noeud à afficher.
    Le clearInterval c'est juste éviter que la fonction continue à boucler alors que tous les noeuds ont été affiché.

  6. #6
    Membre confirmé Avatar de Phenomenium
    Inscrit en
    Janvier 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2004
    Messages : 185
    Par défaut
    En fait, la différence c'est que toi tu passes le prochain noeud en argument. Moi je me base sur le l'index du prochain noeud à afficher.
    Le clearInterval c'est juste éviter que la fonction continue à boucler alors que tous les noeuds ont été affiché.
    Ok.
    J'ai testé mais a priori y'a un truc qui cloche puisqu'il ne m'affiche rien
    En outre le fait que tourne en boucle ne me derange pas, donc je pense que je peux retirer le clearInterval(timer); sans tout péter !?

  7. #7
    Membre confirmé Avatar de Phenomenium
    Inscrit en
    Janvier 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2004
    Messages : 185
    Par défaut
    Oui j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var timer = setInterval("afficheticker(enCours)", 5000);
    a la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // ici, la premiere ticker sera donc la premiere affichée
    		afficheticker(enCours);
    Mais rien ne s'affiche, c'est pour ca que j'ai un doute sur la cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var timer = setInterval("afficheticker(enCours)", 5000);

  8. #8
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    essaie sans mettre les " " sur le nom de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var timer = setInterval(afficheticker(enCours), 5000);

Discussions similaires

  1. probleme menu dans flash via xml
    Par boxter1313 dans le forum Flash
    Réponses: 3
    Dernier message: 17/03/2010, 09h22
  2. [Flash 8 + XML]Probleme de Cache : SWF + XML
    Par SNDP dans le forum Flash
    Réponses: 2
    Dernier message: 29/05/2007, 08h31
  3. flash+xml probleme de connexion
    Par toomail dans le forum Flash
    Réponses: 4
    Dernier message: 03/04/2007, 13h58
  4. Réponses: 14
    Dernier message: 13/03/2007, 19h33
  5. [flash MX] probleme avec setinterval et clearinterval
    Par yacinechaouche dans le forum Flash
    Réponses: 3
    Dernier message: 15/04/2004, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo