是否有内置的方法来确定某个组件在Flex应用程序中是否完全可见(即,不是屏幕外的某种方式)。如果不是我怎么去雕像呢?
如果我的主要“下一个”和“上一个”按钮不在屏幕上,我想显示或隐藏其他“下一个”和“上一个”按钮。
什么事情最好听'重新计算'? stage.resize?
谢谢!
答案 0 :(得分:1)
这里有一个计算组件是否在阶段范围内的方法,但它不会告诉你组件是否被另一个组件隐藏,或者组件是否被隐藏,因为它超出了另一个容器。
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;
}
答案 1 :(得分:0)
您能否详细说明可见项目及其所在的容器?是否必须滚动一些容器才能到达按钮?或者有人拖了一个flexlib的子窗口:MDICanvas部分关闭屏幕?
我认为如果组件的x,y位置超出其容器的宽度和高度,将会归结为(依此类推到父容器,直到达到顶级应用程序。)