zoukankan      html  css  js  c++  java
  • 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,即只有“确定”按钮

  • 相关阅读:
    PHP腾讯地图地图接口调用提示{ "status": 110, "message": "请求来源未被授权,此次请求无来源信息" }
    PHP带参数匿名函数
    微信小程序实现图片预加载(图片延迟加载)
    快速排序
    《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程
    《Linux命令行与shell脚本编程大全》第十七章 创建函数
    makefile中伪目标的理解
    《Linux命令行与shell脚本编程大全》第十六章 控制脚本
    《Linux命令行与shell脚本编程大全》第十五章 呈现数据
    《Linux命令行与shell脚本编程大全》第十四章 处理用户输入
  • 原文地址:https://www.cnblogs.com/exmyth/p/3364845.html
Copyright © 2011-2022 走看看