2011-11-29 58 views
1

我试图建立在对窗口的左下角的一个固定位置上的Flex应用程序弹出通知。即使浏览器调整大小或滚动,弹出窗口(mx.TitleWindow)也会与浏览器一起修复。将底部属性设置为0,但在浏览器窗口调整大小或滚动时不起作用。有没有办法将弹出窗口设置为浏览器?Flex中是否有类似于html的固定位置?

+0

你真的想浏览器的大小?或者你想要Flex应用程序的大小?您将永远无法创建超出SWF视觉边界的Flex弹出窗口。 – JeffryHouser

+0

对不起,我改写了问题..这是(http://www.w3schools.com/cssref/playit.asp?filename=playcss_position&preval=fixed)的柔性可能吗? – Wenn

回答

1

为了实现这个功能,应用程序在应用程序更改其尺寸并将弹出窗口放置在适当位置时应该知道弹出父窗口(在本例中,创建弹出窗口并使用PopUpManager的组件,而不是第二个参数) 。尝试在主应用程序中添加调整大小侦听器,并从中派发自定义事件。侦听此事件,在弹出的父母,然后用重新弹出相应事件处理程序:

var application:UIComponent = FlexGlobals.topLevelApplication as UIComponent 
popup.x = 5; 
popup.y = application.height - 170; 

记住,这些坐标是相对于在浏览器中当前所观看的区域。这样,您可以将弹出窗口放置在一个固定的位置(在这种情况下,在左下角)。尝试使用UI组件失效机制(如果可能),以避免重复的维度计算。

的另一种方法来解决这个问题是要落实机制在主应用程序管理弹出窗口。在这两种情况下,定位代码应该是这样的。