我开发了一个应用程序,它包含很多警报消息,我希望在屏幕的特定位置显示所有警报消息。我尝试了以下代码,但它适用于各个警报消息。有什么方法可以申请我的应用程序中的所有警报消息。
myAlert = Alert.show('Hello World');
PopUpManager.centerPopUp(myAlert);
myAlert.x = 0;
myAlert.y = 0;
先谢谢
答案 0 :(得分:0)
与建议的www-flextras.com一样,您可以使用这样的类来放置逻辑以定位警报消息。
您需要等待CREATION_COMPLETE
事件,然后才能设置警报的位置。请注意,您还可以在以下示例中使用_alert.move(_nextX, _nextY)
。
package
{
import flash.display.Sprite;
import mx.controls.Alert;
import mx.core.IFlexModuleFactory;
import mx.events.FlexEvent;
public class MyAlertFactory
{
private static const MAX_WIDTH:uint = 320;
private static const MAX_HEIGHT:uint = 280;
private static var _nextX:int = 0;
private static var _nextY:int = 0;
public static function show(text:String, title:String = "",
flags:uint = 4, parent:Sprite = null,
closeHandler:Function = null,
iconClass:Class = null,
defaultButtonFlag:uint = 4,
moduleFactory:IFlexModuleFactory = null):Alert {
var alert:Alert = Alert.show(text, title, flags, parent,
closeHandler, iconClass, defaultButtonFlag, moduleFactory);
alert.addEventListener(FlexEvent.CREATION_COMPLETE, handleAlertCreation);
return alert;
}
private static function handleAlertCreation(event:FlexEvent):void
{
_nextX = (_nextX + 20) % MAX_WIDTH;
_nextY = (_nextY + 15) % MAX_HEIGHT;
var alert:Alert = Alert(event.currentTarget);
alert.x = _nextX;
alert.y = _nextY;
alert.removeEventListener(FlexEvent.CREATION_COMPLETE, handleAlertCreation);
}
}