begin process at 2012 02 10 09:55:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Multimédia

 > 

Animation

 > 

setInterval et probleme html


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

setInterval et probleme html

mardi 30 octobre 2007 à 14:49:47 | setInterval et probleme html

chiktika

Bonjour,

je voudrais savoir si il y a des choses à eviter qd on utilise une fonction executée plusieurs fois avec setInterval ?
( du genre eviter les boucles for ou les onEnterFrame.)
Je m'explique :
Je suis dans ce cas la : qd je lance mon anim depuis flash aucun probleme, alors que qd j'integre le swf ds une page html, l'anim se bloque et il me dit qu'un script ralenti l'application et devrait etre arrete. C'est ma fameuse fonction avec setInterval qui pose probleme.

Avez vous une idée ? Au besoin je colle le code et un apercu.

Par avance merci.

mercredi 31 octobre 2007 à 08:28:03 | Re : setInterval et probleme html

goldenboy68

Colle surtout le code, l'aperçu c'est pas trop la peine, ce genre d'erreur arrive si tu es dans une boucle infinie, donc y'a un pb de prog

@+! Samy
mercredi 31 octobre 2007 à 09:19:31 | Re : setInterval et probleme html

chiktika

Bonjour,
entre temps j'ai refait séparée ma fonction en plusieurs, mais il n'y a aucun changement.
J'ai aussi vérifiee que chaque clip sur la scene avait bien un stop a la fin.

Je colle le code :

var intervalId:Number;
var count:Number = 1;
var maxCount:Number = 3;
var duration:Number = 750;
//
//fonction qui permet de lire l'animation dupliquée ds la fonction d'apres
//l'animation est en faite une goutte qui tombe et qui s'etale en bande pour creer un menu. Il y a autant de goutte que de liens ds le fichier xml, et chaque goutte doit tomber à interval régulier, qd l'animation de la premiere goutte est terminée, la deuxieme peut demarrer.

