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

ActionScript 1 & ActionScript 2 Discussion :

Figer les différents éléments d'une animation


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut Figer les différents éléments d'une animation
    Bonjour à tous,

    J'ai une animation, développée avec l'AS 2.0, qui contient un clip dont l’occurrence se nomme item...

    item se déplace selon les boutons de mon clavier, je veux arrêter le mouvement de mon occurrence (autrement dis, toute la scène sera figée) une fois qu'il touche un autre objet (un rectangle par exemple).... Voici le code du déplacement de mon objet:

    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
     
    onClipEvent(enterFrame){
     
    	if(Key.isDown(Key.RIGHT)){
    		this._x +=10;
    	}
     
    	if(Key.isDown(Key.DOWN)){
    		this._y +=10;
    	}
     
    	if(Key.isDown(Key.UP)){
    		this._y -=10;
    	}
     
    	if(Key.isDown(Key.LEFT)){
    		this._x -=10;
    	}
     
    }
    Le problème c'est que lorsque mon item touche le rectangle (je fais un test, bien sur, avec le hitTest()) et je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _root.item.stop();
    , ça ne marche pas

  2. #2
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    Bonjour,

    le problème peut-être dû au fait que c'est un onClipEvent. Je pense que cela ne se produirait pas avec un onEnterFrame. Si cela ne marche pas, pourrais-tu attacher ton fla ?

  3. #3
    Membre régulier
    Homme Profil pro
    Concepteur multimédia
    Inscrit en
    Février 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur multimédia
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 55
    Points : 87
    Points
    87
    Par défaut
    Salut...

    Je te propose pour corriger ton problème d'enlever le code sur ton objet item pour le placer sur la scène. Une manière simple mais pas forcément jolie serait alors de définir un ou plusieurs enterframe qui feraient :

    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
    // Pour le déplacement de l'objet "item"
    item.onEnterFrame = function() {
    	if (Key.isDown(Key.RIGHT)) {
    		item._x += 10;
    	}
    	if (Key.isDown(Key.DOWN)) {
    		item._y += 10;
    	}
    	if (Key.isDown(Key.UP)) {
    		item._y -= 10;
    	}
    	if (Key.isDown(Key.LEFT)) {
    		item._x -= 10;
    	}
    	// 
    };
     
    // Pour annuler le déplacement quand "item" touche "rectangle"
    this.onEnterFrame = function() {
    	if (item.hitTest(rectangle)) {
    		delete item.onEnterFrame;
    	}
    };
    Bien sûr, tu pourrais faire un seul onEnterFrame avec tout dedans, mais après, c'est à toi de voir si tu veux pouvoir relancer ou pas le mouvement de ton item, pouvoir l'annuler de nouveau etc. Pour ça, tu devras utiliser des fonctions que tu appelleras avec des boutons.

    Encore une fois, il n'y a pas d'optimisation ici, mais ça fonctionne.

    [edit] J'ai oublié de dire que Zulad a raison, c'est le onClipEvent qui fait que tu ne peux pas arrêter le truc. Dans la mesure du possible, autant s'en passer, tout comme il est préférable de se passer d'injecter du code sur un objet. Il vaut mieux soit tout mettre sur la scène, soit à la rigueur mettre le code dans l'objet

  4. #4
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    Merci perenico!
    ça m'a résolu le problème!

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/04/2009, 12h03
  2. Lire les différents éléments d'une char
    Par lucaordi dans le forum C
    Réponses: 10
    Dernier message: 27/02/2009, 18h21
  3. Les différents action d'une fênetre
    Par naima2005 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/06/2006, 16h25
  4. Récupérer les différents éléments Internet et Mail
    Par mdriesbach dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 31/10/2005, 13h43

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