FlexでJavascriptのようなconfirm boxを実現

2701 ワード

Javascriptはブロックされており、confirm()を使用してユーザーの選択を取得し、ユーザーの選択結果に基づいて次の操作を続行できます.Flexは非ブロックであり、実行中にJSのconfirm()のようなユーザ選択を待って実行を継続する方法はない.Flexでは一般にAlert.show()にコールバック関数を付ける方式を用いてconfirm()を実現する.ここでは、Javascriptのconfirm()をシミュレートするための一般的な方法を書きました.すなわち、ユーザー確認ダイアログボックスをポップアップし、ユーザーが選択してから他の操作を続行します.原理は同じで、ただ一つの方法を変えて、もっと簡単に使うだけです.一般的な方法:===========================================================================================================================================================    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 params:Array = [evt];    confirmBox(「OK?」「確認ダイアログ」、func 1、params、func 2、null);}//ユーザークリック「YES」の処理private function func 1(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
10Alert.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.YES2- Alert.NO3- Alert.YES | Alert.NO4- Alert.OK5- Alert.OK | Alert.YES6- Alert.OK | Alert.NO7- Alert.OK | Alert.YES | Alert.NO8- Alert.CANCEL9- Alert.YES | Alert.CANCEL10- Alert.NO | Alert.CANCEL11- Alert.YES | Alert.NO | Alert.CANCEL12- Alert.OK | Alert.CANCEL13- Alert.OK | Alert.YES | Alert.CANCEL14- Alert.OK | Alert.NO | Alert.CANCEL15-Alert.OK|Alert.YES|Alert.NO|Alert.CANCEL 16-Alert.OK(4と同じ)
 
flagsを入力しない場合は、デフォルトは4です.つまり、「OK」ボタンのみです.