function player(param, param2, end, count) {
    param.onEnterFrame = function() {
        this.nextFrame();
        if (this._currentframe == end-1) {
            this.transition._y = -18*count;
            this.rebond._y = that.menu0.rebond._y-17.7*count;
        }
        if (this._currentframe == end) {
            delete this.onEnterFrame;
            this.clipmenu0._height = 13;
            this.clipmenu0._y = that.menu0.clipmenu0._y-(18*count);
// fonction qui affiche le texte du menu
           txtMenu(param2, count);
            param2._y = -18*count;
        }
    };
}
// fonction qui duplique mon menu animée
function duplicateMenu() {
    that.menu0.duplicateMovieClip("menu"+count, count);
    that.contTxt0.duplicateMovieClip("contTxt"+count, count+10);
    that["menu"+count].enabled = false;
    that["menu"+count]._alpha = 100;
    //
    player(that["menu"+count], that["contTxt"+count], 9, count);
    //
    count++;
   // totLiens = est defini plus haut, c'est le nombre de liens ds le fichier xml
    if (count>=totLiens+1) {
        for (var q:Number = 0; q<=count; q++) {
          // j'active les boutons du menu !
            that["menu"+q].enabled = true;
            that.titre["masque"+q].enabled = true;
        }
        //
        clearInterval(intervalId);
        that.bg_mc.arbre.tronc.colorTransformTo(100, 0, 100, 0, 100, 0, 100, 0, 3, "easeOutBounce", ouvreOeil());
        //
//fonction qui gere le rollOver et le onRelease des boutons du menu
        actionMenu();
    }
//fonction qui affiche le texte du menu via xml
function txtMenu(Clip, numero) {
    Clip.createTextField("txtmenu", this.getNextHighestDepth(), 220, 336, 200, 50);
    Clip.txtmenu.tween("_x", -100, 1, "easeOutBack");
    Clip.txtmenu.colorTransformTo(100, -255, 100, -255, 100, -255, 100, 0, 1, "easeOutBack");
    Clip.txtmenu.type = "dynamic";
    Clip.txtmenu.selectable = false;
    Clip.txtmenu.embedFonts = true;
    var my_fmt:TextFormat = new TextFormat();
    my_fmt.font = "my font";
    my_fmt.color = 0xccff00;
    my_fmt.align = "center";
    my_fmt.size = 11;
    Clip.txtmenu.text = rubrique[numero].attributes.libelle;
    Clip.txtmenu.setTextFormat(my_fmt);
}

voila je n'ai pas collé tout le code, seulement celui qui est lié au setInterval, dis moi ce que tu en penses.
Et encore merci !!

mercredi 31 octobre 2007 à 10:15:45 | Re : setInterval et probleme html

goldenboy68

Je vois pas ton setInterval, manque un p'tit bout
mercredi 31 octobre 2007 à 10:19:35 | Re : setInterval et probleme html

chiktika

Petit détour par médiabox, et petite modification du code... Et cela ne marche tjrs pas !!!!
Apparement, le fait de lancer le clearInterval avant le setInterval évite des boucles indésirables, mais ds mon code précedent je n'ai pas vu ou elles peuvent etre !!


beginInterval();
// 
var intervalId:Number;
var count:Number = 1;
var maxCount:Number = 3;
var duration:Number = 750;
//
function executeCallback():Void {
    if (count>=totLiens) {
        clearInterval(intervalId);
    }
    //count++;  
    duplicateMenu();
}
//
function beginInterval():Void {
    if (intervalId != null) {
        clearInterval(intervalId);
    }
    intervalId = setInterval(this, "executeCallback", duration);
}
function player(param, param2, end, count) {
    param.onEnterFrame = function() {
        this.nextFrame();
        if (this._currentframe == end-1) {
            this.transition._y = -18*count;
            this.rebond._y = that.menu0.rebond._y-17.7*count;
        }
        if (this._currentframe == end) {
            delete this.onEnterFrame;
            //trace("enterframe ferme 1!")
            this.clipmenu0._height = 13;
            this.clipmenu0._y = that.menu0.clipmenu0._y-(18*count);
            txtMenu(param2, count);
            param2._y = -18*count;
        }
    };
}
function duplicateMenu() {
    that.menu0.duplicateMovieClip("menu"+count, count);
    that.contTxt0.duplicateMovieClip("contTxt"+count, count+10);
    that["menu"+count].enabled = false;
    that["menu"+count]._alpha = 100;
    //
    player(that["menu"+count], that["contTxt"+count], 9, count);
    //
    count++;
    if (count>=totLiens+1) {
        for (var q:Number = 0; q<=count; q++) {
            //actionMenu(that["menu"+q])
            that["menu"+q].enabled = true;
            that.titre["masque"+q].enabled = true;
        }
        //
        clearInterval(intervalId);
        that.bg_mc.arbre.tronc.colorTransformTo(100, 0, 100, 0, 100, 0, 100, 0, 3, "easeOutBounce", ouvreOeil());
        //
        actionMenu();
    }
mercredi 31 octobre 2007 à 10:48:08 | Re : setInterval et probleme html

chiktika

Excuse je n'avais pas vu ta réponse

il manque effectivement ceci apres le code que j'ai copié :

function jouerMenu() {
    intervalId = setInterval(this, "duplicateMenu", duration);
}

la fonction jouerMenu() est appellée plus haut ds le code :

that.menu0._alpha=0
that.menu0.tween("_alpha", 100, 0.01, "easeOutElastic", 8.5);
that.menu0.onEnterFrame = function() {
    if (that.menu0._alpha>=100) {
        delete this.onEnterFrame;
        that.menu0.play();
        disposeMenu();
    }
};
function disposeMenu() {
    jouerMenu();
    that.onEnterFrame = function() {
        if (that.menu0._currentframe == 9) {
            that.menu0.clipmenu0._height = 13;
            that.menu0.clipmenu0._y = 188;
           delete this.onEnterFrame;
            //
            chargementMenu(contenuFichierXML);
            _global.dataXml = contenuFichierXML;
            //
        }
    };
}

voilou !!
mercredi 31 octobre 2007 à 12:22:43 | Re : setInterval et probleme html

goldenboy68

Dsl, j'm'en sors pas vraiment dans ton code et j'ai pas trop le temps de m'y plonger à fond là.

Par contre, si j'utilise setInterval j'évite en général de le mélanger avec des onEnterFrame. Pour débugger ton anim, essaie de rajouter des trace() dans chacunes de tes fonctions et tu regardes celles qui continuent à être appelées une fois que tout devrait être fini. Ca te permettra de mieux cibler où se situe l'erreur.

@+! Samy


Cette discussion est classée dans : probleme, html, qd, eviter, setinterval


Répondre à ce message

Sujets en rapport avec ce message

Flash : Probleme avec les liens html [ par Gravity ] Bonjour, je crée actuellement un site en flash. Cependant, j'ai un probleme au niveau des liens pour lancer une page html en _Blank. Le lien que je cr bouton flash : probleme lien html [ par doloresrouge ] Bonsoir, j'ai un petit probleme. J'ai crée un bouton flash avec un lien html mais celui ne veut pas fonctionner. (pour l'instant je ne peux tester que probleme mozilla sous linux [ par fonetiklilian ] Bonjour à vous... J'affiche du html dans une animation Flash, dont des liens html pointant sur des fichier pdf, exemple: lien Avec tous les navigate Probleme swf externe et html [ par ptiboid ] Bonjour tous le monde !! Je vais aller droit au but. J'ai fait une animation qui fait appel à d'autres animations et lorsque j'ouvre l'animation dire probleme d'ouverture d'un popup dans flash [ par legni ] Salut a tous j'ai un probléme pour l'affichage d'un popup avec flash.., j'explique dans ma page html j'ai integrer le code suiant: jusque là sa va. probleme pause AS [ par stefbuet ] bonjour !Je suis pour le moment en train de batailler avec un probleme :je suis en train de faire un éditeur de dessin, et donc, il genere,(comme sur probleme d'affichage [ par karslim ] Bonjour à tous! Voila, je suis débutant en flash et je suis en train de réaliser mon1r site. J'ai un petit soucis....j'ai ma barre de nav réaliser sou Probleme de texte dynamique avec balises html [ par Darkrats ] SalutBon, j'ai une question bête qui m ennerve depuis maintenant plusieur jour.Le probleme : J'ai une zone de texte dynamique, elle utilise une police probleme setInterval et la boucle for [ par Clubistinho ] salut a tousje veut que vous m'aidé dans ma probleme car j'est utilisé setInterval pour repeter des instructions mais a un nombre de fois bien conn getURL probleme cadre [ par widesign ] Bonjour,Voila je vous envoi ce post car g un pti souci avec getURL, je voudrait qu'il ouvre un fichier html dans une fame (cadre). De la rien de plus


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales