Adobe Flex 3 ヘルプ

Alert コントロール

Flex のどのコンポーネントからも、Alert クラスの静的な show() メソッドを呼び出し、モーダルなポップアップダイアログボックスを表示できます。このポップアップダイアログボックスには、メッセージの他、オプションでタイトル、ボタンおよびアイコンを実装できます。次の例は、Alert コントロールのポップアップダイアログボックスを示しています。

Alert ÉRÉìÉgÉçÅ[ÉãÇÃÉ|ÉbÉvÉAÉbÉvÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉX

Alert コントロールは、ユーザーがこのコントロールのボタンを選択したとき、または Esc キーを押したときに閉じます。

Alert.show() メソッドのシンタックスは次のとおりです。

public static show(
    text:String, 
    title:String=null, 
    flags:uint=mx.controls.Alert.OK, 
    parent:Sprite=null, 
    clickListener:Function=null, 
    iconClass:Class=null, 
    defaultButton:uint=mx.controls.Alert.OK
):Alert

このメソッドは、Alert コントロールオブジェクトを返します。

次の表で、show() メソッドのパラメータについて説明します。

パラメータ

説明

text

(必須)ダイアログボックスに表示されるテキストメッセージを指定します。

title

ダイアログボックスのタイトルを指定します。省略した場合は、空白のタイトルバーが表示されます。

flags

ダイアログボックスに表示するボタンを指定します。オプションは次のとおりです。

mx.controls.Alert.OK 「OK」ボタン

mx.controls.Alert.YES 「Yes」ボタン

mx.controls.Alert.NO 「No」ボタン

mx.controls.Alert.CANCEL 「Cancel」ボタン

各オプションはビット値であり、パイプ(|)演算子を使用して、他のオプションと組み合わせることができます。これらのボタンは、コードで指定した順序とは無関係に、ここに示した順に表示されます。デフォルト値は mx.controls.Alert.OK です。

parent

Alert コントロールの親オブジェクトです。

clickListener

ボタンの click イベントに対するリスナーを指定します。

このハンドラに渡されるイベントオブジェクトは、CloseEvent クラスのインスタンスです。イベントオブジェクトには、detail というフィールドがあります。このフィールドは、クリックされたボタンの flag 値(mx.controls.Alert.OKmx.controls.Alert.CANCELmx.controls.Alert.YESmx.controls.Alert.NO のいずれか)になります。

iconClass

ダイアログボックスでメッセージテキストの左側に表示されるアイコンを指定します。

defaultButton

flags 引数の有効な値のいずれかを使用して、デフォルトのボタンを指定します。ユーザーが Enter キーを押したときに選択されるボタンになります。デフォルト値は Alert.OK です。

Escape キーを押すと、まるでそのボタンをクリックしたかのように、「Cancel」または「No」ボタンがトリガされます。

Alert コントロールを使用するには、まずアプリケーションに Alert クラスを読み込んでから、次の例のように show() メソッドを呼び出します。

<?xml version="1.0"?>
<!-- controls\alert\AlertSimple.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
        ]]>
    </mx:Script>

    <mx:TextInput id="myInput" 
        width="150" 
        text=""/>
    <mx:Button id="myButton" 
        label="Copy Text" 
        click="myText.text = myInput.text;
           Alert.show('Text Copied!', 'Alert Box', mx.controls.Alert.OK);"/>
    <mx:TextInput id="myText"/> 
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

この例では、Button コントロールが選択されると TextInput コントロールから TextArea コントロールにテキストがコピーされ、Alert コントロールが表示されます。

次の例に示すように、Button コントロールにイベントリスナーを定義することもできます。

<?xml version="1.0"?>
<!-- controls\alert\AlertSimpleEvent.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[        
            import mx.controls.Alert;

            private function alertListener():void {
                myText.text = myInput.text;
                Alert.show("Text Copied!", "Alert Box", Alert.OK);
            }
        ]]>
    </mx:Script>

    <mx:TextInput id="myInput" 
        width="150" 
        text=""/>
    <mx:Button id="myButton" 
        label="Copy Text" 
        click="alertListener();"/>
    <mx:TextInput id="myText"/> 
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

