Flex中实现类似Javascript的confirm box
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参数即可实现。
|
1
2
3
4
5
6
7
8
9
10
|
Alert.show("提示内容","提示标题",Alert.OK|Alert.CANCEL,null,function(e:CloseEvent):void{ if(e.detail == Alert.OK) { Alert.show("你点击了确定"); } else if(e.detail == Alert.CANCEL) { Alert.show("你点击了取消"); }}); |
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中实现类似Javascript的confirm box的更多相关文章
- Javascript之confirm的用法
confirm函数 confirm函数用于提供确认功能,它首先显示给定的message参数所包含的信息,并提供两个可选择的回答“ok”和“cancel”,然后等待用户选择其中的一个.如果用户选择“ok ...
- AS与JS相互通信(Flex中调用js函数)
转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是: 1.导入包 (import f ...
- SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】
一.添加一个新的FluorineFx的服务类项目OnLineService,删除原有的Sample.cs,并添加一个用户类定义与一个ApplicationAdpater类:如下: /*-- User. ...
- JSP编程中常用的JavaScript技术(转载)
1.<tronMouseOver=this.style.backgroundColor=’#FFFFFF’ onMouseOut=this.style.backgroundColor=”> ...
- Flex中escape/encodeURI/encodeURIComponent的区别
Flex中提供了三种转码函数,各有各的区别, escape,encodeURI,encodeURIComponent 这三个函数不仅在flex中有道运用在javascript中同样的含义 ,今天我仔细 ...
- 在Flex中推断是否在组件之外单击的技巧
在Flex中推断是否在组件之外单击的技巧 昨天在做Flex开发的时候.遇到了这样一种操作,之前也遇到过.那时的办法不是非常好,今天又碰上了类似的问题,先看一张图吧! watermark/2/text/ ...
- Python实现类似JavaScript 的Json对象
Python实现类似JavaScript 的Json对象 用过js的都知道 js中json也是一个对象,所以可以直接通过class.attr 取值,当attr不存在时也不会报错,那么Python可不可 ...
- JS 与Flex交互:html中的js 与flex中的actionScript通信
Flex与JavaScript交互的问题,这里和大家分享一下,主要包括Flex调用JavaScript中的函数和JavaScript调用Flex中的函数两大部分内容. Flex 与JavaScript ...
- 【JavaScript】javascript中伪协议(javascript:)使用探讨
javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行. 比如下面这个死链接: <a href="javasc ...
随机推荐
- mysql innodb锁简析(2)
继续昨天的innodb锁的分析: 注:此博文参考一下地址,那里讲的也很详细.http://xm-king.iteye.com/blog/770721 mysql事务的隔离级别分为四种,隔离级别越高,数 ...
- 开发者必读jQuery Mobile入门教程
你每天都会对着它讲话,和它玩游戏,用它看新闻——没错,它就是你裤兜里的智能手机.android,黑莓还是iphone?为了让你清楚意识到究竟哪些才算是智能手机,我在下面总结了一个智能手机系统/设备的列 ...
- javascript对象之 selectionStart selectionEnd
<script> function inserttag(){ var text=document.getElementById('con'); text.focus(); var star ...
- rtree
https://zh.wikipedia.org/wiki/R%E6%A0%91 http://blog.csdn.net/jiqiren007/article/details/5377750 htt ...
- SQL0668N 由于表 "db2inst1.test" 上的原因代码 "3",所以不允许操作(解因为LOAD引起的LOAD暂挂状态锁)
DB2解因为LOAD引起的LOAD暂挂状态锁 一般解锁命名是,SET INTEGRITY FOR temp_test IMMEDIATE CHECKED 但是load暂挂状态是解不了的,可以l ...
- Effective java笔记8--序列化
对象的序列化(object serialization)API,它提供了一个框架,用来将对象编码成一个字节流,以及从字节流编码中重新构建对象. 一.谨慎地实现Serializable 要想使一 ...
- YII Framework学习教程-YII的日志
日志的作用(此处省略1000字) YII中的日志很好很强大,允许你把日志信息存放到数据库,发送到制定email,存放咋文件中,意见显示页面是,甚至可以用来做性能分析. YII中日志的基本配置:/yii ...
- 【C++】统计代码覆盖率(二)
嗷嗷嗷!!!好激动,我好蠢.不过最后还是解决了.呜呜呜 有些都是东一块西一块查的,如果有侵权欢迎私信我,我注明出处. 一 gcov&CMake 昨天试了下测试代码和被测代码都是c++的情况,直 ...
- HDU5808Price List Strike Back (BestCoder Round #86 E) cdq分治+背包
严格按题解写,看能不能形成sum,只需要分割当前sum怎么由两边组成就好 #include <cstdio> #include <cstring> #include <c ...
- InputFormat 总结
在mr中的输入类,常见的InputFormat是TextInputFormat,也是mr默认的文件处理类,处理普通文本文件,作用是 1 每一行作为一个记录,将每一行在文件中的起始偏移量做为key,内容 ...