Adobe Flex 3 ヘルプ

カスタムコンポーネント内のスコープの設定

スコープの設定とは、主に、this キーワードがそのときどきにアプリケーション内の何を参照するかを記述することです。MXML ファイルの <mx:Script> タグ内では、this キーワードは常に現在のスコープを参照します。メインアプリケーションファイルは、<mx:Application> タグを含んでいます。つまりこのファイルにおける現在のスコープは Application オブジェクトであるため、this キーワードはその Application オブジェクトを参照します。

MXML コンポーネントでは、Flex がカスタムコンポーネントのコンテキスト内で実行します。現在のスコープは、ファイルのルートタグによって定義されます。したがって、this キーワードは Application オブジェクトではなく、MXML ファイルのルートタグによって定義されたオブジェクトを参照します。

スコープについて詳しくは、ActionScript の使用を参照してください。

MXML コンポーネントのルートタグには、id プロパティを含めることができません。したがって、コンポーネントの本体内のルートタグによって定義されたオブジェクトを参照する場合は、次の例で示すように this キーワードを使用する必要があります。

<?xml version="1.0"?>
<!-- mxml/myComponents/StateComboBoxThis.mxml -->

<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml" 
    close="handleCloseEvent(event);">

    <mx:Script>
        <![CDATA[

            import flash.events.Event;

            // Define a property to hold the current index.
            public var stateIndex:Number;               

            private function handleCloseEvent(eventObj:Event):void {
                stateIndex = this.selectedIndex;
            }   
        ]]>
    </mx:Script>

    <mx:dataProvider>   
        <mx:String>AK</mx:String>
        <mx:String>AL</mx:String>
    </mx:dataProvider>
</mx:ComboBox>

この例では、ComboBox コントロールが閉じるときに stateIndex プロパティを更新する ComboBox コントロールのイベントリスナーを定義しています。

 

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