package util {
import flash.text.TextFieldAutoSize;
import flash.utils.Dictionary;
import flash.utils.getQualifiedClassName;
import mx.binding.utils.BindingUtils;
import mx.containers.Panel;
import mx.core.UIComponent;
import mx.core.UITextField;
import mx.core.mx_internal;
use namespace mx_internal;
/**
* 遮罩工具类。
* 非Flex里面的mask概念,而是仿Ext的一层半透明控件
* @author simon.fish
*/
public class MaskUtil {
/**
* 存储已经建立遮罩的容器。
* 主要是去掉遮罩使用
* @default
*/
private static const cache:Dictionary = new Dictionary(true);
/**
*
*/
public function MaskUtil() {
//TODO: implement function
}
/**
* 建立遮罩
* @param container
* @return
*/
public static function mask(container:UIComponent,text:String=null):Boolean{
//先从缓存里面取遮罩 IUITextField(createInFontContext(UITextField))
var mask:UIComponent = cache[container] as UIComponent;
//如果取不出来,还未建立过遮罩
if(mask == null){
mask = new UIComponent();
mask.tabEnabled = false;
mask.alpha = 0.4;
//Alert的背景色
//mask.graphics.beginFill(14540252,100);
mask.graphics.beginFill(0xADA2A2);
//对于像Panel这样有title的特殊处理,以处理错位
if(container is Panel){
//得到标题栏高度,getHeaderHeightProxy为mx_internal.已经getHeaderHeightProxy需要3.2以上
var hh:Number = Panel(container).getHeaderHeightProxy()+1;
//left border
var lb:Number = container.getStyle("borderThicknessLeft");
mask.graphics.drawRect(0-lb, 0-hh, container.width, container.height);
}else{
mask.graphics.drawRect(0, 0, container.width, container.height);
}
//加文字
if(text != null ){
var textField:UITextField = createTextField(container);
textField.text = text;// " Loading... ";
mask.addChild(textField);
}
container.addChild(mask);
cache[container] = mask;
}else{
//如果已经建立过遮罩,直接设成可见
mask.visible = true;
}
return true;
}
/**
* 建立加载的遮罩
* @param container
* @return
*/
public static function loadMask(container:UIComponent):Boolean{
return mask(container," Loading... ");
}
/**
* 取消遮罩
* @param container
* @return
*/
public static function unmask(container:UIComponent):void{
//先从缓存里面取遮罩
var mask:UIComponent = cache[container] as UIComponent;
//只处理建立过遮罩
if(mask != null){
//如果已经建立过遮罩,直接设成不可见
mask.visible = false;
}
}
/**
* 创建中间的文字。
* @param container
* @return
*
*/
private static function createTextField(container:UIComponent):UITextField {
var className:String = getQualifiedClassName(UITextField);
var text = container.moduleFactory.create(className) as UITextField;
text.tabEnabled = false;
text.alpha = 0.4;
text.background = true;
text.borderColor = 0x31A5EA;
text.border = true;//BindingUtils.bindProperty(
text.thickness = 1;
text.selectable = true;
text.autoSize = TextFieldAutoSize.CENTER;
//text.backgroundColor = 0x06A0ED;
BindingUtils.bindProperty(text,"x",container,{
name:"width",
getter: function(host) { return (host.width-text.width)/2; }
});//(container.width - text.width) / 2);
BindingUtils.bindProperty(text,"y",container,{
name:"height",
getter: function(host) { return (host.height-text.height)/2; }
});
//BindingUtils.bindProperty(text,"y",container,(container.height - text.height) / 2);
// text.x = (container.width - text.width) / 2;
// text.y = (container.height - text.height) / 2;
return text;
}
}
}
仿Ext风格的遮罩工具类。
- 大小: 22.4 KB
分享到:
相关推荐
flex as3 遮罩的使用例子flex as3 遮罩的使用例子flex as3 遮罩的使用例子flex as3 遮罩的使用例子
flex与actionsctipt基础应用学习flex
自己整理的的一个仿Extjs局部遮罩,可带进度条。只是一个思路,组件有些小问题,比如组件大小改变时,遮罩没有随着组件大小变。大家使用时候可以优化了下。
Flex3.5以上版本,均可使用。采用遮罩方法对图片进行裁剪。
Ext3_MaskLayer Ext遮罩层
屏幕遮罩工具屏幕遮罩工具,遮住广告exe
flex抓屏 移动盒子 遮罩 抓取选取内容 QQ截图基本功能
开发工具与关键技术:Adobe Dreamweaver CC 作者:黄灿 撰写时间:2019.1.16 在模仿华为官方网页的练习当中我发现华为官网中有一个遮罩层是随便点击遮罩层的背景也能关闭掉遮罩层,但唯独点击内容区域不会关闭掉遮罩...
本文实例为大家分享了JavaScript仿flash遮罩动画的具体实现代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>仿flash遮罩动画</title&...
jQuery仿qq空间相册遮罩层图片切换,美观大气,档次高
多级分类鼠标触发在右边弹一个div的遮罩层.
模仿百度图片上的遮罩效果,随着鼠标移动,图片上的遮罩也在移动,无缝连接
Cesium地图反选遮罩,支持自定义遮罩颜色
模仿格力空调主页的部分内容,使用flex弹性布局进行布局,布局之后鼠标移动到图片上实现图片上添加遮罩层及实现背景图放大功能。
UE4 CanvasUI遮罩UE4 CanvasUI遮罩UE4 CanvasUI遮罩UE4 CanvasUI遮罩UE4 CanvasUI遮罩UE4 CanvasUI遮罩
1.可控制遮罩绘制时候是起始和终止点是矩形还是圆形 2.可控制遮罩颜色,用户自定义 3.可控制遮罩线条粗细,1~150像素范围内 4.可控制遮罩当前是绘图还是移动图片模式 5.添加橡皮擦功能 6.release模式下,20M以内的图...
这是遮罩处理的工具类,
JSP页面增加遮罩
C#/.Net WinForm窗口遮罩层工具实例(可直接使用),效果类似于网页的菊花转转的遮罩效果。
漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div 漂亮遮罩层css+div ...