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
10
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」ボタンのみです.
通常は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.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」ボタンのみです.