var array:Array = ['a','b','c']; trace(array.indexOf(array[0])); // returns 0
在一个疯狂的世界里,会发生这样的事情:
trace(Screen.screens.indexOf(Screen.screens[0])); // returns -1
Screen.screens 是一个 Array 的可用实例 Screen indexOf 一个自己的孩子?
Screen.screens
Array
Screen
indexOf
编辑- 要更进一步,请查看以下内容:
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 } }
屏幕 列在 屏幕。屏幕 应该与 屏幕 在里面 Screen.getScreensForRectangle(this.stage.nativeWindow.bounds) Screen.bounds ,尽管有两个,但仍然不匹配 Rectangle 具有相同尺寸的对象!
屏幕
屏幕。屏幕
Screen.getScreensForRectangle(this.stage.nativeWindow.bounds)
Screen.bounds
Rectangle
疯了,女士们先生们!你甚至不想看到我组合起来的解决方法(提示:它涉及比较 Screen.bounds.toString() 关于 )
Screen.bounds.toString()
这是一个有根据的猜测,但自从 Screen.screens Screen 对象(而不是保留一组内部 屏幕
Screen.screens.indexOf(Screen.screens[0])
你有两个单独的入口 屏幕。屏幕 ,因此,如果这些调用中的每一个都返回不同的对象数组,则很容易理解为什么找不到任何匹配项—因为 indexOf 方法测试===相等,所以两个不同的 对象将不匹配,即使它们恰好包含有关同一物理屏幕的信息。
var scr:Array = Screen.screens; trace( scr.indexOf(scr[0]) ); // returns 0