Bug comportement focus mélant tabulation et mouse

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 24 oct. 2011 à 13:36
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 24 oct. 2011 à 19:27
Bonjour,

Préambule:
Ceci n'est pas une question , mais bien une constation, donc je poste un sujet ici, car cela aura l'avantage d'etre correctement référencé, pour ceux qui comme moi tombe sur ce bug.

Observation:
Lorsque l'on créer dynamiquement plusieurs objects interactifs avec les meme coordonnées ont observe un comportement qui peut laissé perplexe.
Si l'on ajoute sur le focus event un setchilInde(evt.target,containeur.numchildren-1);

Test 1, on parcours les élément avec la tabulation.
resultat normal, les objets interactifs passe succéssivement les uns sur les autres

Test 2, on ajoute sur le mouse-down un startDrag() et sur le mouse-up un stopDrag().
Resultat normal, lors du clic l objet interactif ciblé passe sur les autres.

Test 3, on efectue un seul drag, puis on parcours les élément avec la tabulation.
Resultat qui peut déconcerté:
on obtient une alternance de focus entre l'objet précédemment dragé et l'un des autres.


Conséquence:
J'ai perdu 1 journée et demi a comprendre d'ou venais le pb, a savoir une possible interaction malheureuse dans les events, une erreur dans le code, ... Mais en fait pas du tout.

Cause:
La logique de fonctionnement du focus à la tabulation.
En effet, celle-ci répond a ces 2 règles:

1> l'ordre de tabulation par défaut est déterminée par la position des objets interactifs dans la page(la scène).

2> l'ordre de tabulation par défaut est déterminée par l'ordre d'ajout sur la scéne si les position sont identique.

Or il peut arrivée comme dans mon cas de figure (Test3),que les 2 règles interfèrent.

Solution:
Ne jamais avoir d'ojets interactif aux meme coordonnées.
Mais si l'on veut avoir les possibilités:
_ de créer dynamiquement les objets
_de déplacer les objets,
il y a de forte chance pour qu'ils puissent avoir les meme coordonées.

Du coup il faudra obligatoirement indiquer un Index a chaque objet.
La contrainte sera alors déplacer sur la gestion des index surtout si ces objets interactifs en contiennent d'autres.


Merci a vous

2 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
24 oct. 2011 à 18:43
bonjour,

C'est pour celà qu'il existe la propriété InteractiveObject.tabIndex ...

Peg'
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
24 oct. 2011 à 19:27
oui encore faut-il savoir pourquoi et surtout que la gestion des tabindex devient galère si les objects interactifs sont contenu dans d'autres.
0