Apache flex 确定组件在Flex中是否完全可见的算法?

Apache flex 确定组件在Flex中是否完全可见的算法?,apache-flex,Apache Flex,是否有一种内置的方法来确定组件在Flex应用程序中是否完全可见(即不在屏幕外)。如果不是的话,我该怎么做呢 如果我的主“下一步”和“上一步”按钮不在屏幕上,我想显示或隐藏其他“下一步”和“上一步”按钮 什么事件最适合听“重新计算”?stage.resize 谢谢 您能给出可见物品及其所在容器的详细信息吗?是否需要滚动一些容器才能到达按钮?还是有人将flexlib:mdi的子窗口部分拖离屏幕 我认为这将归结为组件的x,y位置是否超出其容器的宽度和高度(依此类推,直到到达顶级应用程序为止)。下面是一

是否有一种内置的方法来确定组件在Flex应用程序中是否完全可见(即不在屏幕外)。如果不是的话,我该怎么做呢

如果我的主“下一步”和“上一步”按钮不在屏幕上,我想显示或隐藏其他“下一步”和“上一步”按钮

什么事件最适合听“重新计算”?stage.resize


谢谢

您能给出可见物品及其所在容器的详细信息吗?是否需要滚动一些容器才能到达按钮?还是有人将flexlib:mdi的子窗口部分拖离屏幕


我认为这将归结为组件的x,y位置是否超出其容器的宽度和高度(依此类推,直到到达顶级应用程序为止)。

下面是一种计算组件是否在阶段范围内的方法,但是,它不会告诉您该组件是否被另一个组件隐藏,或者该组件是否因为在另一个容器的边界之外而被隐藏

public function isComponentWithinStage(c:UIComponent):Boolean {
    var tl:Point = c.localToGlobal(new Point(0, 0));
    var br:Point = c.localToGlobal(new Point(c.width, c.height));

    //are we off the left or top of stage?
    if ( tl.x < 0 || tl.y < 0 ) {
        return false;
    }

    var stage:Stage = Application.application.stage;

    //off the right or bottom of stage?
    if ( br.x > stage.width || br.y > stage.height ) {
        return false;
    }

    return true;
}
公共函数isComponentWithinStage(c:UIComponent):布尔值{
var tl:Point=c.localToGlobal(新点(0,0));
var br:Point=c.localToGlobal(新点(c.width,c.height));
//我们是离开舞台的左边还是顶部?
if(tl.x<0 | | tl.y<0){
返回false;
}
var阶段:阶段=Application.Application.stage;
//离开舞台的右边还是底部?
如果(br.x>stage.width | br.y>stage.height){
返回false;
}
返回true;
}

这不考虑组件的宽度或高度。