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 :

Listener sur plusieurs couches


Sujet :

ActionScript 3

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    ça dépend
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ça dépend

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Listener sur plusieurs couches
    Bonjour à tous,

    Je suis débutant en Flash, mais ai quelques bases sur Java/C/ et même AS.
    Voilà un mois j'ai commencé à apprendre à utiliser Macromedia Flash Pro et suis en plein développement d'un jeu style Heroquest (jeu de plateau).
    Le logiciel étant imité à AS2 et Flash 8, j'ai décidé de passer la seconde et suis sous Adobe Flash Pro depuis 4 jours.
    J'ai beaucoup peiné à retranscrire mon code de +2500 lignes en AS3, mais j'en vois enfin le bout.
    Ceci étant, je reste confronté à un problème dont les nombreux forums parcourus ne m'ont en rien clarifier les choses.
    Mon problème de Listener :

    Un MovieClip: terrain --> enfant de this
    Plusieurs MovieClips: monstres, mobiliers --> enfants de terrain.

    Un MovieClip: hero --> enfant de this (un seul token regroupant plusieurs personnages détaillés sur la bordure)

    Un MovieClip: premier_plan --> enfant de this
    Plusieurs MovieClips: portes --> enfants de premier_plan.

    Un MovieClip: bordure --> enfant de this
    Plusieurs MovieClips: tout ce qui me sert à afficher des informations, les icônes des différents personnages, les boutons de menus... l'interface en somme

    Cela me fait donc 4 couches distinctes, car mon terrain se doit de bouger indépendamment du héro ou de la bordure, et les porte de premier_plan pour faier illusion que le héro passe dessous.

    J'ai des listeners sur les monstres, le héros, et sur tout ce qui est sur la bordure ainsi que sur this pour le clavier (déplacements du héro...) ou souris (déplacement du héro, attaque sur les monstres...)
    C'est là qu'est mon problème ! Seule la couche la plus haute intercepte mes listeners, et j'ai beau retourner mes couches^^ sens dessus-dessous, il manque toujours quelque chose.

    Quelques exemples de mes listeners :
    hero.addEventListener(MouseEvent.ROLL_OVER, hero_mouseOver);
    mClipMob_176.addEventListener(MouseEvent.ROLL_OVER, afficheCibleDescription_RollOver);
    stage.addEventListener(KeyboardEvent.KEY_DOWN, ecouteur_keyDown);
    addEventListener(MouseEvent.CLICK, ecouteur_mouseClick);

    Merci d'avance de vos remarques.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    ça dépend
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ça dépend

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut mouseEnabled
    J'ai résolu mon problème.
    Une non connaissance d'AS3 pour la propriété "mouseEnabled" dont je n'avais nullement besoin en AS2.
    De fait, toutes mes "couches" empêchant mes écoutes (Listener) même si elles sont transparentes (image.png) peuvent enfin laisser mon curseur de souris aller chercher les MovieClip se trouvant dessous : container.mouseEnabled = false; voire les enfants du container si besoin : container.mouseChildren = false;
    Pour résumer mon besoin du message initial :

    function hierarchie() {
    //terrain
    addChild(terrain);

    //hero
    hero = addNewMovieClip(this, "hero", "hero");
    hero.gotoAndStop("dwarf");
    mcScale(hero, 17);
    initHero();
    addChild(hero);

    //premier plan
    premier_plan = addNewMovieClip(this, "premier_plan", "premier_plan");
    premier_plan.mouseEnabled = false;
    premier_plan.mouseChildren = false; // afin que mes portes n'empêchent pas le listener sur le hero ou sur un monstre

    //cadre noir
    cadreNoir();
    cadre_noir.mouseEnabled = false;

    //interface
    addChild(bordure);
    bordure.mouseEnabled = false;
    }

    En espérant que cela aidera d'autres que moi.

Discussions similaires

  1. V1.3: select sur plusieurs couches
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 5
    Dernier message: 11/04/2012, 17h04
  2. Réponses: 3
    Dernier message: 22/11/2011, 12h58
  3. un même listener sur plusieurs JTextField
    Par AnjouWeb dans le forum Composants
    Réponses: 1
    Dernier message: 29/06/2007, 09h14
  4. Plusieurs couches Graphics sur JPanel, etc..
    Par aristeas dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 17/02/2007, 09h59
  5. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55

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