接上一篇 Flex锁定页面遮罩【原创】
功能:主要模仿Alert对话框锁定页面,然后给出加载提示
效果图如下:
代码如下:


<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
< mx:HBox xmlns:mx = " http://www.adobe.com/2006/mxml "
width = " 100% "
height = " 100% "
styleName = " loadmask "
horizontalAlign = " center "
verticalAlign = " middle "
backgroundColor = " #FFFFFF "
backgroundAlpha = " 0.4 " >
< mx:Style >
.loadmask
{
modal - transparency - blur: 0 ;
}
</ mx:Style >
< mx:SWFLoader source = " com/esri/solutions/flexviewer/assets/flash/loader.swf "
autoLoad = " true " />
< mx:Label text = " 正在加载... "
fontSize = " 12 "
fontFamily = " 微软雅黑 " />
</ mx:HBox >
< mx:HBox xmlns:mx = " http://www.adobe.com/2006/mxml "
width = " 100% "
height = " 100% "
styleName = " loadmask "
horizontalAlign = " center "
verticalAlign = " middle "
backgroundColor = " #FFFFFF "
backgroundAlpha = " 0.4 " >
< mx:Style >
.loadmask
{
modal - transparency - blur: 0 ;
}
</ mx:Style >
< mx:SWFLoader source = " com/esri/solutions/flexviewer/assets/flash/loader.swf "
autoLoad = " true " />
< mx:Label text = " 正在加载... "
fontSize = " 12 "
fontFamily = " 微软雅黑 " />
</ mx:HBox >


package com.esri.solutions.flexviewer.components.expandControl
{
import flash.display.DisplayObject;
import mx.managers.PopUpManager;
import com.esri.solutions.flexviewer.components.LoadMasks;
public class MaskClass
{
private static var loadMask:LoadMasks = new LoadMasks();
public function MaskClass()
{
}
public static function LoadMask(obj:DisplayObject): void
{
loadMask.width = obj.width;
loadMask.height = obj.height;
PopUpManager.addPopUp(loadMask, obj, false );
PopUpManager.centerPopUp(loadMask);
}
public static function RemoveLoadMask(): void
{
PopUpManager.removePopUp(loadMask);
}
}
}
{
import flash.display.DisplayObject;
import mx.managers.PopUpManager;
import com.esri.solutions.flexviewer.components.LoadMasks;
public class MaskClass
{
private static var loadMask:LoadMasks = new LoadMasks();
public function MaskClass()
{
}
public static function LoadMask(obj:DisplayObject): void
{
loadMask.width = obj.width;
loadMask.height = obj.height;
PopUpManager.addPopUp(loadMask, obj, false );
PopUpManager.centerPopUp(loadMask);
}
public static function RemoveLoadMask(): void
{
PopUpManager.removePopUp(loadMask);
}
}
}
不足点提示:其实说白了该功能就是在控件上加一个层,然而该层是固定的,它只属于控件的最顶级,如果控件移动了,改遮罩层不会随控件移动或移除
完......