是否有內置的方式來確定組件在Flex應用程序中是否完全可見(即,不是以某種方式離開屏幕)。如果不是,我會怎麼去想像它?確定組件在Flex中是否完全可見的算法?
如果我的主「下一個」和「上一個」按鈕在屏幕外,我想顯示或隱藏附加的「下一個」和「上一個」按鈕。
什麼事件最好聽'重新計算'? stage.resize?
謝謝!
是否有內置的方式來確定組件在Flex應用程序中是否完全可見(即,不是以某種方式離開屏幕)。如果不是,我會怎麼去想像它?確定組件在Flex中是否完全可見的算法?
如果我的主「下一個」和「上一個」按鈕在屏幕外,我想顯示或隱藏附加的「下一個」和「上一個」按鈕。
什麼事件最好聽'重新計算'? stage.resize?
謝謝!
您能否提供可見物品和容器的詳細信息?是否需要滾動某個容器才能進入按鈕?或者是某人拖動了flexlib的一個子窗口:MDICanvas部分在屏幕外?
我認爲如果組件的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;
}
這沒有考慮到組件的寬度或高度。 – jessecurry 2011-04-13 20:21:54