Forums Développement Multimédia

Aller au contenu

Problème pour arrêter la souris...

as3 jeu souris

6 réponses à ce sujet

#1 pppplus

    Ceinture Jaune

  • Members
  • PipPip
  • 24 messages

Posté 16 June 2015 - 07:36 AM

Bonjour

J'ai un problème sur un petit jeu en as3 que j'ai récupéré et modifié.
Lorsque le jeu se termine, parfois il se bloque si le joueur est en train de faire une action avec la souris.

Comment faire pour bloquer toute action de la souris (et même du joueur) et éviter ce genre de conflit ?

Dès que le jeu se termine, je ferme tous les écouteurs, mais visiblement ça ne suffit pas (ou pas assez rapide ?).

J'espère être clair et que vous pourrez me donner des pistes.

#2 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 June 2015 - 10:51 AM

Bonjour pppplus

Tu ne pourras pas bloquer toute action de la souris, encore moins toute action du joueur, on appellerait ça un virus ;-)
Il faut que tu trouves quel écouteur et pourquoi ça bloque, je ne vois pas d'autre choix.

#3 pppplus

    Ceinture Jaune

  • Members
  • PipPip
  • 24 messages

Posté 16 June 2015 - 10:58 AM

D'ac, merci pour la réponse. Normalement tous les écouteurs sont coupés...
On n'a aucun moyen de ne plus écouter du tout la souris par exemple ?

Car c'est un problème lorsque le joueur est en train d'agir avec la souris, au moment où le jeu s'arrête.

Désolé pour mes questions un peu "innocentes".
A-t-on un moyen de détecter quel écouteur pourrait être en cause ?

#4 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 June 2015 - 13:34 PM

Mettre des "trace" dans les fonctions de rappel, comme ça, le dernier "trace" est le plus suspect

#5 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1893 messages

Posté 16 June 2015 - 14:31 PM

tu peux essayer mouseEnabled=mouseChildren=false;

#6 draad

  • Members
  • PipPipPipPipPipPipPipPip
  • 654 messages

Posté 16 June 2015 - 14:42 PM

Bonjour,

Tu peux aussi ajouter une variable "isMouseEnabled" dans un fichier configuration par exemple. Lorsque tu souhaite permettre au joueur de cliquer, tu met cette variable a true, lorsque tu ne veux plus qu'il puisse tu met cette variable a false.

Ensuite, dans chaque fonction que le joueur peut appeller en cliquant, tu fais le test en entree de fonction :



//Cette fonction est lancee lorsque le joueur clique
private function OnMouseClick (e:MouseEvent):void
{
if (Configuration.IsMouseEnabled == true)
{
        //le joueur a le droit de cliquer, continuer la fonction
        //faire quelque chose ici
}
else
{
   //le joueur n'avait pas le droit de cliquer
   // ne rien faire
}

}
 



Cette solution a l'avantage de te permettre de ne plus te soucier d'ajouter et enlever des ecouteurs a tout bout de champs. Tu ajoute tes ecouteurs en entree de classe, tu le retire lorsque tu n'aura plus jamais besoin de ces ecouteurs. Entre les deux il te suffit de changer la variable de controle.

#7 pppplus

    Ceinture Jaune

  • Members
  • PipPip
  • 24 messages

Posté 16 June 2015 - 15:22 PM

Merci, je vais tester tout ça !



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)