Pixi.js: [v4.4.0] L'événement Click d'un Sprite est envoyé même si un élément DOM est au-dessus

Créé le 27 févr. 2017  ·  24Commentaires  ·  Source: pixijs/pixi.js

Hey !

Depuis la 4.4.0, j'ai observé que lorsque je cliquais sur un élément DOM qui se trouve au-dessus d'un sprite sur le canevas du pixi. L'événement de clic du sprite est toujours déclenché.

J'ai fait un exemple rapide ici:
v4.4.0
https://jsfiddle.net/ku55deL6/5/

v4.3.5
https://jsfiddle.net/ku55deL6/4/

Et merci les gars pour votre excellent travail!

💾 v4.x (Legacy) 🕷 Bug

Commentaire le plus utile

Je souhaite 😛 mon application utilise beaucoup cette situation, et malheureusement cela me cause beaucoup de bugs ..

Tous les 24 commentaires

Merci pour votre solution. Mais le problème n'est pas complètement résolu.

Si vous cliquez plusieurs fois sur un élément DOM au-dessus d'un Sprite, je peux reproduire le problème.

Exemple avec v4.4.1: https://jsfiddle.net/ku55deL6/9/

Sympa :) l'aventure continue!

D'accord, https://github.com/pixijs/pixi.js/pull/3800 devrait résoudre un autre problème à l'origine de cela.

@andrewstart pourriez-vous vérifier ce violon avec votre build?

Oui, ça marche. Peu importe combien de fois je clique sur la bannière jaune, le lapin reste en place.

Salut les gars!

J'ai essayé avec la version 4.4.2 et il semble que ce n'est toujours pas corrigé pour chaque situation .. si j'ai deux sprites dans le même conteneur cela fonctionne bien, mais si les sprites sont dans des conteneurs différents, ce problème se produit toujours.

Voir ceci: https://jsfiddle.net/FNevesFMQ/uwx24bm8/

À ce stade, je pense que vous insérez des erreurs dans le code pour que je travaille pour moi 😛
J'aurai l'occasion de jeter un coup d'œil à cela ce week-end. Je sais que nous avons des tests unitaires pour imposer de ne pas obtenir d'événements de pointeur pour les sprites qui se chevauchent, donc je vais devoir explorer pourquoi différents conteneurs modifient cela.

Je souhaite 😛 mon application utilise beaucoup cette situation, et malheureusement cela me cause beaucoup de bugs ..

J'ai résolu ce problème avec https://d157l7jdn8e5sf.cloudfront.net/fix-interaction-issues/pixi.js , mais c'est probablement une bonne idée de l'utiliser pour voir s'il y a d'autres problèmes que nous ne faisons pas. Je sais pas.

Le patch n'a pas fonctionné pour moi.
Le cas est le suivant (mobile, safari):

  1. il y a 2 conteneurs, tous deux interactifs et se chevauchent
  2. lorsque je clique, le gestionnaire d'un clic le plus élevé est également déclenché dans le bas

@hazardsoft Nous avons actuellement des tests

    Stage    (both interactive and non-interactive)
    /   \
   parent1  parent2   (together, both interactive and non-interactive)
      /       \  
    item1     item2   (always interactive)
    Stage    (both interactive and non-interactive)
        /    \  
    item1    item2   (always interactive)

Dans les tests, item1 et item2 chevauchent, avec item1 en plus de item2 . En quoi votre configuration est-elle différente? Pourriez-vous fournir un violon / stylo?

@andrewstart , où puis-je emporter pixi.js avec vos correctifs? Je peux donc les vérifier par rapport à mon cas.

Désolé, mais ce n'est pas encore résolu. Pour l'exemple que j'ai donné auparavant, cela fonctionne, mais sur mon application, il est toujours possible de cliquer sur les éléments sous l'élément cliqué.

Pour le moment, je n'ai pas compris quelle est la condition pour que cela se produise.

Pareil pour moi, mon cas n'est toujours pas réglé. Essayera de préparer jsfiddle.

Merci @hazardsoft , un violon est certainement le meilleur moyen pour nous de vérifier les correctifs.

@bigtimebuddy plus de travail pour vous, les gars :) Je suis vraiment étonné que vous

Ici, je l' ai trouvé:

Si l'interaction est définie sur Sprite, cela fonctionne bien, mais si elle est affectée à un conteneur, le comportement est incorrect et il est possible de cliquer sur tous les éléments en même temps.

Cela sera corrigé (enfin) avec https://github.com/pixijs/pixi.js/pull/3877

Quelques problèmes supplémentaires dans Pixi 4.4.4 avec l'événement mouseup

1- https://jsfiddle.net/8qtz73hf/ (fonctionne avec mousedown)
2- https://jsfiddle.net/sbxoya8x/ (ne fonctionne pas avec mouseup)

Cela ressemble à un effet secondaire d'attacher des écouteurs mouseup à la fenêtre, pour nous assurer que nous pouvons envoyer des événements mouseupoutside si la souris est hors du canevas (ou bloquée par un autre div). Je suppose que nous devrons inspecter la cible de l'événement, dans ce cas, pour nous assurer qu'il s'agit du canevas et non d'un autre élément.

est-ce le même numéro de # 3466?
Dois-je avoir à ouvrir un nouveau numéro pour cela?

Non, vous ne devriez pas en avoir besoin. J'ai été très occupé au travail, c'est pourquoi je n'ai pas encore eu l'occasion de le réparer.

Ce thread a été automatiquement verrouillé car il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau numéro pour les bogues associés.

Cette page vous a été utile?
0 / 5 - 0 notes