パッケージmx.states
public class State
継承State Inheritance EventDispatcher Inheritance Object

State クラスにより、コンポーネントの特定のビューである、ビューステートが定義されます。たとえば、製品サムネールには、最小限の情報だけを表示する基本ビューステートと、追加情報を含む詳細ビューステートの 2 つのビューステートを定義できます。overrides プロパティは、基本ビューステートに対して追加または削除する子クラスのセット、ビューステートが有効な場合に設定するプロパティ、スタイル、およびイベントハンドラを指定します。

State クラスは、Flex コンポーネントの states プロパティで使用します。states プロパティは、アプリケーションまたはカスタムコントロールのルートにのみ指定できます。子コントロールには指定できません。

ビューステートを有効にするには、コンポーネントの currentState プロパティを設定します。

MXML シンタックスexpandedMXML シンタックスの非表示

<mx:State> タグには、以下の属性があります。

 <mx:State プロパティ basedOn="null" name="null" overrides="null" /> 

デフォルトの MXML プロパティoverrides

例の表示

関連項目

mx.states.AddChild
mx.states.RemoveChild
mx.states.SetEventHandler
mx.states.SetProperty
mx.states.SetStyle
mx.states.Transition


パブリックプロパティ
 プロパティ定義
  basedOn : String
この表示状態が基礎とするビューステートの名前。この表示状態が指定されたビューステートに基づいていない場合は、null になります。
State
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  name : String
ビューステートの名前です。
State
  overrides : Array
IOverride インターフェイスを実装するオブジェクトの配列としての、ビューステートのオーバーライドです。
State
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義
  State()
コンストラクタ。
State
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
  enterState ビューステートに移行したときに送出されます。State
  exitState ビューステートが終了する前に送出されます。State
プロパティの詳細
basedOnプロパティ
public var basedOn:String

この表示状態が基礎とするビューステートの名前。この表示状態が指定されたビューステートに基づいていない場合は、null になります。この値が null の場合、表示状態は、State クラスを使用しないでコンポーネントに定義するプロパティ、スタイル、イベントハンドラ、および子で構成されるルート状態に基づきます。

デフォルト値null.

nameプロパティ 
public var name:String

ビューステートの名前です。State 名は特定のコンポーネントに対して一意である必要があります。このプロパティは設定する必要があります。

overridesプロパティ 
public var overrides:Array

IOverride インターフェイスを実装するオブジェクトの配列としての、ビューステートのオーバーライドです。これらのオーバーライドは、このビューステートに移行すると順番に適用され、ビューステートが終了すると逆の順序で削除されます。

次の Flex クラスで IOverride インターフェイスを実装して、ビューステート特性を定義します。

overrides プロパティは、State クラスのデフォルトプロパティです。MXML タグのシンタックスを使用してオーバーライドを定義する場合は、<mx:overrides> タグとその子 <mx:Array> タグを省略できます。

コンストラクタの詳細
State()コンストラクタ
public 関数 State()

コンストラクタ。

イベントの詳細
enterStateevent 
イベントオブジェクトの型: mx.events.FlexEvent
FlexEvent.type property = mx.events.FlexEvent.ENTER_STATE

ビューステートに移行したときに送出されます。このイベントは、基本ビューステートへの変更が適用された後に送出されます。

FlexEvent.ENTER_STATE 定数により、applicationComplete イベントのイベントオブジェクトの type プロパティ値が定義されます。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
exitStateevent  
イベントオブジェクトの型: mx.events.FlexEvent
FlexEvent.type property = mx.events.FlexEvent.EXIT_STATE

ビューステートが終了する前に送出されます。このイベントは、基本ビューステートへの変更が削除される前に送出されます。

FlexEvent.EXIT_STATE 定数により、applicationComplete イベントのイベントオブジェクトの type プロパティ値が定義されます。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
StatesExample
<?xml version="1.0" ?>
<!-- Simple example to demonstrate the States class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <!-- Define one view state, in addition to the base state.-->
    <mx:states>
        <mx:State name="Register">
            <mx:AddChild relativeTo="{loginForm}" position="lastChild">
                <mx:target>
                    <mx:FormItem id="confirm" label="Confirm:">
                        <mx:TextInput/>
                    </mx:FormItem>
                </mx:target>
            </mx:AddChild>
            <mx:SetProperty target="{loginPanel}" name="title" value="Register"/>
            <mx:SetProperty target="{loginButton}" name="label" value="Register"/>
            <mx:SetStyle target="{loginButton}" 
                name="color" value="blue"/>
            <mx:RemoveChild target="{registerLink}"/>
            <mx:AddChild relativeTo="{spacer1}" position="before">
                <mx:target>
                    <mx:LinkButton id="loginLink" label="Return to Login" click="currentState=''"/>
                </mx:target>
            </mx:AddChild>
        </mx:State>
    </mx:states>

    <!-- Define a Panel container that defines the login form.-->
    <mx:Panel title="Login" id="loginPanel" 
        horizontalScrollPolicy="off" verticalScrollPolicy="off"
        paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">

        <mx:Text width="100%" color="blue"
            text="Click the 'Need to Register?' link to change state. Click the 'Return to Login' link to return to the base state."/>

        <mx:Form id="loginForm" >
            <mx:FormItem label="Username:">
                <mx:TextInput/>
            </mx:FormItem>
            <mx:FormItem label="Password:">
                <mx:TextInput/>
            </mx:FormItem>
        </mx:Form>
        <mx:ControlBar>
            <mx:LinkButton id="registerLink"  label="Need to Register?"
                click="currentState='Register'"/>
            <mx:Spacer width="100%" id="spacer1"/>
            <mx:Button label="Login" id="loginButton"/>
        </mx:ControlBar>
    </mx:Panel>
</mx:Application>