解决方法
UIComponent.visible对于visible = false的对象的子对象并不一定有效.从文档:
“无论在哪种情况下,对象的子对象都不会发出显示或隐藏事件,除非对象已经专门写了一个实现.
我写了一个证明这是真实的示例应用程序.您可以做的是走上显示列表,检查父母是否可视.基本上“可见”给出假阳性,但不应该给予假阴性.这是一个快速实用程序我放在一起:
package { import flash.display.DisplayObject; import mx.core.Application; public class VisibilityUtils { public static function isDisplayObjectVisible(obj : DisplayObject) : Boolean { if (!obj.visible) return false; return checkDisplayObjectVisible(obj); } private static function checkDisplayObjectVisible(obj : DisplayObject) : Boolean { if (!obj.parent.visible) return false; if (obj.parent != null && !(obj.parent is Application)) return checkDisplayObjectVisible(obj.parent); else return true; } } }
我没有做任何事情,而不是简单的测试,但它应该让你开始.