Flex:确定组件是否显示

前端之家收集整理的这篇文章主要介绍了Flex:确定组件是否显示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
确定Flex / Flash中的组件是否显示用户屏幕上的最佳方式是什么?我正在寻找一种模拟 JavaComponent.isShowing()方法.

显示和隐藏事件触发可见性,这似乎适用于ViewStack组件的第一个后代,但不会进一步显示显示树中.

解决方法

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;
        }
    }
}

我没有做任何事情,而不是简单的测试,但它应该让你开始.

原文链接:https://www.f2er.com/flex/174279.html

猜你在找的Flex相关文章