在关闭AIR程序窗口前显示Alert

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:在关闭AIR程序窗口前显示Alert
  • 本文链接:http://zengrong.net/post/631.htm

AIRClose.mxml

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
                        layout="vertical" showStatusBar="false"
                        closing="closeHandler(event)">
    <mx:Script>
        <![CDATA[
            import org.zengrong.utils.Dialog;
            private function closeHandler(evt:Event):void
            {
                trace(evt.toString());
                evt.preventDefault();
                Dialog.confirm('确定退出?', _close);
            }

            private function _close($yes:Boolean):void
            {
                if($yes) this.nativeApplication.exit();
            }

        ]]>
    </mx:Script>    
</mx:WindowedApplication>

有关Dialog的用法与最新源码,详见zrong’s as3lib(下附源码)

Dialog.as

package org.zengrong.utils
{
    import flash.display.Sprite;

    import mx.controls.Alert;
    import mx.core.Application;
    import mx.events.CloseEvent;

    public class Dialog
    {
        public static function alert($info:String, $title:String=''):void
        {
            Alert.show($info, $title, 4, Application.application as Sprite);
        }

        /**
        * 弹出confirm确认对话框,根据用户的交互返回是否确认布尔值
        * @param $s 要显示的信息
        * @param $closeFun 关闭确认对话框时调用的函数
        */
        public static function confirm($s:String, $closeFun:Function):void
        {
            var __fun:Function = function(evt:CloseEvent):void
            {
                $closeFun(evt.detail == Alert.YES);
            }
            Alert.show($s, '', Alert.YES|Alert.NO, Application.application as Sprite, __fun);
        }
    }
}