注意: show() メソッドによってダイアログボックスが作成された後、ダイアログボックスが開いたままになっていてもアプリケーションの処理は続行されます。

Alert コントロールのサイズ設定

Alert コントロールのサイズは、表示するテキスト、ボタンおよびアイコンが収まるよう自動的に調整されます。次の例のように、show() メソッドで返される Alert オブジェクトを使用すると、Alert コントロールのサイズを明示的に設定できます。

<?xml version="1.0"?>
<!-- controls\alert\AlertSize.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;

            // Define variable to hold the Alert object. 
            public var myAlert:Alert;

            private function openAlert():void {
                myAlert = Alert.show("Copy Text?", "Alert", 
                    Alert.OK    | Alert.CANCEL);
                // Set the height and width of the Alert control.
                myAlert.height=150;
                myAlert.width=150;
            }
        ]]>
    </mx:Script>

        <mx:TextInput id="myInput" 
            width="150" 
            text=""/>
        <mx:Button id="myButton" 
            label="Copy Text" 
            click="openAlert();"/>
        <mx:TextInput id="myText"/>
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

この例では、Alert オブジェクトの height プロパティと width プロパティを指定して、コントロールのサイズを明示的に設定しています。

Alert コントロールでイベントリスナーを使用する方法

次の例では、Alert コントロールのポップアップダイアログボックスにイベントリスナーを追加します。イベントリスナーを使用すると、Alert コントロールのボタンが選択されたときに実行する処理を指定できます。イベントリスナーに渡されるイベントオブジェクトは、CloseEvent 型です。

次の例では、ユーザーが Alert コントロールの「OK」ボタンを選択したときにテキストのみコピーします。

<?xml version="1.0"?>
<!-- controls\alert\AlertEvent.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.CloseEvent;

            private function alertListener(eventObj:CloseEvent):void {
                // Check to see if the OK button was pressed.
                if (eventObj.detail==Alert.OK) {
                    myText.text = myInput.text; 
                }
            }
        ]]>
    </mx:Script>

    <mx:TextInput id="myInput" 
        width="150" 
        text="" />
    <mx:Button id="myButton" 
        label="Copy Text" 
        click='Alert.show("Copy Text?", "Alert",
            Alert.OK | Alert.CANCEL, this,
            alertListener, null, Alert.OK);'/>
    <mx:TextInput id="myText"/>
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

この例では、Alert コントロールのイベントリスナーを定義します。イベントリスナーの本体内で、イベントオブジェクトの detail プロパティを調べ、どのボタンが押されたかを特定します。イベントオブジェクトは CloseEvent クラスのインスタンスです。ユーザーが「OK」ボタンを押した場合は、テキストをコピーします。ユーザーがそれ以外のボタンまたは Esc キーを押した場合は、テキストをコピーしません。

Alert コントロールアイコンの指定

Alert コントロールには、メッセージテキストの左側に表示されるアイコンを追加できます。次のコードは、前のセクションの例に Embed メタデータタグを追加してアイコンを読み込むように修正したものです。リソースの読み込みについて詳しくは、ActionScript の使用を参照してください。

<?xml version="1.0"?>
<!-- controls\alert\AlertIcon.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.CloseEvent;
            
            [Embed(source="assets/alertIcon.jpg")] 
            [Bindable]
            public var iconSymbol:Class; 

            private function alertListener(eventObj:CloseEvent):void {
                // Check to see if the OK button was pressed.
                if (eventObj.detail==Alert.OK) {
                    myText.text = myInput.text; 
                }
            }
        ]]>
    </mx:Script>

        <mx:TextInput id="myInput" 
            width="150" 
            text=""/>
        <mx:Button id="myButton" 
            label="Copy Text"
            click='Alert.show("Copy Text?", "Alert",
                Alert.OK | Alert.CANCEL, this,
                alertListener, iconSymbol,  Alert.OK );'/>
        <mx:TextInput id="myText"/>
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート