Flex中实现类似Javascript的confirm box
2013-10-12 10:54
513 查看
Javascript是阻塞的,你可以使用confirm()来获取用户的选择,并根据用户的选择结果继续下面的操作。
Flex是非阻塞的,在执行过程中没有类似JS中confirm()那种等待用户选择后继续执行的方式。
在Flex一般使用Alert.show()加上回调函数的方式,实现confirm()。在此,我写了一个通用的方法,可以用来模拟Javascript中的confirm(),即弹出用户确认对话框,用户选择后再继续执行其他的操作。
原理是一样的,只是换一种方式,用起来更加简单而已。
通用方法:
========================================================
private function confirmBox(msg:String,title:String,successFunc:Function,successParams:Array,failFunc:Function=null,failParams:Array=null):void{
var alert:Alert = Alert.show(msg,title, Alert.YES|Alert.NO, this,
function(evt:CloseEvent):void{
if(evt.detail == Alert.YES){
if(successFunc!=null) successFunc.apply(this,successParams);
}else{
if(failFunc!=null) failFunc.apply(this,failParams);
}
},
null, Alert.YES);
}
使用例子:
========================================================
var bb:Button = new Button;
bb.label = "click me";
bb.addEventListener(MouseEvent.CLICK,testConfirm);
this.addChild(bb);
//调用上述函数的方法
private function testConfirm(evt:Event):void{
var params:Array = [evt];
confirmBox("确定吗?","确认对话框",func1,params,func2,null);
}
//用户点击”YES“的处理
private function func1(evt:Event):void{
Alert.show((evt.target as Button).label.toString());
}
//用户点击”NO“的处理
private function func2():void{
Alert.show("123");
}
平时都是使用Alert.show弹出一个警告对话框,事实上Alert.show也可以实现类似javascript中window.confirm的效果,通过flags参数即可实现。
flags属性可以以下类型的任意一种:
1- Alert.YES
2- Alert.NO
3- Alert.YES | Alert.NO
4- Alert.OK
5- Alert.OK | Alert.YES
6- Alert.OK | Alert.NO
7- Alert.OK | Alert.YES | Alert.NO
8- Alert.CANCEL
9- Alert.YES | Alert.CANCEL
10- Alert.NO | Alert.CANCEL
11- Alert.YES | Alert.NO | Alert.CANCEL
12- Alert.OK | Alert.CANCEL
13- Alert.OK | Alert.YES | Alert.CANCEL
14- Alert.OK | Alert.NO | Alert.CANCEL
15- Alert.OK | Alert.YES | Alert.NO | Alert.CANCEL
16- Alert.OK (和4一样)
如果不填写flags,默认为4,即只有“确定”按钮
Flex是非阻塞的,在执行过程中没有类似JS中confirm()那种等待用户选择后继续执行的方式。
在Flex一般使用Alert.show()加上回调函数的方式,实现confirm()。在此,我写了一个通用的方法,可以用来模拟Javascript中的confirm(),即弹出用户确认对话框,用户选择后再继续执行其他的操作。
原理是一样的,只是换一种方式,用起来更加简单而已。
通用方法:
========================================================
private function confirmBox(msg:String,title:String,successFunc:Function,successParams:Array,failFunc:Function=null,failParams:Array=null):void{
var alert:Alert = Alert.show(msg,title, Alert.YES|Alert.NO, this,
function(evt:CloseEvent):void{
if(evt.detail == Alert.YES){
if(successFunc!=null) successFunc.apply(this,successParams);
}else{
if(failFunc!=null) failFunc.apply(this,failParams);
}
},
null, Alert.YES);
}
使用例子:
========================================================
var bb:Button = new Button;
bb.label = "click me";
bb.addEventListener(MouseEvent.CLICK,testConfirm);
this.addChild(bb);
//调用上述函数的方法
private function testConfirm(evt:Event):void{
var params:Array = [evt];
confirmBox("确定吗?","确认对话框",func1,params,func2,null);
}
//用户点击”YES“的处理
private function func1(evt:Event):void{
Alert.show((evt.target as Button).label.toString());
}
//用户点击”NO“的处理
private function func2():void{
Alert.show("123");
}
平时都是使用Alert.show弹出一个警告对话框,事实上Alert.show也可以实现类似javascript中window.confirm的效果,通过flags参数即可实现。
1- Alert.YES
2- Alert.NO
3- Alert.YES | Alert.NO
4- Alert.OK
5- Alert.OK | Alert.YES
6- Alert.OK | Alert.NO
7- Alert.OK | Alert.YES | Alert.NO
8- Alert.CANCEL
9- Alert.YES | Alert.CANCEL
10- Alert.NO | Alert.CANCEL
11- Alert.YES | Alert.NO | Alert.CANCEL
12- Alert.OK | Alert.CANCEL
13- Alert.OK | Alert.YES | Alert.CANCEL
14- Alert.OK | Alert.NO | Alert.CANCEL
15- Alert.OK | Alert.YES | Alert.NO | Alert.CANCEL
16- Alert.OK (和4一样)
如果不填写flags,默认为4,即只有“确定”按钮
相关文章推荐
- Javascript+CSS实现alert、 confirm、pormpt例子
- javascript实现类似C# String的format方法
- 重写javascript的Array.prototype.push方法实现类似java.util.set添加不重复元素
- 结合FlexboxLayout实现标签选择功能
- javascript实现类似超链接的效果
- Javascript实现类似C#类的封装
- javascript 实现类似C#中字符串的Trim()方法
- JavaScript实现模糊推荐的input框(类似百度搜索框)
- javascript 实现的类似hao123的多邮箱登录效果
- javascript简单实现类似QQ头像弹出效果的方法
- javascript实现类似google和msn space的拖拽
- JavaScript实现类似QQ、MSN消息提示的效果(转载)
- Javascript实现类似PHP的print_r函数
- Javascript实现的类似Google的Div拖动效果代码
- asp javascript 通过放大切换图片实现类似屏保效果
- javascript实现类似java中getClass()得到对象类名的方法
- 使用-webkit-box-flex 实现 一半文本显示完全 一半文本宽度自适应
- c#中实现类似js的Eval|.NET中执行Javascript(表达式是字符串的计算)
- 在javascript中实现类似asp.net webcontrol中的render的方法
- 自由添加菜单,类似易趣的管理页面中的那些小菜单.javascript实现,可跨多种浏览器