如何在flex中居中对齐Alert.show()

时间:2014-03-26 12:10:18

标签: actionscript-3 flex actionscript flex4 flex3

我有一个很高的Flex应用程序,它使用Alert.show()来显示错误/警告消息。当错误消息在屏幕上居中时会产生问题,但在屏幕位于极端滚动位置(顶部或底部)时不可见。有什么方法可以在用户可查看页面的中心显示警报。我尝试了以下方法,但没有工作。

var errorMsg:Alert = Alert.show("Error message");
PopUpManager.centerPopUp(errorMsg);

提前致谢。

2 个答案:

答案 0 :(得分:4)

Alert通常以您在params中提供的父级为中心。

在以下静态方法父参数中使用(FlexGlobal.topLevelApplication as parent)作为参数。

Alert.show(text:String = "", title:String = "", flags:uint = 0x4, parent:Sprite = null, closeHandler:Function = null, iconClass:Class = null, defaultButtonFlag:uint = 0x4, moduleFactory:IFlexModuleFactory = null);

答案 1 :(得分:1)

以下是我的问题的解决方案,我已经使用javascript调用来实现这一目标。

var viewPoint:Number = ExternalInterface.call("eval", "window.pageYOffset");
var browserHeight:Number = ExternalInterface.call("eval", "window.innerHeight");
//the following calculation finds the center y coordinate in user's viewable page.
var viewableY : Number = ((browserHeight/2)+viewPoint-50);
var alert : Alert = Alert.show("Error Msg");
PopUpManager.centerPopUp(alert);
alert.move(400,viewableY);

我希望这有助于某人...