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 3 Discussion :

[Actionscript 3.0]Profondeur d'un sprite lors d'un evenement


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut [Actionscript 3.0]Profondeur d'un sprite lors d'un evenement
    Bonsoir à tous !
    Je me suis mis à la programmation en ActionScript 3.0 à l'aide du livre "ActionScript 3.0 pour les jeux" de Gary Rosenzweig. Lors d'un sous-chapitre "Définir la profondeur du Sprite" il définit la commande setChildIndex qui permet de changer l'ordre de la liste d'affichage des sprites.
    J'aimerais maintenant utiliser cette commande pour changer l'ordre de la liste d'affichage des sprites lors d'un événement comme un clic sur le sprite en question.

    J'ai donc un peu bidouillé pour arriver a ce code :

    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
    34
    35
    36
    37
    38
    39
    40
    //Début de la Création des sprites
    var sprite1:Sprite = new Sprite();
    sprite1.graphics.lineStyle(2 , 0x000000);
    sprite1.graphics.beginFill(0xCCCCCC);
    sprite1.graphics.drawRect(0 , 0 , 200 , 200);
    addChild(sprite1);
    sprite1.x = 50;
    sprite1.y = 50;
     
    var sprite2:Sprite = new Sprite();
    sprite2.graphics.lineStyle(2 , 0x000000);
    sprite2.graphics.beginFill(0xCCCCCC);
    sprite2.graphics.drawRect(0 , 0 , 200 , 200);
    sprite2.x = 300;
    sprite2.y = 50;
    addChild(sprite2);
     
    var sprite3:Sprite = new Sprite();
    sprite3.graphics.lineStyle(2 , 0x000000);
    sprite3.graphics.beginFill(0x333333);
    sprite3.graphics.drawCircle( 0 , 0 , 25);
    sprite3.x = 100;
    sprite3.y = 100;
    sprite1.addChild(sprite3);
    //Fin de la Création des sprites
     
    //Ajout d'écouteurs d'événement
    sprite1.addEventListener(MouseEvent.CLICK , clickSurSprite);
    sprite2.addEventListener(MouseEvent.CLICK , clickSurSprite);
    sprite3.addEventListener(MouseEvent.CLICK , clickSurSprite3);
     
    //Fonction qui change le parent de sprite3
    function clickSurSprite(event:MouseEvent){
    	event.currentTarget.addChild(sprite3);
    }
     
    //ma fonction qui essaye de changer la profondeur de sprite3
    function clickSurSprite3(event:MouseEvent){
    	setChildIndex(Sprite(event.currentTarget) , 0);
    }
    Seulement quand je clique sur sprite3 le fenêtre me renvoi ce message :

    ArgumentError: Error #2025: Le DisplayObject indiqué doit être un enfant de l'appelant.
    at flash.display:: DisplayObjectContainer/setChildIndex()
    at creerSprites_fla::MainTimeline/clickSurSprite3()


    Pouvez-vous m'aidez à résoudre ce problème fort épineux ?

    Voila je vous remercie d'avance pour vos réponses !!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Par défaut
    Bonjour

    je suppose que tu codes directement dans l'ide puisque tu ne déclares pas de classe.
    Dans ce cas la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setChildIndex(Sprite(event.currentTarget) , 0);
    traite sprite3 comme s'il était un enfant du clip principal (this est implicite) alors qu'il est un enfant de sprite1. Le compilateur a raison de s'en offusquer.
    Il faut appeler setChildIndex sur sprite1.

Discussions similaires

  1. Réponses: 14
    Dernier message: 30/04/2013, 22h03
  2. Jouer un son lors d'un evenement
    Par sebus dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 10/01/2007, 17h55
  3. Réponses: 2
    Dernier message: 26/04/2006, 14h21
  4. Réponses: 6
    Dernier message: 23/12/2005, 13h51
  5. Réponses: 5
    Dernier message: 06/08/2002, 20h08

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