スコープの設定とは、主に、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 コントロールのイベントリスナーを定義しています。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート