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 :

[AS1-2] Lancer un code AS une seul fois... [Débutant(e)]


Sujet :

Flash

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Points : 99
    Points
    99
    Par défaut [AS1-2] Lancer un code AS une seul fois...
    j'ai deux calques avec 1 images sur chaques, et je voudrais lancer une seul foix l'animation codé le premier calque, et exécuter normalenent le code du dexiéme calque!

    Mon premier calque affiche un texte déroulant en ActoinScript.
    Mon dexiéme calque lance une animation (mais je voudrais la lancer qu'à la premiére lecture!)

    voila le code de mon deuxiéme calque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for (i=0;i<5;i++)
    {
    	var c = this.attachMovie("idCarre", "carre"+i, i);
    	c._x = 25+250;
    	c._y = 40+i*80;
    	c.statique.numero.text = i;
    }
     
    _root.onEnterFrame = function() {
    	// random puis lancement de l'animation trouvé aléatoirement.
    	var i = Math.round(Math.random()*5);
    	this["carre"+2].play();
    }
    je pensais faire un vérification du type : if (le clip == 'play()') { ne rien faire}
    mais je n'ais pas trouvé de paramètre pour ça!

    voila tout. Merci d'avance!

  2. #2
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,
    je ne suis pas sur d'avoir compris mais voici quelques idées :
    Dans une animation tu créés un clip (nommé "clip" ) avec un certain nombre d'images clé et un stop à la fin
    Dans ta scène tu places deux champs texte dynamiques s et s2 et tu places le code suivant sur ta première et unique image de la scène principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    onEnterFrame = function(){
    	s2.text = clip._framesloaded;
    	s.text = clip._currentframe;
    }
    s2 va t'afficher le nombre d'images du clip et s les images en cours. Ensuite tu peux comparer ces deux valeurs et déclencher des actions genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    onEnterFrame = function(){
    	if(clip._framesloaded == clip._currentframe){
    		clip.gotoAndStop(30);//exemple d'action
    	}
    	s2.text = clip._framesloaded;
    	s.text = clip._currentframe;
    }
    dans mon exemple mon clip change régulièrement de couleur comme ça je peux voir si ça marche bien...

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Points : 165
    Points
    165
    Par défaut
    Slt,
    j'avoue que c floue pour moi aussi ...
    mais si tu veux que ton animation se joue qu'une seule fois ... pkoi ne pas mettre un stop() a la fin de celle-ci ?

  4. #4
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Points : 99
    Points
    99
    Par défaut
    Je vais tenter de faire plus simple:

    j'ai 2 ActionScript :

    Un à n'exécuter qu'une foix
    Un à exécuter tout le temps

    j'ai alors pensé mettre 2 images sur mon calque puis mettre un gotoAndPlay(2) sur la seconde frame pour ne pas re-exécuter le script 1 mais ça ne marche pas...

    j'ai mis mon fla ici

  5. #5
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,
    c'est très difficile de te répondre car tous les scripts ne s'executent pas de la même manière en flash. A priori sur l'image 1 en début de script tu place un stop et tu executes ton script et à la fin de ce script tu fais un gotoandstop image 2. Si tu veux que ce script se réexecute en permanence il faut le programmer comme tel genre "onEnterFrame"...

  6. #6
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Points : 99
    Points
    99
    Par défaut
    c'est vrais que le code est mal indenté mais j'ai mis un 'onEnterFrame'

    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
     
    monTexte = "<p>Salut à tous</p>"; 
    vx = 20; 
    monStyle = new TextField.StyleSheet();   
    monStyle.setStyle("p", {fontFamily:'Arial', fontSize:'60px', color:'#666666'});   
    this.createEmptyMovieClip("monClip", 0); 
    monClip.cacheAsBitmap = true; 
    monClip.createTextField("monChampDeTexte", 0, 800, 500, 0, 0); 
     
    with (monClip.monChampDeTexte) {
    autoSize = true;
    html = true;
    styleSheet = monStyle;
    htmlText = monTexte;
    selectable = false;
    border = false;
    largeur =_width; //1000; //_width;
    hauteur =_height; //60; //_height;
    } 
     
    xRight = 300;
    xLeft = 100; 
     
    monClip.onEnterFrame = function() { 
    this._x -= 20; 
    if (this._x<(xLeft-largeur)-800) {this._x = xRight;} 
    //fin de la fonction "onEnterFrame". 
    };

  7. #7
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Points : 99
    Points
    99
    Par défaut
    J'ai fait quelque chose de simple mais ça marche!
    J'ai mis une variable que je met à true ou false suivant si je veux exécuter le code!!

    voily voilou!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer plusieurs config en une seule fois
    Par pololetigrou dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 14/05/2010, 13h51
  2. Code à éxécuter une seule fois
    Par ayed hedi dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/04/2010, 09h39
  3. [Batch] [Quartz] Le lancer un job qu'une seule fois
    Par ritchie23 dans le forum Spring
    Réponses: 3
    Dernier message: 04/11/2008, 16h31
  4. un bloc de code executé une seule fois ?
    Par root76 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/08/2006, 18h24
  5. Réponses: 1
    Dernier message: 19/03/2005, 22h47

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