Flex

You are currently browsing the archive for the Flex category.

概要


前回作成したAir for Android用 Alertダイアログをベースに、質問ダイアログを作成しました。

Alertダイアログでは、Yes,No,Cancelからの選択でしたが、今回作成したダイアログでは任意の文字列をボタンに割り当てられるようにしました。ボタンの数も自由に変更できます。(画面に表示可能な範囲で)
 


仕様


AlertDialogからのチョイ変です。

  1. static関数 CustomQuestionDialog.show()で表示
  2. ダイアログが閉じたときに、CloseEventをディスパッチ
  3. CloseEvent.detailに、選択結果(選択されたボタンのインデックス)を格納

としました。

 

ダウンロード


  ・ライブラリファイル(.swcファイル)
  ・プロジェクトファイル(.zip)
  ・ASDoc(APIリファレンス)

 

使い方


1. ライブラリファイル(CustomQuestionDialog.swc)を、プロジェクトのlibフォルダにおきます。




 

2.確認ダイアログを表示したいときに、CustomQuestionDialog.show()関数を呼びます。

1
2
3
4
5
6
7
CustomQuestionDialog..show(
                   this,
                   "メッセージ",
                   "タイトル",
                   ["選択肢1","選択肢2","選択肢3"]
                   onCloseQuestionDialog
                );

引数として、

  1. ダイアログの親のDisplayObject
  2. 表示するメッセージ
  3. ダイアログのタイトル
  4. ボタンに表示するテキスト(選択肢)の配列
  5. ダイアログが閉じたときに呼ばれる関数 (CloseEventのEventListenner, デフォルト: null)

を指定します。

 

3.確認ダイアログが閉じたときに呼ばれる関数(CloseEventのEventListener)を作成します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/** Dialogが閉じたときに呼ばれる関数 */
private function onCloseQuestionDialog
        (event:CloseEvent):void        
{
    /* ボタンの押下結果を取得する */
    var result:int = event.detail;
           
    if(result == 0)
    {
        /* 0番目のボタンを選択したとき */
        trace(0);
    }
    else if(result == 1)
    {
        /* 1番目のボタンを選択したとき */
        trace(1);
    }
    else if(result == 2)
    {
        /* 2番目のボタンを選択したとき */
        trace(2);
    }
    else if(result == -1)
    {
        /* xボタンでキャンセルしたとき */
        trace(-1);
    }
    else
    {
        /* 未到達コード */
        trace("その他");
    }
}

CloseEventのdetailに、ダイアログでのボタンの押下結果が含まれます。

  ・0番目(1番上のボタン)が選ばれたときは、1
  ・1番目(上から2番目のボタン)が選ばれたときは、2
  ・………
  ・キャンセル(xボタン)が選ばれたときは、-1
 
が格納されます。