J'ai le contrôle suivant pour savoir si un élément doit être considéré comme "survolé" ou non.
Je suis très confus parce que je vois des éléments définis comme étant state === 'hover'
alors qu'ils ne devraient pas l'être.
Le site alert
est encore plus déroutant car il indique que l'expression qui vient d'être évaluée à true ne devrait pas l'être (si vous y réfléchissez logiquement).
if( (ig.gui.cursor.pos.x >= element.pos.x)
&& (ig.gui.cursor.pos.x <= element.pos.x + element.size.x)
&& (ig.gui.cursor.pos.y >= element.pos.y)
&& (ig.gui.cursor.pos.y <= element.pos.y + element.size.y)
&& !element.disabled ) {
state = 'hover';
alert(
'This statement evaluates to true: '
+ ig.gui.cursor.pos.x
+ '>='
+ element.pos.x
+ '&&'
+ ig.gui.cursor.pos.x
+ '<='
+ element.pos.x
+ '+'
+ element.size.x
+ '&&'
+ ig.gui.cursor.pos.y
+ '>='
+ element.pos.y
+ '&&'
+ ig.gui.cursor.pos.y
+ '<='
+ element.pos.y
+ '+'
+ element.size.y
+ '&&'
+ ( !element.disabled )
);
}
Le code ci-dessus donne comme résultat alert
des messages comme celui-ci :
Nous sommes tous d'accord pour dire que 580 <= 60 + 48
évalue à FALSE
n'est-ce pas ?
Et pourtant l'alerte a été donnée...