Dans un monde sain d'esprit, cela fonctionne comme prévu:Flash/AIR AS3: comparer les contenus Screen.screens
var array:Array = ['a','b','c'];
trace(array.indexOf(array[0])); // returns 0
Dans un monde fou, cela se produit:
trace(Screen.screens.indexOf(Screen.screens[0])); // returns -1
... si Screen.screens
est un Array
des instances disponibles de Screen
, pourquoi ce tableau ne peut-il pas donner un indexOf
précis à l'un de ses propres enfants?
modifier - Pour prendre un peu plus loin, vérifier cela:
for each(var i:Screen in Screen.screens){
for each(var j:Screen in Screen.getScreensForRectangle(this.stage.nativeWindow.bounds)){
trace(i, j, i == j); // returns false
trace(i.bounds, j.bounds, i.bounds == j.bounds); // returns false
}
}
Au moins un Screen
énumérés dans Screen.screens
devrait être identique à un Screen
dans Screen.getScreensForRectangle(this.stage.nativeWindow.bounds)
- mais même si vous comparez les Screen.bounds
, il ne correspond toujours pas, malgré les deux objets Rectangle
ayant les mêmes dimensions!
Folie, mesdames et messieurs! Vous ne voulez même pas voir la solution que je mets ensemble (indice: il consiste à comparer les valeurs de Screen.bounds.toString()
pour le contenu de Screen.screens
)
Je sais, "l'écran, l'écran, les écrans de points d'écran de points d'écran." Mais je voulais donner un vrai exemple. –