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的更多相关文章

  1. Javascript之confirm的用法

    confirm函数 confirm函数用于提供确认功能,它首先显示给定的message参数所包含的信息,并提供两个可选择的回答“ok”和“cancel”,然后等待用户选择其中的一个.如果用户选择“ok ...

  2. AS与JS相互通信(Flex中调用js函数)

    转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是:     1.导入包 (import f ...

  3. SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】

    一.添加一个新的FluorineFx的服务类项目OnLineService,删除原有的Sample.cs,并添加一个用户类定义与一个ApplicationAdpater类:如下: /*-- User. ...

  4. JSP编程中常用的JavaScript技术(转载)

    1.<tronMouseOver=this.style.backgroundColor=’#FFFFFF’ onMouseOut=this.style.backgroundColor=”> ...

  5. Flex中escape/encodeURI/encodeURIComponent的区别

    Flex中提供了三种转码函数,各有各的区别, escape,encodeURI,encodeURIComponent 这三个函数不仅在flex中有道运用在javascript中同样的含义 ,今天我仔细 ...

  6. 在Flex中推断是否在组件之外单击的技巧

    在Flex中推断是否在组件之外单击的技巧 昨天在做Flex开发的时候.遇到了这样一种操作,之前也遇到过.那时的办法不是非常好,今天又碰上了类似的问题,先看一张图吧! watermark/2/text/ ...

  7. Python实现类似JavaScript 的Json对象

    Python实现类似JavaScript 的Json对象 用过js的都知道 js中json也是一个对象,所以可以直接通过class.attr 取值,当attr不存在时也不会报错,那么Python可不可 ...

  8. JS 与Flex交互:html中的js 与flex中的actionScript通信

    Flex与JavaScript交互的问题,这里和大家分享一下,主要包括Flex调用JavaScript中的函数和JavaScript调用Flex中的函数两大部分内容. Flex 与JavaScript ...

  9. 【JavaScript】javascript中伪协议(javascript:)使用探讨

    javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行. 比如下面这个死链接: <a href="javasc ...

随机推荐

  1. Windows执行打开文件命令

    ShellExecute(NULL, "open",  localFile.c_str(),  NULL, NULL, SW_SHOW);          会调用该文件类型关联的 ...

  2. selenium-grid2 远程并发控制用例执行

    今天闲来无事,随意看了一下selenium,突然注意到grid这个功能以前都是,在读有关selenium的文档时候知道有这么个grid远程控制的功能,但一直没有去试过.所以呢,今天就简单的做了这么个小 ...

  3. Microsoft Office 2010 requires 的 MSXML 版本 6.10.1129.0 be 已安装在您计算机的安装"的基于 Windows 7 的计算机上安装 Office 2010 时出现错误消息

    https://support.microsoft.com/zh-cn/kb/2290714

  4. [转]linux之more命令

    转自:http://www.cnblogs.com/peida/archive/2012/11/02/2750588.html more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示 ...

  5. spring开发相关网址

    jar包下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/

  6. Python异常记录

    1.常用异常名 AttributeError 调用不存在的方法引发的异常. EOFError 遇到文件末尾引发的异常. ImportError 导入模块出错引发的异常. IndexError 列表越界 ...

  7. AudioManager --- generateAudioSessionId

    AudioManager中的generateAudioSessionId方法介绍: 1.方法声明 pubilc void generateAudioSessionId(); 2.API描述 返回一个不 ...

  8. Python 最佳实践

    前言 对我来说,以前每次面试是我审视自己,检验自己的一种方式.每次准备面试,以及被面试官问住的时候才会发现,其实我python我学的还不够好.工作中也是,可以从其他的同事那里获得成长.但是我今天说的是 ...

  9. Java(jdk1.7) 陷阱

    String[] strA = new String[4]; for(int i=0; i<4; i++) { strA[i] = String.valueOf(i); } strA[0] = ...

  10. Android通过tcpdump抓包

    1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3. adb push c:\wherever_you_pu ...