false の場合、横のグリッド線を非表示にします。水平スクロールバーのスタイル名です。追加の行間を表します。コンポーネントの親コンテナの左端からコンポーネントの左端までの水平距離 (ピクセル単位) を表します。行の下端と、行内のレンダラーの下端の間のピクセル数です。コンテナの左の境界とコンテンツ領域の左端との間のピクセル数です。コンテナの右の境界とコンテンツ領域の右端との間のピクセル数です。行の上端と、行内のレンダラーの上端の間のピクセル数です。コンポーネントの右端から親コンテナの右端までの水平距離 (ピクセル単位) を表します。マウスポインタが置かれているときの行の背景色です。ユーザーが行内のアイテムレンダラーを選択した場合の行の背景色です。コンポーネントが無効になっているときに適用するレンダラーの背景色です。選択エフェクトの継続時間です。ドロップシャドウの方向です。ドロップシャドウの幅です。列のソート方向を示す矢印のスキンとして使用するクラスです。列をサイズ変更できることを示すカーソルのスキンとして使用するクラスです。
コンテナ内のテキストの整列
テキストに下線を表示するかどうかを指定します。テキストの 1 行目のコンテナ左端からのオフセット (ピクセル単位) です。レンダラーにマウスポインタが置かれているときのレンダラーの色です。レンダラーが選択されたときのレンダラーのテキスト色です。コンポーネントのテーマカラーです。コンポーネントの親コンテナの上端からコンポーネントの上端までの垂直距離 (ピクセル単位) を表します。マウスポインタが置かれている行をハイライト表示するかどうかを制御するフラグです。行内のレンダラーの垂直方向の配置です。コンポーネントの親コンテナの中心からコンポーネントの中心までの垂直距離 (ピクセル単位) を表します。
縦のグリッド線の色
列の間に縦のグリッド線を表示するかどうかを示すフラグです。true の場合、縦のグリッド線を表示します。false の場合、縦のグリッド線を非表示にします。垂直スクロールバーのスタイル名です。
継承されるエフェクトの非表示
継承されるエフェクトの表示
コンポーネントがコンテナに子として追加されたときに再生されます。コンポーネントが作成されたときに再生されます。コンポーネントがキーボードフォーカスを取得したときに再生されます。コンポーネントがキーボードフォーカスを失ったときに再生されます。コンポーネントが不可視状態になったときに再生されます。ユーザーがコンポーネント上でマウスボタンを押したときに再生されます。ユーザーがコンポーネント上でマウスボタンを離したときに再生されます。コンポーネントが移動されたときに再生されます。コンポーネントがコンテナから削除されたときに再生されます。コンポーネントのサイズが変更されたときに再生されます。ユーザーがマウスを移動し、ポインタがコンポーネントから離れたときに再生されます。ユーザーがマウスポインタをコンポーネント上に置いたときに再生されます。コンポーネントが表示されたときに再生されます。
継承されるパブリック定数の非表示
継承されるパブリック定数の表示
プロパティの詳細
明示的に設定されていない場合、DataGrid コントロールは、一連のプロパティを特定してそれらのプロパティをアルファベット順に表示するため、最初のデータプロパイダアイテムを調べようと試みます。列のセットを変更する場合は、この配列を取得し、列および配列内の列順を変更してから、columns プロパティに新しい配列を割り当てる必要があります。これは、DataGrid コントロールにより列の配列の新しいコピーが返され、変更を加えても、その変更が認識されないためです。このプロパティはデータバインディングのソースとして使用できます。列の順序をユーザーが変更できるかどうかを示すフラグです。true の場合、ユーザーはヘッダセルをドラッグすることで DataGrid コントロールの列の順序を変更できます。データプロバイダ内のアイテムをユーザーが編集できるかどうかを示すフラグです。true の場合、コントロール内のアイテムが編集可能です。ユーザーは、アイテムレンダラーをクリックすることでエディタを開くことができます。
編集中のデータプロバイダアイテムに対応するアイテムレンダラーの列と行のインデックスです (存在する場合)
次に例を示します。このプロパティを設定すると、アイテムが表示されるまでスクロールし、itemEditBegin イベントを送出して、指定されたアイテムレンダラーでアイテムエディタが開きます。このプロパティはデータバインディングのソースとして使用できます。編集中のアイテムが位置する DataGrid コントロール内のアイテムレンダラーへの参照です。data プロパティを使用して編集されているアイテムの現在値にアクセスできます。左端からコンテンツへのオフセットです。これは、一部のサブクラスではピクセルのオフセットまたはその他のメトリック (DataGrid コントロール内の列の数など) とすることができます。これは、ピクセル単位でスクロールする List コントロールとは異なります。IME (入力メソッドエディタ) のモードを指定します。IME を使用することによって、ユーザーは中国語、日本語、および韓国語のテキストを入力できます。Flex では、コントロールにフォーカスが置かれたときに、IME を指定されたモードに設定し、コントロールからフォーカスが離れたときに、元のモードに戻します。
現在アクティブなアイテムエディタのインスタンスへの参照です (存在する場合)
アイテムの編集中にアイテムエディタのインスタンスと新しいアイテム値にアクセスするには、itemEditorInstance プロパティを使用します。itemEditor プロパティは、アイテムエディタのクラス (つまり、アイテムエディタインスタンスのデータ型) を定義します。MXML でこのプロパティを設定することはありません。
列の最小幅です (ピクセル単位)
NaN ではない場合は、DataGrid コントロールよってこの値がすべての列の最小幅として適用されます。それ以外の場合は、個々の列に最小幅を指定できます。列のサイズをユーザーが変更できるかどうかを示すフラグです。true の場合、ユーザーはヘッダセル間のグリッド線をドラッグすることで DataGrid コントロールの列を拡大または縮小できます。データプロバイダアイテムをユーザーが列ヘッダーセルのクリック操作でソートできるかどうかを示すフラグです。true の場合、ユーザーが列ヘッダセルをクリックすることによってデータプロバイダアイテムをソートできます。列が複数回クリックされると、ソートの昇順と降順が切り替わります。
コンストラクタの詳細
メソッドの詳細
列のサイズ変更時にユーザーが通常使用する列ヘッダセパレータを削除します。itemEditBegin イベントに対するイベントリスナー内からのみ、このメソッドを呼び出すことができます。このメソッドは、アイテムレンダラーに対して現在開いているアイテムエディタを閉じます。示されたカラーを使用して列の背景を描画します。この実装では、入力された Sprite オブジェクトの子として Shape オブジェクトを作成し、適切な色で塗り潰します。一番左の可視状態の列の列インデックスが 0 になります。これにより、特定の列の DataGridColumn のインデックスが変更された場合でも、同じ表示オブジェクトをその列で再使用することが可能です。コンポーネントの幅が変更された場合、描画されたグラフィックが水平方向に拡大・縮小されるか、このメソッドが再度呼び出されて、異なる幅や高さで再描画が行われます。行間に線を描画します。この実装では、特定の Sprite オブジェクト内に線を直接描画します。Sprite オブジェクトは、線が描画される前にクリアされます。ヘッダはカウント外で、一番上の可視状態の行の行インデックスが 0 になります。背景の描画に使用するオブジェクトは、このインデックスに基づいて管理されます。これにより、特定の行でレンダリングするアイテムのインデックスが変更された場合でも、同じ表示オブジェクトをその行で再使用することが可能です。列の間の線と、列の背景を描画します。位置、高さ、色の指定に従って行の背景を描画します。この実装では、入力された Sprite オブジェクトの子として Shape オブジェクトを作成し、適切な色で塗り潰します。ヘッダはカウント外で、一番上の可視状態の行の行インデックスが 0 になります。背景の描画に使用するオブジェクトは、このインデックスに基づいて管理されます。これにより、特定の行でレンダリングするアイテムのインデックスが変更された場合でも、同じ表示オブジェクトをその行で再使用することが可能です。これを使用して、たとえば 10 番目のアイテムの色を変更できます。列のサイズ変更時にユーザーが通常使用する列ヘッダセパレータを作成して表示します。列間に線を描画します。この実装では、特定の Sprite オブジェクト内に線を直接描画します。Sprite オブジェクトは、線が描画される前にクリアされます。一番左の可視状態の列の列インデックスが 0 になります。ソート矢印グラフィックを、現在のソートキーとなっている列に描画します。この実装では、sortArrowSkin スタイルプロパティで指定されたスキンのインスタンスを作成または再使用し、適切な列ヘッダに配置します。また、ヘッダ内のテキストがソート矢印によって隠れる場合は、列ヘッダのサイズを縮小します。
イベントの詳細
イベントオブジェクトの型: mx
ユーザーが列の幅を変更したときに送出され、その列に表示されるデータ量が変化したことを示します。また、サイズ変更された列からもこのイベントが送出されます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
列に関連付けられているデータ内のフィールドまたはプロパティの名前です。マウスの x 座標です。データプロバイダのアイテムの 0 から始まるインデックスです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
イベントオブジェクトの型: mx
ユーザーが列のコンテンツに基づいてグリッドコンテンツをソートするようにコントロールに要求するために、列ヘッダの上でマウスボタンを離したときに送出されます。列が並べ替え可能であり、データプロバイダでソートがサポートされる場合にのみ送出されます。DataGrid コントロールは、このイベントに対して、単一列のソートを実装するデフォルトハンドラを持ちます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
列に関連付けられているデータ内のフィールドまたはプロパティの名前です。リリース中のヘッダレンダラーです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
イベントオブジェクトの型: mx
ユーザーが列を新しい位置にドラッグした後、列ヘッダの上でマウスボタンを離し、新しいインデックスに列が移動したときに送出されます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
このイベントがマウスによって発生したものなのか、キーボード操作によって発生したものなのかを示します。変更後のヘッダの 0 から始まるインデックスです。変更前のヘッダの 0 から始まるインデックスです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。このイベントをトリガしたイベントです。
イベントオブジェクトの型: mx
このイベントのデフォルトリスナーは、次のアクションを実行します。data プロパティをアイテムからエディタにコピーします。デフォルトでは、アイテムエディタオブジェクトは、TextInput コントロールのインスタンスです。リストコントロールの itemEditor プロパティを使用して、独自のアイテムエディタクラスを指定します。このイベントのイベントリスナーを記述して、アイテムエディタに渡されるデータを変更できます。たとえば、データ、データのフォーマット、またはアイテムエディタで使用するその他の情報を変更できます。イベントリスナーを作成して、アイテムの編集に使用するアイテムエディタを指定することもできます。たとえば、2 つの異なるアイテムエディタがあるとします。イベントリスナー内で編集するデータまたは他の情報を調べ、以下の手順に従って適切なアイテムエディタを開くことができます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
編集中のアイテムに対応するアイテムレンダラーです。データプロバイダのアイテムの 0 から始まるインデックスです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
イベントオブジェクトの型: mx
ユーザーが、アイテムレンダラー上、DataGrid コントロールのタブ上、または DataGrid コントロール内でマウスボタンを離したとき、またはその他の方法でアイテムを編集しようと試みたときに送出されます。通常では、このイベントに対する独自のイベントリスナーを記述して、特定のアイテムを編集できないようにします。このイベントの独自のイベントリスナー内から preventDefault() メソッドを呼び出すことによって、デフォルトリスナーの実行が阻止されます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
アイテムの列に関連付けられているデータ内のフィールドまたはプロパティの名前です。編集対象のアイテムに対応するアイテムレンダラーです。このイベントがキーボードから生成された場合は、編集するアイテムが画面外である可能性があるため、このプロパティは null です。データプロバイダのアイテムの 0 から始まるインデックスです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
イベントオブジェクトの型: mx
何らかの理由でアイテム編集セッションが終了するときに送出されます。List コンポーネントには、このイベントのデフォルトハンドラがあり、アイテムエディタから List コントロールのデータプロバイダにデータをコピーします。デフォルトのイベントリスナーは、次のアクションを実行します。このイベントに関連付けられた DataGridColumn コントロールの editorDataField プロパティを使用して、新しいデータを含むアイテムエディタのプロパティを判別し、その新しいデータでデータプロバイダアイテムを更新します。通常では、このイベントのイベントリスナーを記述して、次のアクションを実行します。イベントリスナーで、エディタから List コンポーネントに返されたデータを変更できます。たとえば、List コントロールにデータを返す前に、データを再フォーマットできます。デフォルトでは、アイテムエディタは単一の値のみ返すことができます。複数の値を返す場合は、itemEditEnd イベントのイベントリスナーを記述する必要があります。イベントリスナーで、アイテムエディタに入力されたデータを確認できます。データが正しくない場合は、preventDefault() メソッドを呼び出して、新しいデータが List コントロールに渡されないようにし、エディタが閉じるのを阻止できます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
アイテムの列に関連付けられているデータ内のフィールドまたはプロパティの名前です。編集中のアイテムに対応するアイテムレンダラーです。イベントの理由を定義する定数です。データプロバイダのアイテムの 0 から始まるインデックスです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
イベントオブジェクトの型: mx
アイテムレンダラーがフォーカスを得たときに送出されます。ユーザーが DataGrid コントロールのアイテムをクリックするか、キーボードを使用してアイテムに移動した場合に発生する可能性があります。アイテムが編集可能な場合にのみ送出されます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
編集中のアイテムに対応するアイテムエディタインスタンスです。データプロバイダのアイテムの 0 から始まるインデックスです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
イベントオブジェクトの型: mx
アイテムレンダラーがフォーカスを失ったときに送出されます。ユーザーが DataGrid コントロールの内部または外部にある別のアイテムをクリックするか、キーボードを使用して DataGrid コントロールの内部または外部にある別のアイテムに移動した場合に発生する可能性があります。アイテムが編集可能な場合にのみ送出されます。イベントオブジェクトの各プロパティには次の値が設定されます。
イベントを処理するイベントリスナーを定義するオブジェクト
編集中のアイテムに対応するアイテムエディタインスタンスです。データプロバイダのアイテムの 0 から始まるインデックスです。イベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引 | 付録 | 規則 | フレーム内に表示フレームなしバージョン
BaseListData クラスは、ドロップインアイテムレンダラーまたはドロップインアイテムエディタによって実装される listData プロパティのデータ型を定義します。listData プロパティの値の実際のデータ型は、ドロップインアイテムレンダラーまたはアイテムエディタを使用しているコントロールに応じて異なります。ドロップインアイテムレンダラーまたはドロップインアイテムエディタとして使用される場合、listData プロパティは、アイテムのデータを含むデータプロバイダ内のアイテムに関する算出された情報を含んでいる BaseListData からの派生クラスに設定されます。このクラスのプロパティは書き込み可能ですが、読み取り専用と見なす必要があります。これらはリストクラスによって初期化され、アイテムレンダラーまたはアイテムエディタによって読み取られます。これらの値を変更すると、予期しない結果が生じる可能性があります。
継承されるパブリックプロパティの非表示
継承されるパブリックプロパティの表示
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。このアイテムを所有するリストオブジェクトへの参照です。[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。データプロバイダ内のアイテムのインデックスです。このアイテムの一意の識別子です。
継承されるパブリックメソッドの非表示
継承されるパブリックメソッドの表示
オブジェクトに指定されたプロパティが定義されているかどうかを示します。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。指定されたプロパティが存在し、列挙可能かどうかを示します。ループ処理に対するダイナミックプロパティの可用性を設定します。指定されたオブジェクトのストリング表現を返します。指定されたオブジェクトのプリミティブ値を返します。
プロパティの詳細
このアイテムを所有するリストオブジェクトへの参照です。データプロバイダ内のアイテムのインデックスです。このアイテムの一意の識別子です。
コンストラクタの詳細
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引 | 付録 | 規則 | フレーム内に表示フレームなしバージョン
継承されるパブリックプロパティの非表示
継承されるパブリックプロパティの表示
バッファへの変更を自動的に完了するかどうかを示します。false を設定すると、リモート宛先からクライアントに変更がプッシュされたときに変更が即時には適用されなくなります。特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。このサービスが関連付けられているリモート宛先を示します。すべてのコレクションに対する現在のページサイズ設定へのアクセスを提供します。[read-only] リモート宛先がページング要求を許可するように設定されているかどうかを示します。[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。操作のタイムアウト時間 (秒単位) に対するアクセスを提供します。
継承されるパブリックメソッドの非表示
継承されるパブリックメソッドの表示
現在このサービスで管理されているすべてのコレクションで保留状態の変更をすべて完了します。リモート宛先に対して count メソッドを呼び出します。指定したアイテムをリモートストアに作成することを要求します。指定したアイテムをリモートストアから削除することを要求します。指定した ID に一致するアイテムに対して非同期要求を行います。指定されたアイテムのメッセージキャッシュ中に保留されている操作を返します。オブジェクトに指定されたプロパティが定義されているかどうかを示します。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。保留中の更新を管理対象のオブジェクトセットに結合します。指定されたプロパティが存在し、列挙可能かどうかを示します。指定したコレクション内のすべてのアイテムを、このサービスによる管理から解放します。指定されたアイテムをこのサービスによる管理から解放します。指定したアイテムに対する完了していない変更をすべて元に戻します。ループ処理に対するダイナミックプロパティの可用性を設定します。指定されたオブジェクトのストリング表現を返します。指定されたオブジェクトのプリミティブ値を返します。
継承されるイベントの非表示
継承されるイベントの表示
CONFLICT イベントが送出されるのは、保留中のローカルな変更の間または別のクライアントから送信された変更の間に競合が検出された場合か、このクライアントが送信した変更がリモート宛先との間で競合した場合です。FAULT イベントは、サービス呼び出しがエラーで失敗した場合に送出されます。MESSAGE イベントは、リモート宛先がデータ操作の通知をプッシュするときに送出されます。RESULT イベントは、サービス呼び出しが正常に返るときに送出されます。
プロパティの詳細
バッファへの変更を自動的に完了するかどうかを示します。完了した変更は、すぐにリモートサービスに送信されます。false を設定すると、リモート宛先からクライアントに変更がプッシュされたときに変更が即時には適用されなくなります。このプロパティに対して変更イベントをリッスンするためのイベントハンドラを登録することで、結合を適用する必要があるときに通知を受け取ることができます。これにより、すべての変更が適用されます。結合が必要な変更があると、未完了の変更を完了することはできません。ページングが有効になっていると、ローカルでないアイテムに対するすべての要求は、merge() が呼び出されるまでキャッシュされます。merge() を呼び出すと、キャッシュされていた要求が処理されます。完了していない変更があり、commit() メソッドを呼び出す必要があるかどうかを示します。このプロパティが変更されると、イベントが送出されます。このプロパティをアプリケーション内で使用し、視覚的なフィードバックを提供することができます。このプロパティはデータバインディングのソースとして使用できます。この DataService にプッシュされたリモート操作の競合を検出するために使用されている、現在の実装に対するアクセスを提供します。完了していないバッチによる変更の間に依存関係がある場合に備え、操作の順序が維持されます。このプロパティはデータバインディングのソースとして使用できます。このサービスが関連付けられているリモート宛先を示します。結合が必要な保留中の変更があるかどうかを示します。このプロパティはデータバインディングのソースとして使用できます。すべてのコレクションに対する現在のページサイズ設定へのアクセスを提供します。リモート宛先がページング要求を許可するように設定されているかどうかを示します。操作のタイムアウト時間 (秒単位) に対するアクセスを提供します。ゼロ以下の値を設定すると、要求はタイムアウトになりません。requestTimeout の制限に達したことにより現在の操作がタイムアウトになると、その操作に関して、要求がタイムアウトになったことを示すフォルトが送出されます。
コンストラクタの詳細
xml ファイルで設定された宛先に対する参照であることが必要です。
メソッドの詳細
現在このサービスで管理されているすべてのコレクションで保留状態の変更をすべて完了します。カスタムデータをこのオブジェクトに関連付け、後からイベント処理フェーズで調べることができます。リモート宛先に対して count メソッドを呼び出します。args — リモート宛先に渡すパラメータのリストです。カスタムデータをこのオブジェクトに関連付け、後からイベント処理フェーズで調べることができます。指定したアイテムをリモートストアに作成することを要求します。カスタムデータをこのオブジェクトに関連付け、後からイベント処理フェーズで調べることができます。このオブジェクトの result プロパティはバインド可能で、返されたアイテムをバインドするために使用できます。アイテムが別のクライアントによって削除された場合、この結果のオブジェクトには null が設定されます。このメソッドは、解放するアイテムのインスタンス自体を受け取ります。指定したアイテムをリモートストアから削除することを要求します。カスタムデータをこのオブジェクトに関連付け、後からイベント処理フェーズで調べることができます。このメソッドは、未処理のネットワーク操作が完了するまで待つことはしません。xml で参照されているとします。保留中の変更やデータは、fill の呼び出しの中でクリアされます。カスタムデータをこのオブジェクトに関連付け、後からイベント処理フェーズで調べることができます。指定した ID に一致するアイテムに対して非同期要求を行います。getItem() メソッド呼び出しから有効なインスタンスを受け取ったら、releaseItem() メソッドを呼び出してアイテムのインスタンスを解放する必要があります。これは、同じアイテムに対してクライアントが複数の getItem() メソッド呼び出しを行っていた場合に備えてのことです。カスタムデータをこのオブジェクトに関連付け、後からイベント処理フェーズで調べることができます。アイテムがリモート宛先から値を設定されバインド可能な場合、このプロパティに有効な値が設定されます。アイテムがサーバーまたは別のクライアントから削除された場合、この参照には null が設定されます。アイテムを返す際にエラーになったか、アイテムに対してサーバーが null を返すと、このプロパティに true が設定されます。指定されたアイテムのメッセージキャッシュ中に保留されている操作を返します。このメソッドは、アイテムに対してどのような種類の変更が行われたかをユーザーに視覚的にフィードバックするために使用します。アイテムに対して有効な操作は以下のとおりです。宛先のログアウトは、サーバー設定で指定されているものと同じ ChannelSet を使用して接続されているあらゆるものに適用されます。保留中の更新を管理対象のオブジェクトセットに結合します。変更を結合する処理で競合が検出され、保留中のアイテム要求がすべて処理されます。これによって、この同じデータストアを共有している他のすべての DataService インスタンスのすべてのメッセージが結合されます。指定したコレクション内のすべてのアイテムを、このサービスによる管理から解放します。アイテムが複数のコレクションに存在する場合は、アイテムのコピーが作成されます。このコレクションだけに存在するアイテムに対する完了していない変更は、削除、作成、更新を含め、すべて解放されます。また、どのアイテムのコピーも作成されません。指定されたアイテムをこのサービスによる管理から解放します。これは、クライアントアプリケーションの異なる部分から getItem を複数回呼び出し、同じアイテムを取得していた場合に備えてのことです。この呼び出しによって、ネストしたプロパティを含め、関連付けられているすべてのリソースが解放されます。指定されたアイテムはリモート宛先からの更新は受け取らなくなります。また、このアイテムに対して完了していない変更があり、他のコレクションに現れない場合は、これらの変更も解放されます。指定されたアイテムが複数のコレクションに存在する場合は、allowCopy パラメータに false を設定しない限り、返される値は元のコピーとなります。true の場合、アイテムが別の管理されている参照で使用されていると、アイテムのコピーが作成されます。false を設定することもできますが、他の参照によって管理されていた場合は、オブジェクトはサーバーから引き続き更新される可能性があることを意味します。指定したアイテムに対する完了していない変更をすべて元に戻します。アイテムを指定しないと、完了していない変更がすべて取り消されます。作成操作を取り消すと、アイテムが削除されます。削除を取り消すと、アイテムが復元されます。更新を取り消すと、変更を開始する前のアイテムの元のプロパティに戻ります。このメソッドを使用する 1 つの状況は、障害が発生した後です。その場合、失敗した変更は未完了変更リストに戻されます。その時点で、これらの変更を修正して問題を解決するか、このメソッドを使用してこれらの変更が再度送信されないようにします。アイテムが指定され、そのアイテムが変更されていない場合は、このメソッドは false を返します。アイテムが指定されず、変更がない場合は、このメソッドは false を返します。すべての変更を取り消す場合は null を指定します。
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引 | 付録 | 規則 | フレーム内に表示フレームなしバージョン
NumberBase クラスは、四捨五入、表示桁数、桁区切り記号、負符号フォーマットなどの一般的な数値フォーマット機能を含むユーティリティクラスです。
継承されるパブリックプロパティの非表示
継承されるパブリックプロパティの表示
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。入力ストリングを解析する際に使用する小数点の区切り記号文字です。フォーマットした小数の値を出力するときに使用する小数点の区切り文字を表します。true の場合、フォーマットが成功したことを示します。[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。入力ストリングで桁区切り記号として使用する文字を表します。出力ストリングで桁区切り記号として使用する文字を表します。
継承されるパブリックメソッドの非表示
継承されるパブリックメソッドの表示
デフォルトの小数区切り記号である "マイナス記号 (-) か括弧 () のいずれかを使用して、負の数値をフォーマットします。数値を四捨五入してフォーマットします。数値を四捨五入し、小数を設定してフォーマットします。オブジェクトに指定されたプロパティが定義されているかどうかを示します。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。フォーマットしたストリングから数値を抽出します。指定されたプロパティが存在し、列挙可能かどうかを示します。ループ処理に対するダイナミックプロパティの可用性を設定します。指定されたオブジェクトのストリング表現を返します。指定されたオブジェクトのプリミティブ値を返します。
プロパティの詳細
入力ストリングを解析する際に使用する小数点の区切り記号文字です。フォーマットした小数の値を出力するときに使用する小数点の区切り文字を表します。true の場合、フォーマットが成功したことを示します。入力ストリングで桁区切り記号として使用する文字を表します。出力ストリングで桁区切り記号として使用する文字を表します。
コンストラクタの詳細
") — 入力ストリングを解析する際に使用する小数点の区切り記号です。") — フォーマットした小数の値を出力するときに使用する小数点の区切り文字を表します。
メソッドの詳細
デフォルトの小数区切り記号である "
## にフォーマットされる)
" が小数のフォーマット文字に置き換えられる)
マイナス記号 (-) か括弧 () のいずれかを使用して、負の数値をフォーマットします。数値を四捨五入してフォーマットします。
可能となる四捨五入のタイプは、mx
数値を四捨五入し、小数を設定してフォーマットします。
可能となる四捨五入のタイプは、mx
フォーマットしたストリングから数値を抽出します。ストリングを左から右に向かって調べ、最初の数値を返します。桁区切り記号を無視し、小数点と小数点から後ろの数値を含めます。
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引 | 付録 | 規則 | フレーム内に表示フレームなしバージョン
CommandMessage クラスは、サーバーインフラストラクチャにコマンドを送信するためのメカニズムを提供します。対象となるのは、メッセージングのパブリッシュ/サブスクライブ、ping 操作、クラスタ操作などに関連するコマンドです。
継承されるパブリックプロパティの非表示
継承されるパブリックプロパティの表示
メッセージの本文には、リモート宛先に配信する必要がある特定のデータが含まれます。特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。メッセージの相関 ID へのアクセスを提供します。
メッセージの宛先
メッセージのヘッダは、キーがヘッダ名、値がヘッダ値として格納される結合配列です。
メッセージ固有の ID
このサーバーメッセージタイプがサービスによって処理されるメッセージタイプに一致しているかどうかに応じて、特定のサービスに所属するリモート宛先を CommandMessage のターゲットに設定します。[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。メッセージの日時スタンプへのアクセスを提供します。メッセージの有効期間の値は、メッセージが有効で配信可能であると見なされる期間を示します。
継承されるパブリックメソッドの非表示
継承されるパブリックメソッドの表示
オブジェクトに指定されたプロパティが定義されているかどうかを示します。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。指定されたプロパティが存在し、列挙可能かどうかを示します。ループ処理に対するダイナミックプロパティの可用性を設定します。メッセージのストリング表現を返します。指定されたオブジェクトのプリミティブ値を返します。
継承されるパブリック定数の非表示
継承されるパブリック定数の表示
[static] 認証コマンドに対応するサーバーメッセージのタイプです。[static] この操作は、現在のチャンネルからリモートエンドポイントへの接続をテストするときに使用されます。[static] このオプションは、クライアントからポーリングコマンドを送信したことに伴って欠落したメッセージやキャッシュされたメッセージをリモート宛先がクライアントに対して同期させるときに使用されます。[static] この操作は、クラスタメンバーシップに基づいたリモート宛先のフェイルオーバーエンドポイントのリストを要求するときに使用されます。[static] サーバーからプッシュされたメッセージがバッチとして到着したとき、そのバッチ内のメッセージが複数の異なるコンシューマインスタンスをターゲットにしている可能性があります。[static] メッセージには、メッセージが送信されるチャンネルのエンドポイント ID のタグが付与されます。[static] この操作は、ユーザーが現在のチャンネルからログインできるようにエンドポイントに資格情報を送信するときに使用されます。[static] この操作は、ユーザーを現在のチャンネルからログアウトさせるときに使用されます。チャンネルが HTTP ベースの場合は、ユーザーセッションが無効になります。[static] この操作は、リモート宛先に対して保留中の未配信メッセージのポーリングを行うときに使用されます。[static] 宛先のリモート証明書を設定する必要があるメッセージは、このヘッダ内に Base64 エンコードされた資格情報を保持します。[static] このヘッダは、要求タイムアウトを定義して送信されるメッセージに使用されます。[static] コンシューマによって発行されたサブスクライブコマンドでは、このヘッダでコンシューマの selector 式を渡します。[static] この操作は、クライアントとリモート宛先の間のセッションがタイムアウトしたことを示すときに使用されます。[static] この操作は、リモート宛先へのサブスクライブに使用されます。[static] この操作は、リモート宛先からのサブスクライブ解除に使用されます。
プロパティの詳細
このサーバーメッセージタイプがサービスによって処理されるメッセージタイプに一致しているかどうかに応じて、特定のサービスに所属するリモート宛先を CommandMessage のターゲットに設定します。操作は、リモート宛先でこのメッセージを処理する方法を示します。
コンストラクタの詳細
メソッドの詳細
指定した操作の説明を設定します。メッセージのストリング表現を返します。認証コマンドに対応するサーバーメッセージのタイプです。この操作は、現在のチャンネルからリモートエンドポイントへの接続をテストするときに使用されます。このオプションは、クライアントからポーリングコマンドを送信したことに伴って欠落したメッセージやキャッシュされたメッセージをリモート宛先がクライアントに対して同期させるときに使用されます。この操作は、クラスタメンバーシップに基づいたリモート宛先のフェイルオーバーエンドポイントのリストを要求するときに使用されます。この操作は、ユーザーが現在のチャンネルからログインできるようにエンドポイントに資格情報を送信するときに使用されます。この操作は、ユーザーを現在のチャンネルからログアウトさせるときに使用されます。チャンネルが HTTP ベースの場合は、ユーザーセッションが無効になります。この操作は、リモート宛先に対して保留中の未配信メッセージのポーリングを行うときに使用されます。コンシューマによって発行されたサブスクライブコマンドでは、このヘッダでコンシューマの selector 式を渡します。この操作は、クライアントとリモート宛先の間のセッションがタイムアウトしたことを示すときに使用されます。この操作は、リモート宛先へのサブスクライブに使用されます。この操作は、リモート宛先からのサブスクライブ解除に使用されます。
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引 | 付録 | 規則 | フレーム内に表示フレームなしバージョン
継承されるパブリックプロパティの非表示
継承されるパブリックプロパティの表示
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。最後の呼び出しの結果です。この値が true の場合、返された匿名オブジェクトは強制的にバインド可能オブジェクトにされます。[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。Operation が呼び出されているサービスにアクセスしやすくします。
継承されるパブリックメソッドの非表示
継承されるパブリックメソッドの表示
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。最後のサービス呼び出しをキャンセルします。イベントをイベントフローに送出します。EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。オブジェクトに指定されたプロパティが定義されているかどうかを示します。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。指定されたプロパティが存在し、列挙可能かどうかを示します。指定された QName を持つヘッダをすべての操作から削除します。メソッドを実行します。ループ処理に対するダイナミックプロパティの可用性を設定します。指定されたオブジェクトのストリング表現を返します。指定されたオブジェクトのプリミティブ値を返します。指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
継承されるイベントの非表示
継承されるイベントの表示
プロパティの詳細
通常、サービスの場所は WSDL で指定されますが、このプロパティを設定して個別 Operation の場所をオーバーライドすることもできます。操作を呼び出すたびに送信される SOAPHeader オブジェクトの配列へのアクセサです。この値が true の場合、返された匿名オブジェクトは強制的にバインド可能オブジェクトにされます。オブジェクトを渡した場合、オブジェクトは SOAP XML 構造にエンコードされます。最後に実行されたこの操作の一環として返されたヘッダです。このプロパティはデータバインディングのソースとして使用できます。
コンストラクタの詳細
これは通常、MXML コンパイラによって直接作成されます。開発者がこのコンストラクタを直接使用することはお勧めしません。
メソッドの詳細
指定された QName を持つヘッダをすべての操作から削除します。
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引 | 付録 | 規則 | フレーム内に表示フレームなしバージョン
このクラスは、スキンエレメント自身をプログラムにより描画するための基本クラスです。
プログラムスキンのレシピ
継承されるパブリックプロパティの非表示
継承されるパブリックプロパティの表示
この表示オブジェクトの現在のアクセシビリティオプションです。指定されたオブジェクトのアルファ透明度値を示します。特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。
表示オブジェクトの高さを示します (ピクセル単位)
オブジェクトがレイアウトの以下の 3 つの段階をすべて完了したものであるかどうかを示すフラグです。
処理、測定、およびレイアウト (いずれかの段階が必須であった場合)
この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
マウス位置の x 座標を示します (ピクセル単位)
マウス位置の y 座標を示します (ピクセル単位)
オブジェクト階層におけるこのオブジェクトの深度を表します。表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。子をすぐに生成するか、遅延生成した後、このいずれかの発生に応じて、true に設定されます。[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。ロードされた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。現在有効な拡大 / 縮小グリッドです。オブジェクトの基準点から適用されるオブジェクトの垂直スケール (percentage) を示します。
表示オブジェクトのスクロール矩形の境界
表示オブジェクトのステージ
スタイル値の取得に使用する親コンポーネントです。表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。
オブジェクトが 3 段階のレイアウト検証を完了したものであるかどうかを示すフラグです (いずれかの検証が必須であった場合)
表示オブジェクトが可視かどうかを示します。
表示オブジェクトの幅を示します (ピクセル単位)
継承されるパブリックメソッドの非表示
継承されるパブリックメソッドの表示
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。イベントをイベントフローに送出します。指定したスタイルプロパティの値を返します。point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。オブジェクトに指定されたプロパティが定義されているかどうかを示します。表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。このメソッドを呼び出すと、表示リストがレンダリングされる前に、コンポーネントの validateSize() メソッドが呼び出されます。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。このオブジェクトを指定の x および y 座標に移動します。指定されたプロパティが存在し、列挙可能かどうかを示します。このオブジェクトの高さおよび幅を設定します。ループ処理に対するダイナミックプロパティの可用性を設定します。いずれかのスタイルが変更された場合に、常にこのスキンを再描画します。アプリケーションの DisplayObject の階層内部でのこのオブジェクトの位置を示すストリングを返します。必要に応じて、このオブジェクトのプロパティとレイアウトを検証および更新し、それを再描画します。指定されたオブジェクトのプリミティブ値を返します。指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。このスキンの Graphics オブジェクトに、プログラムで矩形を描画します。水平方向のグラデーション行列を作成するためのユーティリティ関数です。回転したグラデーション行列を作成するためのユーティリティ関数です。このスキンのグラフィックをプログラムで描画します。垂直方向のグラデーション行列を作成するためのユーティリティ関数です。
継承されるイベントの非表示
継承されるイベントの表示
Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。表示オブジェクトが表示リストに追加されたときに送出されます。Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。再生ヘッドが新しいフレームに入るときに送出されます。表示オブジェクトが表示リストから削除されようとしているときに送出されます。表示リストが更新およびレンダリングされようとしているときに送出されます。
プロパティの詳細
オブジェクトがレイアウトの以下の 3 つの段階をすべて完了したものであるかどうかを示すフラグです。
処理、測定、およびレイアウト (いずれかの段階が必須であった場合)
このオブジェクトの測定した高さです。これは、スキンの推奨される高さを返すサブクラスによりオーバーライドするべきです。このオブジェクトの測定した幅です。これは、スキンの推奨される幅を返すサブクラスによりオーバーライドするべきです。オブジェクト階層におけるこのオブジェクトの深度を表します。この数値は、測定およびレイアウトコードによって使用されます。子をすぐに生成するか、遅延生成した後、このいずれかの発生に応じて、true に設定されます。つまり、子の作成は、Container オブジェクトが子の記述子から子を作成した後に行われることを意味します。スタイル値の取得に使用する親コンポーネントです。通常、このスキンを作成したコンポーネントに設定されています。
オブジェクトが 3 段階のレイアウト検証を完了したものであるかどうかを示すフラグです (いずれかの検証が必須であった場合)
コンストラクタの詳細
メソッドの詳細
このスキンの Graphics オブジェクトに、プログラムで矩形を描画します。矩形の角を丸くすることができます。矩形の端は、Graphics オブジェクトの現在の線スタイルによりストロークを設定できます。単色またはグラデーションの塗りを適用することもできますし、塗りを適用しなくてもかまいません。単色の塗りには、アルファ透明度を適用できます。グラデーションの塗りは線状または放射状にできます。グラデーションに沿った指定の点で、最大 15 のカラーとアルファ値を指定できます。さらにグラデーションの回転角度または変換行列を指定できます。最後に、矩形には丸い矩形の空洞を彫り込むことができます。この多用途の矩形描画ルーチンは、さまざまなスキンで使用されます。null の場合、丸い角ではなく、直角の角を指定します。それぞれの値は、左上、右上、左下、および右下の角の半径をピクセル単位で指定する Number です。null の場合、矩形は塗りつぶされません。Array である場合は、グラデーションカラーを指定する uint を含める必要があります。グラデーション内で最大 15 のカラーを指定できます。0 は完全に不透明です。
また、完全な不透明を指定するために、1
項目数は、color パラメータで定義されたカラーの数と一致する必要があります。各値は、100% でサンプリングされる色の幅の割合をパーセントで定義します。値 0 はグラデーションボックスの左の位置を表し、255 はグラデーションボックスの右の位置を表します。指定したスタイルプロパティの値を返します。水平方向のグラデーション行列を作成するためのユーティリティ関数です。無効化は、後で画面が更新されるまでコンポーネントの変更処理を保留することで、作業の重複を排除できる有用なメカニズムです。たとえば、幅と高さを変更する場合、幅を変更した後にコンポーネントを更新し、次に高さを変更して再度更新するという処理は時間の浪費です。両方のプロパティを変更した後、新しいサイズでコンポーネントを一度に再描画する方が効率的です。無効化メソッドが呼び出されることはほとんどありません。一般的には、コンポーネントのプロパティを設定すると、自動的に適切な無効化メソッドが呼び出されます。このメソッドを呼び出すと、表示リストがレンダリングされる前に、コンポーネントの validateSize() メソッドが呼び出されます。このオブジェクトを指定の x および y 座標に移動します。回転したグラデーション行列を作成するためのユーティリティ関数です。このオブジェクトの高さおよび幅を設定します。いずれかのスタイルが変更された場合に、常にこのスキンを再描画します。このスキンのグラフィックをプログラムで描画します。lineTo() メソッドなどへの呼び出しを含める必要があります。これは、ユーザーコードやズームエフェクトなどのソースからの伸縮の前に行われます。コンポーネントは、後で行われる伸縮は認識しません。必要に応じて、このオブジェクトのプロパティとレイアウトを検証および更新し、それを再描画します。垂直方向のグラデーション行列を作成するためのユーティリティ関数です。
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引 | 付録 | 規則 | フレーム内に表示フレームなしバージョン
正規表現のパターンマッチングを制御するフラグがあれば、flags プロパティを使用して渡します。バリデータが検証対象のフィールドで正規表現に一致するものを検出できた場合、検証は成功です。バリデータが、一致を検出できなかった場合は、検証エラーが発生します。matchedString は、正規表現と一致する入力ストリングのサブストリングが含まれたストリングを表します。一致するサブストリングが存在する場合は、そのサブストリングが括弧に囲まれた状態で配列内に格納されます。サブストリングに一致するものが見つからない場合、この Array の長さは 0 です。
継承されるパブリックプロパティの非表示
継承されるパブリックプロパティの表示
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。この値を false に設定すると、バリデータによる検証が行えなくなります。検証に使用する正規表現を表します。一致処理を行う場合に用いられる正規表現フラグを表します。検証のリスナーを指定します。正規表現が指定されていない場合に発生するエラーメッセージを表します。正規表現と一致するデータが存在しない場合に発生するエラーメッセージを表します。検証する値を含む source オブジェクトのプロパティの名前を指定するストリングを表します。[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。true の場合、検証エラーの原因となる欠損値または空値を指定します。検証するプロパティを含むオブジェクトを指定します。バリデータをトリガするイベントの生成を行うコンポーネントを指定します。検証をトリガするイベントを指定します。リスナーオブジェクトが存在する場合はリスナーオブジェクトを含みます。そうでない場合は、ソースオブジェクトを含みます。トリガオブジェクトが存在する場合はトリガオブジェクトを含みます。そうでない場合は、ソースオブジェクトを含みます。
継承されるパブリックメソッドの非表示
継承されるパブリックメソッドの表示
コンストラクタです。イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。イベントをイベントフローに送出します。EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。オブジェクトに指定されたプロパティが定義されているかどうかを示します。MXML タグを使用してバリデータを作成したときに、MXML コンパイラによって自動的に呼び出されます。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。指定されたプロパティが存在し、列挙可能かどうかを示します。ループ処理に対するダイナミックプロパティの可用性を設定します。指定されたオブジェクトのストリング表現を返します。検証を実行し、その結果のリスナーを任意で通知します。指定されたオブジェクトのプリミティブ値を返します。指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。バリデータから送出された valid イベントおよび invalid イベントのすべてのリスナーを設定します。検証するオブジェクトを返します。バリデータから送出された valid イベントおよび invalid イベントのすべてのリスナーを切断します。
継承されるイベントの非表示
継承されるイベントの表示
検証が失敗すると送出されます。検証が正常に完了すると送出されます。
プロパティの詳細
検証に使用する正規表現を表します。一致処理を行う場合に用いられる正規表現フラグを表します。正規表現が指定されていない場合に発生するエラーメッセージを表します。正規表現と一致するデータが存在しない場合に発生するエラーメッセージを表します。
コンストラクタの詳細
コンストラクタです。
メソッドの詳細
このメソッドはユーザーが直接呼び出すものではなく、妥当性を検証する際に Flex から呼び出されます。Validator クラスをカスタムで作成する場合は、このメソッドを実装する必要があります。このオブジェクトは、検証が行われるフィールドごとに 1 つ含まれます。
コンピュータプログラムの機能
まず、コンピュータプログラムとは何か、どのような機能があるかという概念を理解しておくと便利です。コンピュータプログラムには主に 2 つの側面があります。プログラムとは、コンピュータによって実行される一連の命令または手順です。各手順では、最終的に情報またはデータの操作を行います。一般的な意味では、コンピュータプログラムはユーザーがコンピュータに渡す段階的な命令のリストであり、1 つずつ命令が実行されます。個々の命令は「ステートメント」と呼ばれます。このマニュアル全体で見られるとおり、ActionScript では各ステートメントの末尾にセミコロンを付けます。基本的に、プログラムで渡された命令が実行するのは、コンピュータのメモリ内に格納されているデータの操作だけです。単純な例としては、2 つの数値を足して結果をメモリに保存するようにコンピュータに指示します。複雑な例としては、画面に描画された矩形を画面上の別の場所に移動するプログラムを作成することなどが挙げられます。コンピュータは、矩形に関する特定の情報、つまり矩形の x 座標と y 座標、幅と高さ、カラーなどを追跡しています。これらの各情報は、コンピュータのメモリ内の任意の場所に格納されます。矩形を別の場所に移動するプログラムには、「x 座標を 200、y 座標を 150 に変更する」(つまり、x 座標と y 座標に使用する新しい値を指定する)手順が含まれています。実際には、コンピュータはこのデータを処理し、これらの数値をコンピュータ上に表示されるイメージに変換しますが、ユーザーが関心を持つレベルとしては、「画面上の矩形を移動する」プロセスにおいてコンピュータのメモリ内のデータが変更されることがわかれば十分です。名前空間では、作成したプロパティおよびメソッドの可視性を制御することができます。これらのあらかじめ定義されているアクセス制御指定子が要件を満たさない場合は、独自の名前空間を作成することができます。ActionScript 実装のシンタックスおよび詳細は XML とは少し異なりますが、XML 名前空間を使い慣れていれば、ここでの説明は新しいものではないかもしれません。これまで名前空間を操作したことがない場合は、概念自体は単純ですが、その実装には特定の用語を習得する必要があります。名前空間の動作を理解するために、プロパティまたはメソッドの名前には常に識別子と名前空間の 2 つの部分が含まれることを知っておくと役立ちます。識別子は名前のようなものと考えることができます。定義の前に名前空間属性が付けられていない場合、その名前はデフォルトの internal 名前空間によって修飾されます。この場合、定義は同じパッケージ内の呼び出し元に対してのみ表示されます。コンパイラが strict モードに設定されている場合は、名前空間属性を変更せずに internal 名前空間がすべての識別子に適用されることを示す警告がコンパイラから出されます。識別子をどこでも使用できるようにするためには、識別子名の前に public 属性を付ける必要があります。名前空間を使用するときは、次の 3 つの手順に従います。最初に、namespace キーワードを使用して名前空間を定義する必要があります。次に、プロパティまたはメソッドの宣言にアクセス制御指定子ではなく、定義した名前空間を使用して、その名前空間を適用します。3 番目に、名前空間を適用したら、use ディレクティブを使用するか、名前空間で識別子の名前を修飾して、名前空間を参照できます。
名前空間の定義
名前空間の適用
名前空間の参照
名前空間の使用
名前空間の定義
URI によって、名前空間定義を一意にすることができます。次のいずれかの方法で名前空間定義を宣言して、名前空間を作成します。XML 名前空間を定義するように、明示的な URI で名前空間を定義することも、URI を省略することもできます。次の例では、URI を使用して名前空間を定義する方法を示します。次の例のように URI を省略した場合、コンパイラは URI の代わりに一意の内部 ID ストリングを作成します。この内部 ID ストリングにはアクセスできません。URI を使用するか、使用しないで名前空間を定義すると、その名前空間は同じスコープ内で再定義することはできません。同じスコープ内で以前に定義された名前空間を定義しようとすると、コンパイルエラーが発生します。名前空間がパッケージまたはクラス内で定義された場合は、適切なアクセス制御指定子が使用されていなければ、名前空間はそのパッケージまたはクラスの外部にあるコードに対して表示されません。utils パッケージ内のコードに対してのみ表示され、パッケージ外部のコードに対しては表示されないことを示します。
名前空間の適用
名前空間を適用するとは、名前空間に定義を配置することです。名前空間に配置できる定義には、関数、変数、および定数があります。カスタム名前空間にクラスを配置することはできません。例えば、public アクセス制御名前空間で宣言された関数があるとします。関数定義に public 属性を使用すると、関数はパブリックの名前空間に配置され、すべてのコードで利用できるようになります。名前空間を定義した後は、public 属性を使用する場合と同様に定義した名前空間を使用でき、カスタム名前空間を参照できるコードでその定義を使用できるようになります。名前空間を適用する際には、次の点に注意してください。適用できる名前空間は宣言ごとに 1 つだけです。名前空間属性を一度に複数の定義に適用することはできません。つまり、10 個の異なる関数に名前空間を適用する場合、10 個の異なる関数それぞれに名前空間を属性として追加する必要があります。名前空間とアクセス制御指定子は相互に排他的であるため、名前空間を適用すると、アクセス制御指定子を指定することはできません。
名前空間の参照
このような特別な名前空間へのアクセスはコンテキストによって制御されるからです。例えば、private 名前空間に配置された定義は、自動的に同じクラス内のコードで利用できるようになります。しかし、定義した名前空間では、こうした状況依存性は存在しません。カスタム名前空間に配置したメソッドまたはプロパティを使用するには、その名前空間を参照する必要があります。また、名前修飾子(::)を使用して名前空間で名前を修飾できます。use namespace ディレクティブで名前空間を参照すると、修飾されていない識別子に名前空間を適用できるように、名前空間が「開き」ます。一度に複数の名前空間を開くことができます。use namespace で名前空間を開くと、名前空間はそれ自体が開かれたコードブロック全体で開かれたままになります。名前空間を明示的に閉じることはできません。しかし、複数の名前空間を開くと、名前のコンフリクトが起こりやすくなります。名前空間を開かない場合は、メソッドまたはプロパティの名前を名前空間と名前修飾子で修飾すると、use namespace ディレクティブを使用する必要はありません。
名前空間の使用
Proxy クラスで名前のコンフリクトを防ぐために使用する名前空間の実際例を参照できます。__resolve プロパティに代わる Proxy クラスを使用すると、エラーが発生する前に、未定義のプロパティまたはメソッドへの参照を取得できます。つまり、オブジェクト上で Proxy クラスのメソッドを使用する場合、そのオブジェクトのクラス定義は Proxy クラスを拡張する必要があります。名前空間の実装には通常、名前空間の定義、適用、および参照の 3 つの手順を実行します。しかし、Proxy クラスのメソッドを明示的に呼び出していないため、flash_proxy 名前空間は定義および適用されるだけで、参照されません。Proxy クラスからの次の抜粋に示すように、名前空間は Proxy クラスのメソッドに適用されます。次に、Proxy クラスを拡張するようにクラスを宣言する必要があります。1 つ目は、別の名前空間があると、Proxy クラスを拡張するクラスのパブリックインターフェイスを整理できます。Proxy クラスには、オーバーライドできるメソッドが 10 個以上ありますが、これらのメソッドは直接呼び出せるように設計されていません。これらすべてをパブリック名前空間に配置すると、混乱の元になります。2 つ目は、Proxy サブクラスに Proxy クラスのメソッドと一致する名前のインスタンスメソッドが含まれている場合、flash_proxy 名前空間を使用すると、名前の競合を回避することができます。例えば、複数のパッケージに分散するいくつかのユーティリティメソッドがあるとします。これらのメソッドをパブリックにしないで、すべてのパッケージで利用できるようにするには、新しい名前空間を作成して、独自のアクセス制御指定子として使用します。次の例では、ユーザー定義の名前空間を使用して、異なるパッケージにある 2 つの関数をグループ化します。同じ名前空間でグループ化することで、use namespace ステートメントを 1 つ使用して、クラスまたはパッケージに対してこの 2 つの関数を表示できます。この例では、4 つのファイルを使用してその手法を示します。ファイルはすべてクラスパス内にある必要があります。名前空間は public とマークされているので、他のパッケージに読み込むことができます。as」は、他のパッケージで利用できるメソッドを含むクラスを定義します。つまり、example フォルダのサブフォルダである alpha という名前のフォルダにファイルを配置する必要があります。つまり、example フォルダのサブフォルダでもある beta という名前のフォルダにファイルを配置する必要があります。beta パッケージは両方とも名前空間を使用する前に読み込む必要があります。as」はメインアプリケーションクラスです。このファイルは example フォルダの兄弟である必要があります。この例では、コードを簡略化するためにのみ静的メソッドを使用します。静的メソッドおよびインスタンスメソッドは両方とも myInternal 名前空間に配置することができます。
データ型の詳細
0 では、32 ビット符号付および符号なし整数の低レベルマシン型にアクセスすることができるようになりました。変数が浮動小数点数を使用しない場合、Number データ型ではなく int データ型を使用する方が速く、効率的です。int データ型の変数のデフォルト値は 0 です。これは、String データ型および Object クラスを含む複合データ型を定義するすべてのクラスのデフォルト値です。このデータ型は、型注釈として使用することはできません。0 では、Number データ型は整数、符号なし整数、および浮動小数点数を表すことができます。ただし、パフォーマンスを最大化するために、32 ビット int および uint 型より大きい整数値に対してのみ、Number データ型を使用する必要があります。また、Number データ型には、浮動小数点数を格納することができます。浮動小数点数を格納するには、数値に小数点を含めます。小数点を省略すると、数値は整数として格納されます。この規格では、64 ビットを使用して浮動小数点数を格納する方法が指定されています。1 ビットを使用して数値が正か負かを指定します。11 ビットを 2 を底として格納される指数に使用します。残りの 52 ビットを使用して「仮数」を格納します。仮数とは指数で示される累乗される数値です。Number データ型では、ビットの一部を使用して指数を格納することで、仮数のビットすべてを使用する場合より大きな浮動小数点数を格納できます。この数値の範囲は非常に大きくなりますが、この範囲の問題は精度です。その結果、分数 1/3 など、正確に表すためには 53 ビット以上必要な数値は近似値にしかなりません。アプリケーションで 10 進法による絶対精度が必要な場合、2 進数浮動小数点計算ではなく、10 進法浮動小数点計算を実装するアプリケーションを使用する必要があります。Number データ型で整数値を格納する場合、仮数の 52 ビットだけが使用されます。例えば、負の数値の平方根を計算しようとすると、その結果は NaN になります。その他の特別な Number 型の値には、正の無限大および負の無限大があります。ストリングは、Java プログラミング言語の場合と同様に不変値です。String 値を操作すると、ストリングの新しいインスタンスが返されます。値 null と空のストリング("")は、両方とも文字が存在しないことを表しますが、同じものではありません。負以外の整数が必要な特別な場合に、uint データ型を使用します。例えば、ピクセルカラー値を表すためには uint データ型を使用する必要があります。これは、int データ型にはカラー値の処理には適していない内部符号ビットがあるためです。型指定されていない変数には、undefined という値のみを割り当てることができます。型指定されていない変数は、型注釈がないか、型注釈にアスタリスク記号(*)が使用されている変数です。void は戻り値の型注釈としてのみ使用することができます。1 つ目は、Object データ型は、型注釈のない変数に割り当てられるデフォルトのデータ型ではなくなりました。0 ではこれは行われず、真に型指定されていない変数の概念が導入されました。型注釈のない変数は、型が指定されていないと見なされます。コード内で変数の型を指定しないままにしておくことを明確に示す場合、型注釈に新しくアスタリスク記号(*)を使用することができます。これは、型注釈を省略するのと同じことを示します。次の例は、型指定されていない変数 x を宣言する 2 つの同じステートメントを示します。型指定されていない変数にのみ値 undefined を割り当てることができます。演算子は、1 つまたは複数のオペランドを取り、値を返す特別な関数です。「オペランド」は、演算子が入力として使用する値で、通常はリテラル、変数または式です。例えば、次のコードでは、加算(+)および乗算(*)演算子をリテラルオペランド(2、3 および 4) と共に使用して、値を返します。演算子には、単項、二項、および三項があります。単項演算子は、オペランドを 1 つだけ取ります。例えば、インクリメント(++)演算子は、オペランドを 1 つだけ取るため、単項演算子です。二項演算子は、オペランドを 2 つ取ります。例えば、除算(/)演算子はオペランドを 2 つ取ります。三項演算子はオペランドを 3 つ取ります。
例えば、条件(:)演算子はオペランドを 3 つ取ります。一部の演算子は「オーバーロード」されます。つまり、渡されたオペランドの種類または数に応じて動作が異なります。加算(+)演算子は、オペランドのデータ型によって動作が異なるオーバーロード演算子の例です。オペランドが両方とも数値の場合、加算演算子は値の合計値を返します。オペランドが両方ともストリングの場合、加算演算子は 2 つのオペランドの連結を返します。次のコード例は、オペランドによって演算子の動作がどう異なるのかを示します。演算子は、指定されたオペランドの数によっても動作が異なります。除算(-)演算子は、単項および二項演算子です。オペランドが 1 つだけ指定されると、除算演算子はオペランドを否定し、その結果を返します。オペランドが 2 つ指定されると、除算演算子は 2 つのオペランドの差を返します。次の例では、最初に単項演算子、次に二項演算子として使用される除算演算子を示します。
演算子の優先順位と結合性
演算子の優先順位と結合性により、演算子を処理する順序が決まります。算術プログラミングに慣れている開発者にとって、コンパイラが乗算(*)演算子を加算(+)演算子より先に処理するのは自然なことですが、コンパイラは、どの演算子を最初に処理するかについて明示的な指示を必要とします。このような指示を、総称して「演算子の優先順位」と呼びます。例えば、次のコードは、前の例のデフォルトの優先順位を変更し、コンパイラに強制的に乗算演算子の前に加算演算子を処理させます。同じ優先順位の複数の演算子が同じ式にある状況があります。このような状況では、コンパイラは「結合性」のルールを使用して、最初に処理する演算子を決定します。代入演算子を除くすべての二項演算子は左結合となります。つまり、左にある演算子が右にある演算子よりも先に処理されます。
代入演算子と条件(:)演算子は「右結合」となります。つまり、右にある演算子が左にある演算子よりも先に処理されます。例えば、「より小さい」(<)および「より大きい」(>)演算子について考えてみます。これらの演算子の優先順位は同じです。両方の演算子を同じ式で使用すると、左の演算子が最初に処理されます。これは、両方の演算子が左結合であるためです。つまり、次の 2 つのステートメントでは同じ出力が得られます。「より大きい」演算子が最初に処理され、その結果は true になります。これはオペランド 3 がオペランド 2 よりも大きいためです。次に値 true がオペランド 1 と共に「より小さい」演算子に渡されます。次のコードは、この中間状態を表します。デフォルトの左結合を括弧()を使用して変更できます。演算子とオペランドを括弧で囲んで、"より小さい" 演算子を最初に処理するようにコンパイラに指示できます。次の例では、括弧演算子を使用して、前の例と同じ数値で異なる出力を生成します。「より小さい」演算子が最初に処理され、その結果は false になります。これはオペランド 2 がオペランド 1 より小さくないためです。次のコードは、この中間状態を表します。0 の演算子を優先順位の高いものから順に示します。同じ行に示されている演算子は優先順位が同じです。各行に示されている演算子はその下に表示される行の演算子より優先順位が高くなります。
ビット単位の排他的論理和(XOR)
基本演算子は、Array リテラルおよび Object リテラルの作成、式のグループ化、関数の呼び出し、クラスインスタンスのインスタンス化、およびプロパティへのアクセスに使用する演算子です。次の表の基本演算子の優先順位はすべて同じです。
実行される演算
配列の初期化
オブジェクトの初期化
式のグループ化
関数の呼び出し
コンストラクタの呼び出し
プロパティへのアクセス
後置演算子は、1 つの演算子を取り、演算子の値をインクリメントまたはデクリメントします。これらの演算子は単項演算子ですが、優先順位が高いことと、その特別なビヘイビアにより、他の単項演算子からは区別して分類されます。後置演算子をより大きい式の一部として使用する場合、後置演算子が処理される前に、式の値が返されます。例えば、次のコードでは、式 xNum++ の値がインクリメントされる前に返されます。次の表の後置演算子の優先順位はすべて同じです。
実行される演算
単項演算子は 1 つのオペランドを取ります。このグループのインクリメント(++)演算子とデクリメント(--)演算子は、「前置演算子」であり、式ではオペランドの前に表示されます。前置演算子が後置演算子と異なるのは、インクリメント演算またはデクリメント演算が、式全体の値が返される前に完了することです。例えば、次のコードでは、式 ++xNum の値がインクリメントされた後に返されます。次の表の単項演算子の優先順位はすべて同じです。
実行される演算
プロパティの削除
タイプ情報を返す。未定義の値を返す。乗法演算子は 2 つのオペランドを取り、乗算、除算、または剰余計算を実行します。次の表の乗法演算子の優先順位はすべて同じです。
実行される演算
加算演算子は 2 つのオペランドを取り、加算または減算を実行します。次の表の加算演算子の優先順位はすべて同じです。
実行される演算
ビット単位シフト演算子は 2 つのオペランドを取り、2 番目のオペランドで指定された範囲で最初のオペランドのビットをシフトします。次の表のビット単位シフト演算子の優先順位はすべて同じです。
実行される演算
ビット単位の左シフト
ビット単位の右シフト
ビット単位の符号なし右シフト
関係演算子は 2 つのオペランドを取り、値を比較してブール値を返します。次の表の関係演算子の優先順位はすべて同じです。
実行される演算
より小さいか等しい。より大きいか等しい。
データ型のチェック
オブジェクトプロパティのチェック
プロトタイプチェーンのチェック
データ型のチェック
等価演算子は 2 つのオペランドを取り、値を比較してブール値を返します。次の表の等価演算子の優先順位はすべて同じです。
実行される演算
厳密な不等価
ビット論理演算子は 2 つのオペランドを取り、ビットレベルの論理演算を実行します。ビット論理演算子は優先順位が異なりますが、優先順位の高いものから順に次の表に示します。
実行される演算
ビット単位の排他的論理和(XOR)
論理演算子は 2 つのオペランドを取り、ブール値の結果を返します。論理演算子は優先順位が異なりますが、優先順位の高いものから順に次の表に示します。
実行される演算
条件演算子は三項演算子であり、3 つのオペランドを取ります。else 条件ステートメントを適用する簡易的な方法です。
実行される演算
代入演算子は 2 つのオペランドを取り、他のオペランドの値に基づいて 1 つのオペランドに値を割り当てます。次の表の代入演算子の優先順位はすべて同じです。
実行される演算
ビット単位での左シフト後代入
ビット単位での右シフト後代入
ビット単位での符号なし右シフト後代入
ビット単位の論理積(AND)を代入
ビット単位の論理積(XOR)を代入
ビット単位の論理和(OR)を代入
0 には、プログラムフローを制御するために使用する 3 つの基本的な条件ステートメントが用意されています。else 条件ステートメントを使用すると、条件をテストし、その条件が満たされている場合はコードブロックを実行し、条件が満たされていない場合は別のコードブロックを実行することができます。別のコードブロックを実行しない場合は、else ステートメントのない if ステートメントを使用できます。else if 条件ステートメントを使用すると、複数の条件をテストできます。例えば、次のコードは、x の値が 20 を超えるかどうかをテストすると共に、x が負の値かどうかをテストします。if または else ステートメントに続くステートメントが 1 つのみの場合、そのステートメントを中括弧で囲む必要はありません。例えば、次のコードは中括弧を使用していません。ただし、常に中括弧を使用することをお勧めします。中括弧で囲まれない条件ステートメントに if ステートメントを後で追加したときに、予想しない動作が起きる可能性があるからです。switch ステートメントは、同じ条件式に依存する実行パスが複数ある場合に便利です。else if ステートメントに似た機能ですが、多少読みやすくなっています。switch ステートメントは、ブール値の条件をテストするのではなく、式を評価し、その結果を使用して実行するコードブロックを決定します。コードブロックは、case ステートメントで始まり、break ステートメントで終わります。getDay() メソッドから返される曜日を表す数に基づいて曜日を印刷します。ループステートメントを使用すると、一連の値または変数を使用して特定のコードブロックを繰り返し実行できます。コードブロックは常に中括弧({})で囲むことをお勧めします。コードブロックに含まれるステートメントが 1 つのみ場合は中括弧を省略できますが、条件の場合と同じ理由から省略することはお勧めしません。これは、後で追加したステートメントがコードブロックから誤って除外される可能性が高くなるためです。コードブロックに含めるステートメントを後で追加するときに、必要な中括弧の追加を忘れた場合、そのステートメントはループの一部としては実行されません。for ループを使用すると、特定の範囲の値に対する変数の繰り返し処理を実行することができます。for ステートメントには、3 つの式を指定する必要があります。それらの式は、初期値に設定する変数、ループがいつ終了するかを指定する条件ステートメントおよび各ループで変数の値を変更する式です。例えば、次のコードは 5 回ループします。出力は 0 ~ 4 の数値となり、各数値は個別の行に出力されます。in ループは、オブジェクトのプロパティまたは配列のエレメントの繰り返し処理を実行します。in ループを使用して、汎用オブジェクトのプロパティの繰り返し処理を実行できます。オブジェクトのプロパティは特定の順序では維持されないので、プロパティは予期しない順序で表示されることがあります。配列のエレメントの繰り返し処理を実行することもできます。クラスがダイナミッククラスでない限り、オブジェクトがユーザー定義クラスのインスタンスである場合、そのプロパティの繰り返し処理を実行することはできません。ダイナミッククラスのインスタンスの場合であっても、動的に追加されるプロパティによってしか繰り返し処理を実行できません。in ループは、XML または XMLList オブジェクトのタグ、オブジェクトプロパティが保持する値、または配列のエレメントのいずれかにすることができる、コレクションの項目の繰り返し処理を実行します。
in ループを使用して汎用オブジェクトのプロパティの繰り返し処理を実行できますが、for
in ループのイテレータ変数には、プロパティの名前ではなく、プロパティが保持する値が含まれます。次の例に示すように、XML または XMLList オブジェクトの繰り返し処理を実行することができます。以下の例が示すように、配列のエレメントの繰り返し処理を実行することもできます。オブジェクトが sealed クラスのインスタンスである場合、そのプロパティの繰り返し処理を実行することはできません。ダイナミッククラスのインスタンスの場合であっても、クラス定義の一部として定義されるプロパティである固定プロパティの繰り返し処理を実行することはできません。例えば、次のコードは、for ループの例と同じ出力を作成します。for ループの代わりに while ループを使用する短所の 1 つは、while ループを使用すると無限ループを記述する可能性が高いことです。カウンタ変数をインクリメントする式を省略した場合、for ループのサンプルコードはコンパイルされませんが、while ループのサンプルコードはコンパイルされます。i をインクリメントする式がないと、ループは無限ループになります。while ループは、コードブロックの実行後に条件がチェックされるため、コードブロックが少なくとも 1 回は実行される while ループです。
次のコードでは、条件が満たされない場合でも出力を生成する do
var キーワードで宣言した変数は、スクリプトの実行中に複数回その値を変更できます。const キーワードで宣言した変数は「定数」と呼ばれ、1 回だけ値を割り当てることができます。初期化された定数に新しい値を割り当てようとすると、エラーが発生します。詳細については、定数を参照してください。クラスのインスタンスではなく、クラスに関連付けられた静的変数は、オブジェクトのクラス全体に適用される情報の格納および共有に役立ちます。例えば、静的変数は、クラスがインスタンス化された回数を記録する場合や可能なクラスインスタンスの最大数を格納しておく場合に適しています。次の例では、クラスのインスタンス化の回数を追跡する totalCount 変数およびインスタンス化の最大回数を格納する MAX_NUM 定数を作成します。例えば、次のコードは正常に動作します。クラスのインスタンスから静的変数にアクセスできないため、次のコードはエラーを返します。コンストラクタまたはインスタンスメソッド内の MAX_NUM に値を割り当てることはできません。次のコードは静的定数を初期化する有効な方法でないため、エラーが生成されます。インスタンス変数には、var および const キーワードを使用し、static キーワードを使用せずに宣言されたプロパティが含まれます。クラス全体ではなくクラスインスタンスに関連付けられたインスタンス変数は、インスタンス固有の値の格納に便利です。例えば、Array クラスには、この Array クラスの特定のインスタンスが保持する配列エレメントの数を格納する length というインスタンスプロパティがあります。インスタンス変数は、var または const として宣言されたかに関係なく、サブクラスではオーバーライドできません。ただし、getter および setter メソッドをオーバーライドすることにより、変数をオーバーライドするのに似た機能を実現できます。詳細については、get および set アクセサメソッドを参照してください。メソッドは、クラス定義の一部である関数です。クラスのインスタンスが作成されると、メソッドはそのインスタンスにバインドされます。クラス外で宣言された関数とは異なり、メソッドは関連付けられているインスタンスと別々に使用することはできません。次のような関数ステートメントを使用できます。または、次のように関数式を割り当てる変数を使用することもできます。通常は、次のような理由から関数式ではなく関数ステートメントを使用します。関数ステートメントは、関数式より簡潔で読みやすくなります。詳細については、メソッドのオーバーライドを参照してください。関数ステートメントでは、識別子(関数の名前)とメソッド本体内のコードがより強力に結合されます。変数の値は代入ステートメントで変更できるので、変数とその関数式の結合をいつでも切り離すことができます。関数式を使用する必要があるのは、関数をプロトタイプオブジェクトに関連付ける場合などです。詳細については、プロトタイプオブジェクトを参照してください。コンストラクタメソッドは、単に「コンストラクタ」と呼ばれることもあり、定義されたクラスと同じ名前を共有する関数です。コンストラクタメソッドに含まれるコードは、クラスのインスタンスが new キーワードで作成されるときに実行されます。status 変数の初期値は、コンストラクタ関数内で設定します。コンストラクタメソッドにはパブリックしか指定できませんが、public 属性を使用するかどうかは任意です。また、ユーザー定義の名前空間をコンストラクタメソッドと使用することもできません。コンストラクタは、super() ステートメントを使用して直接のスーパークラスのコンストラクタを明示的に呼び出すことができます。スーパークラスのコンストラクタを明示的に呼び出さない場合は、コンパイラによってコンストラクタ本体の最初のステートメントの前に呼び出しが自動的に挿入されます。スーパークラスへの参照として super 接頭辞を使用して、スーパークラスのメソッドを呼び出すこともできます。そうしないと、super 参照は意図したとおりに動作しません。コンストラクタ内で return ステートメントを使用することはできますが、値を返すことはできません。つまり、return ステートメントに式または値を関連付けることはできません。したがって、コンストラクタメソッドは値を返すことができず、戻り値の型を指定できません。クラス内でコンストラクタメソッドを定義しない場合、コンパイラによって自動的に空のコンストラクタが作成されます。クラスが別のクラスに拡張している場合は、コンパイラによって生成されるコンストラクタ内に super() 呼び出しが含まれます。静的メソッドは、static キーワードで宣言されたメソッドで、「クラスメソッド」とも呼ばれます。静的メソッドは、クラスのインスタンスではなくクラスに関連付けられ、個々のインスタンスの状態以外のものに影響を与える機能のカプセル化に役立ちます。静的メソッドはクラス全体に関連付けられるため、クラスのインスタンスではなくクラスからのみアクセスできます。静的メソッドは、クラスインスタンスの状態に影響を与えるだけではない機能のカプセル化に役立ちます。つまり、メソッドにクラスインスタンスの値に直接影響しない機能がある場合、そのメソッドは静的です。例えば、Date クラスには、ストリングを取得して数値に変換する parse() という静的メソッドがあります。このメソッドは、クラスの個々のインスタンスに影響を与えないため静的です。parse() メソッドは、日付値を表すストリングを取得し、そのストリングを解析して、Date オブジェクトの内部表現と互換性がある形式で数値を返します。このメソッドは、Date クラスのインスタンスに適用しても意味がないため、インスタンスメソッドではありません。getMonth() メソッドは、Date インスタンスの特定のコンポーネント、つまり月を取得することで、インスタンスの値に対して直接実行されるため、インスタンスメソッドです。静的メソッドは個々のインスタンスにバインドされていないため、静的メソッドの本体内で this または super キーワードを使用できません。this 参照および super 参照は、インスタンスメソッドのコンテキスト内でのみ有効です。0 では静的メソッドは継承されません。詳細については、継承されない静的プロパティを参照してください。インスタンスメソッドは、static キーワードを使用せずに宣言されたメソッドです。インスタンスメソッドは、クラス全体ではなくクラスのインスタンスに関連付けられ、クラスの個々のインスタンスに影響を与える機能の実装に役立ちます。インスタンスメソッドの本体内では、静的変数およびインスタンス変数はスコープ内にあります。つまり、同じクラス内で定義された変数は、単純な識別子を使用して参照できます。これは、スーパークラスの静的変数でも同じです。0 では静的プロパティは継承されませんが、スーパークラスの静的プロパティはスコープ内です。インスタンスメソッドの本体内にある this 参照の値は、メソッドが関連付けられているインスタンスへの参照です。次のコードは、this 参照がメソッドを含むインスタンスを参照していることを示します。override 属性を使用して継承されたメソッドを再定義できます。また、final 属性を使用すると、サブクラスによってメソッドがオーバーライドされないようにできます。詳細については、メソッドのオーバーライドを参照してください。「getter」および「setter」とも呼ばれる get および set アクセサ関数を使用すると、作成したクラスの使いやすいプログラミングインターフェイスを提供すると同時に、情報を非表示およびカプセル化するというプログラミング原則に従うことができます。get および set 関数を使用して、クラスプロパティをクラスに対してプライベートに保持できますが、クラスのユーザーは、クラスメソッドを呼び出すのではなくクラス変数にアクセスしている場合と同じように、これらのプロパティにアクセスできます。また、getter および setter には、読み取りおよび書き込みアクセスを可能にする各プロパティに対して 2 つの公開関数を持つ必要がないという利点もあります。
また、getter および setter 関数では、スーパークラスから継承されるプロパティをオーバーライドできます(通常のクラスメンバー変数を使用したときにはオーバーライドできません)
var キーワードで宣言されたクラスメンバー変数は、サブクラスではオーバーライドできません。バインドメソッドは、単にインスタンスから抽出されるメソッドで、「メソッドクロージャ」とも呼ばれます。バインドメソッドの例には、関数にパラメータとして渡され、関数から値として返されるメソッドがあります。0 で新しく導入されたバインドメソッドは、インスタンスから抽出されたときでもレキシカル環境が保持されるメソッドクロージャに似ています。バインドメソッドとメソッドクロージャの主な違いは、バインドメソッドの this 参照は、バインドメソッドを実装するインスタンスにリンクされたまま、つまりバインドされたままであるという点です。これは、バインドメソッドの this 参照が、常にこのメソッドを実装する元のオブジェクトを指していることを意味します。メソッドクロージャの場合、this 参照は汎用的で、呼び出されたときにこの関数が関連付けられているオブジェクトを指します。this キーワードを使用する場合は、バインドメソッドを理解していることが重要です。this キーワードを使用すれば、メソッドの親オブジェクトを参照できます。ほとんどの ActionScript プログラマは、this キーワードが常にメソッドの定義を含むオブジェクトまたはクラスを参照すると考えますが、メソッドのバインディングがないと必ずしもそうなりません。旧バージョンの ActionScript では、例えば、this 参照はメソッドを実装するインスタンスを常に参照するわけではありませんでした。0 でインスタンスからメソッドを抽出すると、this 参照が元のインスタンスにバインドされないだけでなく、インスタンスのクラスのメンバー変数およびメソッドも使用できません。0 では、メソッドをパラメータとして渡すとバインドメソッドが自動的に作成されるため、これは問題にはなりません。バインドメソッドにより、this キーワードは常にメソッドが定義されたオブジェクトまたはクラスを参照します。このクラスには、バインドメソッドを定義するメソッド foo() およびバインドメソッドを返すメソッド bar() が含まれます。さらに、myFunc 変数に格納されているバインドメソッドは、引き続き ThisTest クラスのメンバー変数にアクセスすることができます。addEventListener() メソッドでは関数またはメソッドをパラメータとして渡す必要があるため、バインドメソッドの追加が最もわかりやすいのはイベントハンドラを使用する場合です。詳細については、クラスメソッドとして定義したリスナー関数を参照してください。
ストリングの基礎
0 のプログラミング / ストリングの操作
ストリングの基礎
ストリングの操作の概要
プログラミング用語では、ストリングは、一連の文字、数字またはその他の文字が 1 つの値として結合されたテキスト値を指します。例えば、このコード行では String データ型の変数を作成し、その変数にリテラルストリング値を代入します。この例が示すように、ActionScript では二重引用符または一重引用符でテキストを囲むことによって、ストリング値を表すことができます。次に、ストリングの例をいくつか示します。ActionScript でテキストを操作する場合は、常にストリング値を操作することになります。
ストリングを操作するための共通タスク
次に、この章で説明するストリングに関連する共通タスクを示します。
改行文字、タブ文字、キーボード上にない文字などの特殊文字の操作
ストリング長の測定
ストリング内の個々の文字の分離
ストリングの結合
ストリングの比較
ストリングの一部の検索、抽出および置換
ストリングの大文字または小文字への変換
重要な概念と用語
この章で使用する重要な用語を次の参照リストに示します。
ASCII:コンピュータプログラムでテキスト文字や記号を表すための体系
ASCII 体系では、26 文字の英字アルファベットに加えて、限定的な追加文字セットがサポートされます。
文字:テキストデータの最小単位(単一の文字または記号)
連結:複数のストリング値を相互に結合し、あるストリング値を別のストリング値の末尾に追加することにより、新しいストリング値を作成します。
空のストリング:テキスト、空白文字またはその他の文字が含まれない、"" と記述されたストリング
ストリング:テキスト値(一連の文字)
ストリングリテラル(「リテラルストリング」):コード内で明示的に記述されるストリング値
二重引用符または一重引用符で囲まれたテキスト値として記述します。
サブストリング:別のストリングの一部を構成するストリング
Unicode:コンピュータプログラムでテキスト文字や記号を表すための標準体系
Unicode 体系では、任意の文字記述システムの任意の文字を使用できます。
0 のプログラミング / 配列の操作
配列の操作の概要
プログラミングでは、1 つのオブジェクトではなく、一連のアイテムを操作することがよくあります。例えば、ミュージックプレーヤーアプリケーションでは、再生待ちの曲をリストとして持つ場合があります。この場合は、リスト上の曲ごとに別々の変数を作成するよりも、すべての Song オブジェクトを 1 つのグループとしてまとめて操作するほうが効率的です。配列とは、一連のアイテム用のコンテナ(曲のリストなど)として機能する 1 つのプログラミング要素です。通常、配列内のすべてのアイテムは同じクラスのインスタンスになりますが、ActionScriptTM では、これは必須条件ではありません。配列内の個々のアイテムは、配列の「要素」と呼ばれます。配列は変数のファイル用引き出しと見なすことができます。変数は配列の要素として追加できます。これは、ファイル引き出しにフォルダを収納するのとよく似ています。引き出しに複数のファイルを収納した後、(引き出し全体を別の場所に移動するように)配列を単一の変数として操作できます。また、(フォルダを 1 つずつめくって情報を検索するように)変数をグループとして操作したり、(引き出しを開いて 1 つのフォルダを選択するように)変数に個別にアクセスしたりすることも可能です。例えば、ユーザーが複数の曲を選択してプレイリストに追加できるミュージックプレーヤーアプリケーションを作成する場合を考えてみます。これは、番号付きのスロット(「インデックス」と呼びます)に各アイテムが格納されている配列です。アイテムには、アドレスのような番号を使用してアクセスします。インデックス配列を表すには、Array クラスを使用します。インデックス配列は、プログラミングにおけるほとんどの要件に適合します。インデックス配列の特殊な使い方として、多次元配列があります。これは、インデックス配列を要素として持つ配列で、格納されているインデックス配列の中にさらに別の要素が格納されています。もう 1 つの配列タイプは、「結合配列」です。この配列では、数値インデックスの代わりにストリングの「キー」を使用して個々の要素を識別します。これは、要素を区別するキーとして任意の型のオブジェクトを使用できる配列です。
配列に関する共通タスク
次に、配列を操作するための一般的なタスクを示します。この章では、これらのタスクについて説明します。
インデックス配列の作成
配列要素の追加と削除
配列要素のソート
配列の一部の抽出
結合配列とディクショナリの操作
多次元配列の操作
配列要素のコピー
配列サクブラスの作成
重要な概念と用語
この章で使用する重要な用語を次の参照リストに示します。
配列:複数のオブジェクトをまとめるためのコンテナとして機能するオブジェクト
結合配列:ストリングのキーを使用して個々の要素を識別する配列
ディクショナリ:キーおよび値と呼ばれるオブジェクトのペアでアイテムが構成されている配列
数値インデックスの代わりにこのキーを使用して 1 つの要素を識別します。
要素:配列内の 1 つのアイテム
インデックス:インデックス配列内の 1 つの要素を識別するための数値 "アドレス"
インデックス配列:各要素を番号付きの要素に格納し、その番号(インデックス)を使用して個々の要素を識別する標準的なタイプの配列
キー:結合配列またはディクショナリ内の 1 つの要素を識別するためのストリングまたはオブジェクト
多次元配列:単一の値ではなく配列であるアイテムを含む配列
正規表現の基礎
0 のプログラミング / 正規表現の使用
正規表現の基礎
正規表現の使用の概要
正規表現は、一連の文字に一致するパターンを表します。通常、正規表現は、テキスト値が特定のパターンと一致しているか(ユーザーが入力した電話番号の桁数が正しいかなど)を確認するときや、特定のパターンに一致するテキスト値の一部を置換するときに使用します。正規表現では、単純なパターンを表すことができます。例えば、特定のストリングが「ABC」に一致することを確認したい場合や、ストリングに出現する「ABC」を別のテキストに置換したい場合があります。このような場合は、文字 A、B、C が順に連続して出現するパターンを定義する次の正規表現を使用できます。正規表現リテラルを囲む区切り文字はスラッシュ(/)です。正規表現には、複雑なパターンや解読困難なパターンが使用されることもあります。例えば、次の正規表現は有効な電子メールアドレスに一致します。正規表現は、ストリング内のパターンを検索したり、文字を置換したりするために使用することがほとんどです。このような場合、正規表現オブジェクトを作成し、String クラスのメソッドのパラメータとして使用します。これらのメソッドの詳細については、ストリング内のパターンの検索およびサブストリングの置換を参照してください。詳細については、ストリングに対して正規表現を使用するメソッドを参照してください。
正規表現の共通タスク
この章では、正規表現の一般的な使用について詳しく説明します。
正規表現パターンの作成
パターンにおける特殊文字の使用
一定範囲の文字や数字に含まれる任意の文字(a から m までの任意の文字など)の特定
考えられる複数の文字からの 1 つの文字の特定
サブシーケンス (パターン内のセグメント) の特定
テキストのパターンに基づく一致と置換
重要な概念と用語
この章で使用する重要な用語を次の参照リストに示します。
エスケープ文字:次に続く 1 文字が、リテラル文字ではなく、メタ文字として扱われることを示す文字
正規構文のシンタックスでは、円記号(\)がエスケープ文字です。このため、円記号の後に別の文字が続く場合は、その文字そのものではなく、特殊なコードとして扱われます。
フラグ:大文字と小文字を区別するかどうかなど、正規表現の使用方法に関するオプションを指定する文字
メタ文字:正規表現パターンの中で、その文字そのものを表すのではなく、特殊な意味を持つ文字
繰り返し制御文字:パターンの一部を繰り返す回数を指定する 1 つまたは複数の文字
例えば、米国の郵便番号が 5 個または 9 個の数字で構成されることを指定するために繰り返し制御文字を使用します。
正規表現:文字のパターンを定義するプログラムのステートメント
別のストリングがそのパターンに一致するかどうかを確認したり、ストリングの一部を置換したりするときに使用します。
正規表現のシンタックス
0 のプログラミング / 正規表現の使用
正規表現のシンタックス
ここでは、ActionScript の正規表現シンタックスを構成するすべての要素について説明します。正規表現には複雑な要素や微妙に意味が異なる機能が数多く存在するので、正規表現の詳細については、Web や書籍で他の参考資料を参照してください。ただし、プログラミング環境が異なると正規表現の実装も異なっている場合があるため注意が必要です。多くの場合、正規表現は単純な文字の連続ではなく複雑なパターンを見つけるために使用します。例えば、次の正規表現では、文字 A、B、C が順に連続して出現し、その後に任意の数字が続くパターンを定義しています。\d というコードは「任意の数字」を表しています。円記号(\)はエスケープ文字と呼ばれ、正規表現の中では、直後に続く文字(この場合は d)との組み合わせによって特別な意味を表現します。この章では、各種のエスケープ文字シーケンスと、正規表現シンタックスに関するその他の機能についても説明します。
次の正規表現では、ABC という一連の文字が出現し、その後に任意の個数の数字が続くパターンを定義しています (アスタリスクが付いていることに注意してください)
このアスタリスク文字(*)は、メタ文字の一種です。メタ文字とは、正規表現の中で特別な意味を持つ文字のことです。アスタリスクは繰り返し制御文字と呼ばれる種類のメタ文字で、文字または文字グループの繰り返し回数を指定する場合に使用します。詳細については、繰り返し制御文字を参照してください。正規表現には、パターンに加え、その正規表現の一致方法を指定するフラグを必要に応じて設定できます。例えば、次の正規表現で使用されている i フラグは、ストリング内の一致箇所を探す際に大文字と小文字を区別しないことを指定するものです。詳細については、フラグとプロパティを参照してください。これらのメソッドの詳細については、ストリング内のパターンの検索およびサブストリングの置換を参照してください。
正規表現のインスタンスの作成
文字、メタ文字、およびメタシーケンス
繰り返し制御文字
フラグとプロパティ
文字、メタ文字、およびメタシーケンス
0 のプログラミング / 正規表現の使用 / 正規表現のシンタックス
文字、メタ文字、およびメタシーケンス
最も単純な正規表現は、次のように一連の文字に一致するものです。ただし、次の各文字はメタ文字と呼ばれ、正規表現の中では特別な意味を持ちます。例えば、次の正規表現は、文字 A の後に 0 個以上の B が続き(メタ文字のアスタリスクが繰り返しを表す)、さらにその後に C が続くストリングに一致します。メタ文字に該当する文字を正規表現のパターン内に含めて、特別な意味を表さないようにするには、エスケープ文字の円記号(\)を付ける必要があります。例えば、次の正規表現は、文字 A の後に B、アスタリスク、および C が続くストリングに一致します。メタシーケンスも、メタ文字と同じように正規表現の中で特別な意味を持ちます。1 つのメタシーケンスは複数の文字によって構成されます。以降のセクションでは、メタ文字とメタシーケンスの詳細な使用方法を示します。
メタ文字について
メタシーケンスについて
メタ文字について
次の表は、正規表現で使用できるメタ文字の一覧です。ストリングの先頭に一致します。ただし、文字クラスの先頭にキャレットを指定した場合は、ストリングの先頭ではなく補集合を意味します。詳細については、文字クラスを参照してください。ストリングの末尾に一致します。特殊文字が持つ特別な意味を無効化します。
また、/1\/2/ のように、正規表現リテラルの中でスラッシュ文字を使用する場合も円記号を使用します(文字 1、スラッシュ、文字 2 の連続に一致)
任意の 1 文字に一致します。直前のアイテムについて 0 回以上の繰り返しに一致します。詳細については、繰り返し制御文字を参照してください。直前のアイテムについて 1 回以上の繰り返しに一致します。詳細については、繰り返し制御文字を参照してください。直前のアイテムについて 0 回または 1 回だけ一致します。詳細については、繰り返し制御文字を参照してください。正規表現の中でグループを定義します。グループは次の場合に使用します。
選択制御文字 | の適用範囲を限定する場合
繰り返し制御文字の適用範囲を指定する場合
後方参照を使用する場合
例えば、次の正規表現に含まれている \1 は、このパターン内にある最初のグループ化括弧に一致したストリングに一致します。詳細については、グループを参照してください。文字クラス (該当位置に一致可能な文字を表す集合) を定義します。文字クラス内でハイフン(-)を使用すると、文字の範囲を指定できます。文字クラス内で ] および - をエスケープするには、円記号を使用します。文字クラス内では、通常メタ文字として扱われる他の文字は、メタ文字でなく一般の文字として扱われます。円記号でエスケープする必要はありません。詳細については、文字クラスを参照してください。選択肢を示し、左側または右側のいずれかにある部分に一致します。
メタシーケンスについて
メタシーケンスは、正規表現パターンの中で特別な意味を持つ一連の文字です。メタシーケンスについて次の表で説明します。直前のアイテムについて、繰り返し回数または回数の範囲を指定します。詳細については、繰り返し制御文字を参照してください。単語構成文字とそれ以外の文字の境界となる位置に一致します。ストリングの先頭または末尾が単語構成文字である場合は、その先頭または末尾にも一致します。2 つの単語構成文字に挟まれた位置に一致します。また、単語構成文字でない 2 つの文字に挟まれた位置にも一致します。数字以外の任意の 1 文字に一致します。改ページ文字に一致します。改行文字に一致します。復帰文字に一致します。任意の空白文字 (スペース、タブ、改行、復帰) に一致します。空白文字以外の任意の 1 文字に一致します。タブ文字に一致します。垂直フィード文字に一致します。単語構成文字以外の任意の 1 文字に一致します。
静止テキストの操作
0 のプログラミング / テキストの操作
静止テキストの操作
静止テキストは、Flash オーサリングツールを使用した場合のみ作成されます。ActionScript を使用して、プログラムによって静止テキストをインスタンス化することはできません。
静止テキストは、テキストが非常に小さく、変更を想定していない場合に便利です(ダイナミックテキストは変更される可能性があります)
静止テキストは、Flash オーサリングツールのステージ上に描画される円や四角形のようなグラフィックエレメントの一種と考えることができます。StaticText クラスを使用して静止テキストのプロパティ値を読み取る機能をサポートします。
通常、ステージ上に配置された静止テキストインスタンスを操作するには、Flash オーサリングツールの「アクション」パネルで flash
いずれの場合も、プログラムによって静止テキストインスタンスをインスタンス化することはできません。静止テキストは、Flash CS3 オーサリングツールを使用した場合に作成されます。0 で既存の静止テキストフィールドへの参照を作成するには、表示リストのアイテムに対して反復処理を行い、変数を割り当てます。例えば、次のようになります。
静止テキストフィールドへの参照が作成されていれば、そのフィールドのプロパティを ActionScript 3
0 で使用できます。次のコードがタイムラインのフレームに関連付けられ、myFieldLabel という名前の変数が静止テキスト参照に割り当てられているものとします。
既存の静止テキストインスタンスをプログラムによって操作する必要がある場合は、flash
次に、作成したインスタンスにメソッドを適用して、値を取得したり、静止テキストの一部を選択したりできます。TextSnapshot クラスは、ロードした SWF の静止テキストフィールドからテキストを取得し、そのテキストをアプリケーションの別の部分の値として使用する場合に便利です。
アイテムレンダラーについて
Flex は、アイテムのリストの表示に使用できるいくつかのコントロールをサポートしています。これらのコントロールを使用すると、アイテムリストをスクロールし、リストからアイテムを選択できるようになります。Flex リストコンポーネントはすべて ListBase クラスから派生したもので、次のようなコントロールがあります。List コントロールは、データプロバイダからデータを取得します。「データプロバイダ」とは、Array または XMLList オブジェクトなどのデータオブジェクトを含むコレクションです。例えば、Tree コントロールはデータプロバイダからデータを読み取ることにより、ツリー構造と各ツリーノードに割り当てられた関連データを定義します。「コレクション」とは、データオブジェクト内のデータアイテムのアクセス、ソート、フィルタおよび変更を行うための一連のメソッドを含むオブジェクトです。コレクションでは、Flex コンポーネントとそこに格納されるデータとの間で一定レベルの抽象関係が作成されます。同じコレクションから複数のコンポーネントを読み込み、コンポーネントが実行時にデータプロバイダとして使用するコレクションを切り替えるか、コレクションをデータプロバイダとして使用するすべてのコンポーネントで、変更内容が反映されるようにコレクションを変更することができます。データプロバイダをモデルとすれば、Flex コンポーネントはそのモデルのビューと考えることができます。モデルとビューを分離することにより、変更が生じたときに両方を修正するのではなく、どちらか一方だけを修正するだけで済むというメリットが生まれます。それぞれのリストコントロールにはデータの表示を制御するデフォルトのメカニズム(ビュー)があり、そのデフォルトはオーバーライドできます。デフォルトビューをオーバーライドするには、カスタム「アイテムレンダラー」を作成します。アイテムレンダラーを使用してデータ表示を制御する以外に、DataGrid、List、Tree の各コントロールでも、ユーザーにデータを編集させることができます。例えば、DataGrid コントロールの Quantity 列をショッピングカートに使用している場合、ユーザーにこの列を更新させることができます。データ表示と同様に、リストコントロールには、ユーザーのデータ編集を可能にするデフォルトメカニズムがあり、このメカニズムはカスタム「アイテムエディタ」を作成するとオーバーライドできます。
デフォルトのアイテムレンダリングとセル編集
それぞれのリストベースのコントロールには、そのコントロールのために定義されたデフォルトのアイテムレンダラーがあります。このアイテムレンダラーでは、データプロバイダの各エレメントはテキストストリングであると見なされます。デフォルトでは、これらのアイテムレンダラーはイメージをテキストに組み合わせます。例えば、次の図はデフォルトのアイテムレンダラーを使用して 3 つのアイテムを表示する List コントロールを示しています。この例では、List コントロールはデフォルトのアイテムレンダラーを使用して、アラスカ、アラバマおよびアーカンソーの郵便番号を示す 3 つのストリングを表示しています。この List コントロールを作成するには、次のコードを使用します。前の例で実行する SWF ファイルは以下のとおりです。この例で使用されるデータはインライン静的データなので、ArrayCollection インスタンス内に明示的にラップする必要はありません。ただし、変化することがあるデータを扱う場合は、常にコレクションを明示的に指定するようにするのが適切です。詳しくは、データプロバイダおよびコレクションの使用を参照してください。次の例では、DataGrid コントロールのデータプロバイダに、アーチスト、アルバム名および価格を表示するフィールドが含まれています。これらの各フィールドは、データをテキストとして表示するデフォルトのアイテムレンダラーを使用して、DataGrid コントロールに表示されています。次のコードを使用すると、前の図に示した例が作成されます。前の例で実行する SWF ファイルは以下のとおりです。編集可能なコンポーネントを使用すると、リストコントロールのデータを変更して、その変更内容を、コントロールの基になるデータプロバイダに戻せます。デフォルトでは、リストコントロールは TextInput コントロールをアイテムエディタとして使用します。つまりリストコントロールでセルを選択すると、次の図のように、セルの現在の内容を含む TextInput コントロールが自動的に開き、内容を編集できるようになります。この図では、デフォルトのアイテムエディタを使用して、DataGrid コントロールの最初のアルバムの価格を編集しています。アイテムエディタについて詳しくは、アイテムエディタの操作を参照してください。
カスタムアイテムレンダラーとカスタムアイテムエディタの使用
リストコンポーネントの表示を制御するには、カスタムアイテムレンダラーまたはカスタムアイテムエディタを作成します。カスタムアイテムレンダラーとカスタムアイテムエディタでもリストコントロールの基になる機能を使用しますが、この 2 つを使用すると、データの表示と編集を制御できるようになります。カスタムアイテムレンダーとカスタムアイテムエディタには、次のようないくつかの利点があります。テキストの表示をユーザーによりわかりやすい外観に変えることで、さらに効果的なユーザーインターフェイスを作成できます。複数のエレメントを、ラベルやイメージなどの 1 つのリストアイテムに組み込めます。データの表示をプログラムで制御できます。次の List コントロールは、デフォルトのアイテムレンダリングとセル編集で説明している List コントロールを変更したものです。この例では、カスタムアイテムレンダラーを使用して、州名、州都および各州の公式ウェブサイトの URL をそれぞれのリストアイテムに表示しています。この例のコードについては、例:アイテムレンダラーを List コントロールと共に使用するを参照してください。次の図では、DataGrid コントロールの最初と 3 番目の列にデフォルトのアイテムレンダラーを使用しています。また、2 番目の列にはカスタムアイテムレンダラーを使用して、DataGrid コントロールにアルバムカバーとアルバムタイトルを表示しています。この例のコードについては、複雑なインラインアイテムレンダラーまたはインラインアイテムエディタの作成を参照してください。カスタムアイテムレンダラーを定義してセルの表示を制御できるのと同じように、カスタムアイテムエディタを使用してセルの内容を編集できます。例えば、カスタムアイテムレンダラーでイメージを表示する場合、ComboBox コントロールを使用するカスタムアイテムエディタを定義して、使用可能なイメージのリストからユーザーにイメージを選択させることができます。この例のコードについては、単純なアイテムエディタコンポーネントの作成を参照してください。アイテムレンダラーを使用していても、そのコントロールにアイテムエディタが存在しないこともあります。多くの場合、コントロールは表示専用で、編集できません。また、対応するアイテムレンダラーを使用せずに、アイテムエディタを使用することもできます。例えば、デフォルトのアイテムレンダラーを使用して、男性や女性または true や false などの情報をテキストとして表示できます。ただし、その後でカスタムアイテムエディタを ComboBox コントロールと共に使用し、値の変更時にセルに入力できる値の選択肢を表示することができます。
アイテムレンダラーとアイテムエディタのアーキテクチャ
アイテムレンダラーまたはアイテムエディタでリストコントロールの内容を正しく処理するため、リストコントロールからアイテムレンダラーまたはアイテムエディタに情報を渡せるようにする必要があります。また、アイテムエディタからリストコントロールに更新された情報を戻せるようにします。次の図は、リストコントロールとアイテムレンダラーまたはアイテムエディタとの関係を示しています。アイテムレンダラーまたはアイテムエディタに情報を渡すために、Flex では、アイテムレンダラーまたはアイテムエディタの data プロパティにセルデータが設定されます。前の図に、アイテムレンダラーまたはアイテムエディタにデータを渡すために使用されている data プロパティが示されています。デフォルトでは、アイテムエディタからリストコントロールに戻せる値は、編集されたセルの新しい値になる 1 つだけです。複数の値を戻すには、リストコントロールにデータを戻す追加のコードを作成する必要があります。詳しくは、例:アイテムエディタからの複数の値の取得を参照してください。アイテムレンダラーまたはアイテムエディタで使用する Flex コンポーネントのうち、リストコントロールのセルデータにアクセスする必要があるものには、IDataRenderer インターフェイスを実装し、data プロパティをサポートする必要があります。リストコントロールから渡されたデータにアクセスする必要がなければ、data プロパティをサポートしないコンポーネントでも、アイテムレンダラーで使用できます。data プロパティの内容は、次の表に示すようにコントロールのタイプによって異なります。DataGrid コントロールの行全体で使用するデータプロバイダエレメントを含みます。つまり、DataGrid コントロールのそれぞれのセルに異なるアイテムレンダラーを使用する場合でも、行の各セルは data プロパティの同じ情報を受け取ります。List コントロールまたは Tree コントロールのノードで使用するデータプロバイダエレメントを含みます。セルで使用するデータプロバイダエレメントを含みます。メニューアイテムで使用するデータプロバイダエレメントを含みます。メニューバーのアイテムで使用するデータプロバイダエレメントを含みます。アイテムエディタについて詳しくは、アイテムエディタの操作を参照してください。
アイテムレンダラーとアイテムエディタのインターフェイスについて
Flex のアイテムレンダラーとアイテムエディタのアーキテクチャは、複数のインターフェイスによって定義されます。アイテムレンダラーやアイテムエディタとして使用できる Flex コンポーネントは、これらのインターフェイスを実装します。独自のカスタムコンポーネントを作成して、アイテムレンダラーまたはアイテムエディタとして使用する場合は、使用目的に応じて、これらのインターフェイスをコンポーネントに実装する必要があります。次の表で、アイテムレンダラーとアイテムエディタで使用するインターフェイスについて説明します。アイテムレンダラーまたはアイテムエディタに情報を渡すために使用する data プロパティを定義します。すべてのアイテムレンダラーとアイテムエディタに、このインターフェイスを実装する必要があります。このインターフェイスは、チャートレンダラークラスなどの多くの Flex コンポーネントや Flex コントロールに実装されています。ドロップインのアイテムレンダラーやアイテムエディタに必要な listData プロパティを定義します。ドロップインのアイテムレンダラーとアイテムエディタすべてに、このインターフェイスを実装する必要があります。詳しくは、ドロップインアイテムレンダラーとドロップインアイテムエディタの作成を参照してください。listData プロパティの値の実際のデータ型は、ドロップインのアイテムレンダラーまたはアイテムエディタを使用するコントロールによって異なります。Chart コントロール以外のすべての Flex コントロールで使用するために、アイテムレンダラーまたはアイテムエディタに実装する必要があるインターフェイスの完全セットを定義します。
インターフェイスの完全セットに含まれるのは、そのため、カスタムアイテムレンダラーまたはカスタムアイテムエディタを UIComponent クラスのサブクラスとして作成する場合、実装する必要があるのは IDataRenderer インターフェイスのみです。
アイテムレンダラーとアイテムエディタを使用したアプリケーションレイアウト
TileList コントロールと HorizontalList コントロールを除くすべてのリストコントロールは、そのコンテンツのデフォルトの高さと幅を計算する際に、アイテムレンダラーを無視します。デフォルトでは、アイテムレンダラーは、コントロールの幅の長さいっぱい、または DataGrid コントロールの列の幅の長さにサイズ変更されます。そのため、デフォルト以外のサイズを必要とするカスタムアイテムレンダラーを定義する場合は、コントロールのサイズを明示的に指定する必要があります。List コントロールや Tree コントロールなどの垂直方向のコントロールは、rowHeight プロパティを使用してデフォルトのセルの高さを決定します。この設定を行わないと、Flex によって各セルの高さが 20 ピクセルに設定されます。これらのプロパティを省略すると、Flex はコントロールのデータプロバイダを調べ、アイテムレンダラーが指定されている場合はそのサイズも含めて、各セルのデフォルトのサイズを決定します。これ以外の場合、Flex は各セルの高さと幅を 50 ピクセルに設定します。
チャート軸ラベルの回転
次の例は、両方向の軸ラベルを 45 度回転させたグラフを示します。軸ラベルを回転させるには、Flex アプリケーションにフォントを埋め込む必要があります。フォントを埋め込まずに軸ラベルを回転させると、軸ラベルは水平にレンダリングされます。次の <mx:Style> ブロックでは、Flex アプリケーションにフォントを埋め込み、水平および垂直軸ラベルを 45 度回転させたチャートコントロールにそのフォントを適用しています。前の例で実行する SWF ファイルは以下のとおりです。この方法では、ラベルの外観を定義するクラスを指定できます。チャートのラベルには、このクラスの data プロパティが使用されます。次の例では、<mx:Component> タグを使用してカスタムコンポーネントをインラインで定義し、長いラベルの値の末尾が切り捨てられないようにチャートの水平軸のラベルに ToolTip オブジェクトを追加しています。前の例で実行する SWF ファイルは以下のとおりです。
横棒グラフの使用
BarChart コントロールは、データ内の値によって長さが決まる一連の横棒でデータを表す場合に使用します。BarChart コントロールを使用すると、集合横棒、積み上げ、積み重ね、構成比、高低など、様々な形式の横棒グラフを表すことができます。詳細については、チャートの積み重ねを参照してください。次の表で、横棒グラフの定義に使用する BarSeries チャート系列のプロパティについて説明します。チャート内の各横棒の下端の y 軸位置を決定するデータプロバイダのフィールドを指定します。このプロパティを省略すると、データプロバイダ内でのデータの順序に従って横棒が並べられます。各横棒の終端の x 軸位置を決定するデータプロバイダのフィールドを指定します。横棒の下端の x 軸位置を決定するデータプロバイダのフィールドを指定します。このプロパティは、積み上げグラフ、積み重ねグラフ、または構成比グラフには影響しません。前の例で実行する SWF ファイルは以下のとおりです。横棒グラフは、本質的に時計回りに 90 度回転させた縦棒グラフなので、横棒グラフと縦棒グラフには共通する特性が多数あります。詳細については、縦棒グラフの使用を参照してください。
アプリケーションコンパイラについて
コンポーネントコンパイラはライブラリプロジェクトで使用されます。オプションの設定方法は異なりますが、これは mxmlc コマンドラインコンパイラの機能に似ています。後で展開する Flex Builder プロジェクトをコンパイルする場合は、このコンパイラを使用します。mxlmc コンパイラは、Web サイトに展開するための SWF ファイルを作成するときにコマンドラインから開きます。通常は、アプリケーションのルート MXML ファイル名をコンパイラに渡します。詳細については、mxmlc アプリケーションコンパイラの使用を参照してください。これにより、アプリケーションの迅速なコンパイル、テスト、展開が可能になります。MXML ファイルを SWF ファイルにコンパイルし、コンパイルしたファイルとそのラッパーファイルを Web サーバーに展開する代わりに、ブラウザで MXML ファイルを更新するだけで済みます。これらについては、アプリケーションコンパイラのオプションについてで説明します。このコンパイラでは、ルートアプリケーション MXML ファイルが少なくとも 1 つ必要です。このコンパイラは、後で展開するための SWF ファイルをプリコンパイルする場合や、Flex Web アプリケーションを実行するサーバーで直ちに展開する場合に使用します。Flex Builder アプリケーションコンパイラを開くには、プロジェクト/プロジェクトのビルドを選択します。コンポーネントコンパイラはライブラリプロジェクトで使用されます。コンパイラの設定を編集するには、プロジェクト/プロパティ/Flex コンパイラダイアログボックスの設定を使用します。コンパイラオプションの詳細については、アプリケーションコンパイラのオプションについてを参照してください。一部のオプションは、Flex コンパイラダイアログボックスの GUI コントロールで実装します。ソースパスとライブラリのオプションを設定するには、プロジェクト/プロパティ/Flex ビルドパスを選択し、Flex ビルドパスダイアログボックスを使用します。ほとんどのオプションの値は、「追加コンパイラ引数」フィールドでコマンドラインと同じシンタックスを使用して設定します。Flex コンパイラダイアログボックスの設定オプション用シンタックスの詳細については、コマンドラインコンパイラについてを参照してください。デフォルトでは、Flex Builder のコンパイルオプションはプロジェクトのプロパティで確認できます。設定ファイルを使用する場合は、独自のファイルを作成して、それを load-config オプションでコンパイラに渡すことができます。設定ファイルを使用したコンパイラオプションの設定の詳細については、設定ファイルについてを参照してください。HTML ラッパーの詳細については、ラッパーの作成を参照してください。Flex Builder コンパイラでは、インクリメンタルコンパイルがデフォルトで使用されます。インクリメンタルコンパイルの詳細については、インクリメンタルコンパイルについてを参照してください。このコンパイラは、シェルスクリプトとして、または Windows システムや UNIX システムで使用するための実行ファイルとして開くことができます。このコンパイラは、後で展開する Flex アプリケーションのプリコンパイルに使用します。このコマンドラインコンパイラは Flex SDK と共にインストールされます。mxmlc ユーティリティを使用するには、シンタックス、および設定ファイルの使用方法を理解する必要があります。詳細については、コマンドラインコンパイラについてを参照してください。mxmlc ユーティリティの基本シンタックスは、次のとおりです。デフォルトのオプションは、SWF ファイルにコンパイルするターゲットファイルで、値を指定する必要があります。オプションの値をスペースで区切って複数指定する場合は、次のように、ターゲットファイルを追加する前、リストの最後にハイフンを 2 つ指定します。次に例を示します。高度なオプションも含め、mxmlc について用意されているすべてのオプションを表示する場合は、次のコマンドを使用します。output オプションで出力ファイルと場所を指定しない限り、デフォルトの出力場所はターゲットと同じディレクトリです。mxmlc で生成した SWF ファイルを展開する場合は、独自のラッパーを作成する必要があります。ラッパーは HTML タグに SWF オブジェクトを埋め込む場合に使用します。HTML ラッパーの作成の詳細については、ラッパーの作成を参照してください。xml ファイルのデフォルトのコンパイラ設定を使用します。このファイルの設定を変更することも、別のカスタム設定ファイルを使用することもできます。設定ファイルの使用の詳細については、設定ファイルについてを参照してください。mxmlc コンパイラは広範なオプションで高度にカスタマイズできます。コンパイラオプションの詳細については、アプリケーションコンパイラのオプションについてを参照してください。詳細については、Java を使用したコマンドラインコンパイラの呼び出しを参照してください。
Flex ビジュアルコンポーネントの使用
ビジュアルコンポーネント(通常は「コンポーネント」と略されます)は、アプリケーションの要件に合わせて制御および設定できる柔軟な属性を備えています。
ビジュアルコンポーネントについて
ビジュアルコンポーネントのクラス階層
ビジュアルコンポーネントのサイズ設定
イベントの処理
スタイルの適用
ビヘイビアの適用
スキンの適用
実行時におけるコンポーネントの外観の変更
コンポーネントの拡張
つまり、メインボタン、およびアイコンのみのポップアップボタンと呼ばれる小さなボタンです。ポップアップボタンは、クリックすると、ポップアップコントロールと呼ばれる 2 番目のコントロールが開きます。PopUpButton コントロール外の場所またはポップアップコントロール内をクリックすると、ポップアップコントロールが閉じます。PopUpButton コントロールの一般的な使用法の 1 つとして、ポップアップボタンで、メインボタンの機能やラベルを変更する List コントロールや Menu コントロールを開くことが挙げられます。次の例は、Menu コントロールを使用しています。この選択は、メインボタンの右側にある小さなポップアップボタンをクリックして、表示されるポップアップメニューからボタンをクリックして行います。メインボタンのテキストは、実行するアクションを示します。ユーザーがメニューの別のアイテムを選択するたびにこのテキストは変わります。PopUpButton コントロールは、メニューの表示だけでなく、任意の Flex コントロールをポップアップコントロールとして表示できます。例えば、ユーザーがドキュメントを確認用に送信できるワークフローアプリケーションでは、部門構成を視覚的に表したものとして Tree コントロールを使用できます。PopUpButton コントロールのポップアップボタンでは、メッセージの受信者を選択できるツリーが表示されます。ポップアップするコントロールは、メインボタンの外観やアクションに影響を与えないようにする必要があります。代わりに、このコントロールに独自のアクションを設定できます。例えば、メインボタンが最後のアクションのみを取り消し、ポップアップコントロールが複数のアクションを選択によって取り消すことができる List コントロールとなっている場合、取り消し用の PopUpButton コントロールを作成できます。コントロールには、次のような特性があります。open() メソッドと close() メソッドを使用すると、ポップアップボタンを使用せずに、ポップアップコントロールをプログラムで開いたり閉じたりできます。ポップアップコントロールが開いたり閉じたりすると、open イベントと close イベントが送出されます。Menu コントロールやポップアップコントロールは、一度開くと通常どおり機能します。ユーザーがメニューアイテムを選択する時点を認識するには、次の例に示すように、Menu コントロールの change イベントにイベントリスナーを定義します。前の例で実行する SWF ファイルは以下のとおりです。
ユーザーの操作
マウスを PopUpButton コントロールの任意の場所の上に移動すると、ボタンの境界とメインボタンやポップアップボタンがハイライト表示されます。ボタンをクリックすると、click イベントが送出されます。ポップアップボタンをクリックすると、ポップアップコントロールがポップアップ表示され、open イベントが送出されます。PopUpButton コントロール外の場所またはポップアップコントロール内をクリックすると、ポップアップコントロールが閉じ、close イベントが送出されます。次のキーストロークを使用すると、ユーザーは PopUpButton コントロールを移動できます。メインボタンをクリックしたときと同様に動作します。ポップアップコントロールを開き、open イベントを開始します。ポップアップコントロールのキーボード処理が有効になります。ポップアップコントロールを閉じ、close イベントを開始します。注意: 開いたポップアップコントロールを終了するために、Tab キーを使用することはできません。選択するか、Ctrl + ↑(上向き矢印)キーの組み合わせでコントロールを閉じる必要があります。
カーソルの作成と削除
Cursor Manager ではカーソルの優先順位リストが制御されており、リスト内で優先度が最も高いカーソルが表示されます。カーソルリストに、同じ優先度を持つカーソルが複数ある場合、最も新しく作成されたカーソルが表示されます。このメソッドにより、カーソルリストに新しいカーソルが追加されます。新しいカーソルが最も高い優先度を持つ場合、すぐに表示されます。優先度がリスト内の既存のカーソルよりも低い場合は、高い優先度を持つカーソルが削除されるまで、新しいカーソルは表示されません。削除されたカーソルが現在表示されているカーソルの場合、リスト内に次のカーソルがあれば、それが表示されます。リストが空になると、デフォルトのシステムカーソルが表示されます。表示するカーソルのクラス名です。カーソルの優先度レベルです。デフォルト値は 2 です。マウスポインタの位置を基準としたカーソルの x 方向オフセットです。デフォルト値は 0 です。マウスポインタの位置を基準としたカーソルの y 方向オフセットです。デフォルト値は 0 です。(マルチウィンドウ環境で)カーソルを表示するウィンドウがわかっている必要があります。このメソッドは、新しいカーソルの ID を返します。このメソッドのシグネチャは次のとおりです。次の例では、大きなイメージファイルのロード中に、カーソルをカスタムの待機カーソルまたはビジーカーソルに変更します。ロードが完了すると、ビジーカーソルは削除され、カーソルがシステムカーソルに戻ります。注意: Flex フレームワーク には、デフォルトのビジーカーソルが用意されています。このカーソルの使用方法について詳しくは、ビジーカーソルの使用を参照してください。前の例で実行する SWF ファイルは以下のとおりです。この例では、カーソルイメージに JPEG イメージが使用されています。または、次の例に示すように SWF ファイルからシンボルを参照することもできます。SWF ファイルを使用する利点は、アニメーションカーソルを作成できることです。
データモデルについて
「データモデル」とは、アプリケーション固有のデータを格納するためのプロパティを持つ ActionScript オブジェクトです。Adobe® FlexTM アプリケーションとサーバーとの間の通信が必要になるのは、Flex アプリケーションが入手できないデータを取得するときと、Flex アプリケーションからの新しいデータでサーバーサイドのデータソースを更新するときだけです。データモデルはデータ検証に使用できます。また、データモデルにクライアントサイドのビジネスロジックを含めることができます。アプリケーションの計画を立てる際に、アプリケーションで格納する必要のあるデータの種類や、データの操作方法を決定します。これにより、必要なデータモデルの種類が決まります。例えば、従業員のデータを格納するアプリケーションを作成するとします。単純な従業員モデルには、名前、部署、電子メールアドレスなどのプロパティを含めます。
フォントマネージャについて
Flex には、埋め込みフォントを処理するための複数のフォントマネージャがあります。フォントマネージャは、埋め込みフォント定義を使用して Flash Player に各文字を描画します。この処理は「トランスコード」と呼ばれます。システムフォントはトランスコードしません。フォントの埋め込み時にフォントの場所を指定すると、コンパイラは Batik フォントマネージャを使用します。一般に、Batik フォントマネージャでは、JRE フォントマネージャに比べてより円滑なレンダリングと正確な線メトリクス(複数行のテキストや行の長さの計算に影響)が提供されます。システムにシステムフォントをインストールすると、Batik フォントマネージャではシステムフォントがサポートされないので、コンパイラは JRE フォントマネージャを使用します。AFE フォントマネージャは OpenType フォントをトランスコードするために使用できる唯一のフォントマネージャです。TrueType フォントもトランスコードできますが、それは URL フォントだけで、システムフォントではありません。OpenType フォントを埋め込むと、AFE フォントマネージャ以外のフォントマネージャでは OpenType フォントがサポートされないので、コンパイラは AFE フォントマネージャを使用してフォントをトランスコードします。ただし、OpenType フォントがシステムフォントになっている場合に限り、コンパイラによってエラーがスローされます。いずれのフォントマネージャでも、システムフォントとして埋め込まれている OpenType フォントはトランスコードできません。次の表に、各フォントマネージャでサポートされているフォントを示します。xml ファイルで、どのフォントマネージャを使用できるかを決定します。デフォルト設定では、次の例に示す優先順位ですべてのフォントマネージャを使用します。つまり、デフォルトでは優先されるフォントマネージャは Batik フォントマネージャです。コンパイラは、最初にこのフォントマネージャを使用してフォントをトランスコードできるかどうかを確認します。トランスコードできない場合は、AFE フォントマネージャを使用してフォントをトランスコードできるかどうかを確認します。他のフォントマネージャでもトランスコードできない場合、最後に、JRE フォントマネージャでフォントをトランスコードできるかどうかを確認します。
フォントに関連するコンパイルエラーまたはトランスコーディングエラーが発生する場合は、まず flex-config
xml ファイルか、コマンドラインのコンパイラ引数を使用して、フォントマネージャの順序を変更してください。MenuBar コントロールでは、最上位のメニューを水平なメニューバーとして表示します。メニューバーのそれぞれのアイテムは、サブメニューをポップアップで表示できます。MenuBar コントロールは、Menu コントロールと同じ方法でデータプロバイダを解釈し、Menu コントロールと同じイベントをサポートします。つまり、ポップアップメニューとしては機能せずに、アプリケーション上に常に表示されます。Menu コントロールの詳細については、Menu コントロールのイベントを参照してください。このコントロールは、データプロバイダメニューの最上位のラベルを示しています。ユーザーが最上位のメニューアイテムを選択すると、MenuBar コントロールはサブメニューを開きます。ユーザーが他の最上位メニューアイテムを選択するか、サブメニューアイテムを選択するか、MenuBar の領域外をクリックするまで、サブメニューは表示されたままになります。MenuBar コントロールでは、Menu コントロールと同じタイプのデータプロバイダを使用します。Menu コントロールと MenuBar コントロールに使用するデータプロバイダの詳細については、メニューの構造とデータの定義を参照してください。階層データプロバイダの詳細については、階層データオブジェクトを参照してください。XML ベースのデータプロバイダを使用する場合は、次の規則に注意してください。このように設定しない場合、MenuBar にはルートのみがボタンとして表示されます。前の例で実行する SWF ファイルは以下のとおりです。MenuBar コントロールの最上位ノードは、メニューバーのボタンになります。したがって、この例の MenuBar コントロールでは、前の図のように 4 つのラベルが表示されます。XML データ内のノードタグには、どのような名前でも割り当てられます。type 属性など、MenuBar コントロールにとって意味のある属性またはフィールドがいくつかあります。Flex によるデータプロバイダのデータの解釈方法と使用方法については、メニュー項目情報の指定と使用を参照してください。MenuBar コントロールのユーザの操作は Menu コントロールとほとんど同じですが、次の違いがあります。MenuBar コントロールにフォーカスがある場合、左矢印を押すと前のメニューが開きます。現在のメニューバーのアイテムに閉じたポップアップメニューがある場合、右向き矢印を押すと現在のメニューが開きます。ポップアップメニューが開いている場合は、左向き矢印で次のメニューが開きます。この動作は、MenuBar コントロールの端に達すると反対の端に戻ります。詳細については、Menu コントロールのユーザー操作を参照してください。
モジュールのコンパイル
モジュールをコンパイルする方法は、Flex アプリケーションをコンパイルする方法と似ています。コマンドラインで、mxmlc コマンドラインコンパイラを使用します。次に例を示します。モジュールをコンパイルした結果として、アプリケーションにロードする SWF ファイルが生成されます。モジュールベースの SWF ファイルをスタンドアローンアプリケーションとして実行することや、ブラウザウィンドウにロードすることはできません。1 つのモジュールとしてアプリケーションにロードする必要があります。モジュールをコンパイルするときには、モジュールとそれを使用するアプリケーションの両方にある冗長な部分を削除することをお勧めします。このためには、アプリケーションのリンクレポートを作成し、レポートに記載されているモジュールのアセットをすべて外部化します。詳細については、モジュールサイズの削減を参照してください。
モジュールサイズの削減
モジュールサイズは、モジュールで使用されるコンポーネントとクラスによって異なります。デフォルトでは、モジュールにはモジュールのコンポーネントが依存しているすべてのフレームワークコードが含まれます。したがって、アプリケーションのクラスと重複するクラスがリンクされるので、モジュールのサイズが大きくなる場合があります。モジュールのサイズを削減するには、アプリケーションに含まれているクラスを外部化するようにモジュールに指示することで、モジュールを最適化します。これには、カスタムクラスとフレームワーククラスが含まれます。この結果、モジュールには必要とするクラスのみ含まれ、フレームワークコードと他の依存関係はアプリケーションに含まれます。コマンドラインコンパイラを使用してフレームワーククラスを外部化するには、モジュールをロードするアプリケーションからリンカーレポートを生成します。このレポートを、モジュールの load-externs コンパイラオプションへの入力として使用します。コンパイラにより、すべてのクラスは、アプリケーションが定義を含むモジュールから外部化されます。この処理は、Flex Builder でメインアプリケーションとは独立したプロジェクトにモジュールがある場合にも必要です。
コマンドラインコンパイラでのリンカーレポートの作成と使用
リンカーレポートを生成し、アプリケーションをコンパイルします。リンカーレポートのデフォルトの出力場所はコンパイラと同じディレクトリです。この場合は、bin ディレクトリに出力されます。
モジュールの再コンパイル
モジュールを変更しても、そのモジュールが同じプロジェクトにある場合は、そのモジュールを使用するアプリケーションを再コンパイルする必要はありません。これは、アプリケーションは実行時にモジュールをロードしますが、コンパイル時にはモジュールをチェックしないからです。同様に、アプリケーションを変更しても、モジュールを再コンパイルする必要はありません。アプリケーションでコンパイル時にモジュールがチェックされないのと同様に、モジュールでは実行時までアプリケーションがチェックされません。モジュールが、そのモジュールをロードするアプリケーションとは独立したプロジェクトにある場合は、モジュールを単独で再コンパイルする必要があります。ただし、リンカーレポートまたは共通コードに影響する可能性のある変更を加えた場合は、アプリケーションとモジュールの両方を再コンパイルする必要があります。モジュールの再コンパイルが必要となる場合があります。将来の Flex アプリケーションでモジュールを確実に使用できるようにするには、モジュールとモジュールが必要とするすべてのクラスをコンパイルします。このことは、他のアプリケーション内でロードするアプリケーションにも当てはまります。
モジュールのデバッグ
モジュールを使用するアプリケーションをデバッグするには、モジュールをコンパイルするときに、モジュールに対して debug コンパイラオプションを true に設定します。これを行わないと、モジュールに対するブレークポイントの設定や、その他のデバッグ情報のモジュールからの収集を行えません。コマンドラインでは、デバッグはデフォルトで無効になっています。また、デバッグするモジュールをロードするアプリケーションをコンパイルするとき、debug オプションを true に設定する必要があります。複数のモジュールを使用するときに発生する一般的な問題は、他のモジュールが使用する必要があるクラス定義をモジュールが所有している場合があることです。クラス定義は子アプリケーションドメインにあるので、最初にクラス定義をロードしたモジュールはそのクラスの定義を使用できますが、他のモジュールがそのクラスを使用しようとするとエラーが発生します。この解決方法は、クラス定義をメインアプリケーションドメインに格上げして、すべてのモジュールでそのクラスを使用できるようにすることです。詳細については、モジュールのドメインを参照してください。OLAP スキーマでは、フラットなデータを OLAP キューブで表現する方法と、OLAP クエリでデータを集計する方法を定義します。通常は、MXML でスキーマを定義します。ただし、この場合は MXML の場合よりも多くのコーディングが必要となります。次の表では、OLAP スキーマの定義に使用するクラスとインターフェイスについて説明します。スキーマのインスタンスです。スキーマで作成された OLAP キューブです。スキーマのディメンションです。ディメンションの属性です。ディメンションの階層です。階層のレベルです。ディメンションのメジャーです。
スキーマ定義の一般的な形式
以下にその例を示します。
メジャーの集計方法の指定
OLAP スキーマを作成する一環として、キューブの各ポイントに設定するメジャーの値となるデータフィールドを指定します。メジャーは、OLAP キューブのポイントのデータ値に対応しています。例えば、売上高情報のスキーマを定義する場合は、キューブのメジャーとして製品の売上高を指定し、集計タイプとして SUM を指定します。スキーマでは、OLAP キューブの単一のポイントに対して 1 つまたは複数のメジャーを定義できます。スキーマの最初のメジャーは「デフォルトメジャー」と呼ばれ、明示的に指定しなかった場合に OLAP クエリから返されるメジャーとなります。特定のメジャーを選択する方法について詳しくは、デフォルト以外のメジャーを使用したクエリの作成を参照してください。次の例は、MXML のスキーマ定義の一部を示したもので、スキーマに対して 2 つのメジャーを指定しています。スキーマを作成する場合は、メジャーの名前、メジャーのデータとして使用する入力用のフラットなデータのデータフィールド、およびメジャーの集計方法を指定します。このスキーマを使用してキューブを定義し、製品や地域などのデータの特性ごとに売上高とコストの情報を合計することができます。平均や最大値など、その他の集計方法で売上高のデータを集計する場合は、別のスキーマを作成して、OLAP キューブを個別に定義します。次の例は、別の MXML スキーマ定義の一部分を抜き出したものです。ここでは、売上高データの集計方法が MAX に、コストデータの集計方法が MIN に指定されています。スキーマによっては、実行できるクエリのタイプが制限されたり、集計を作成できる詳細レベルが制限されたりするので、スキーマの定義方法には注意する必要があります。
スキーマのディメンションの作成
OLAPSchema インスタンスでは任意の数のディメンションを定義することが可能で、入力データによってのみ制限されます。ディメンションは単一レベルの単純なものでも、複数レベルの複雑なものでも定義できます。スキーマのディメンションの基本的な形式は常に同じです。このスキーマの以下の点に注目してください。ディメンションは、まず OLAPAttribute クラスを使用して、入力用データセットのデータフィールドを指定しています。これは、ディメンションのメンバーに値を設定するために使用されます。そのため、ディメンションには複数のレベルを持つ階層が含まれるものと見なされます。これは、階層に単一のレベルしか含まれない場合も同様です。ディメンションは、1 つまたは複数の OLAPLevel クラスのインスタンスを指定して、入力データのフィールドをディメンションに関連付けています。
単一レベルのディメンションの定義
単純なディメンション(単一レベルのディメンション)を作成するには、次の例のようにディメンションの階層を定義します。この例では、入力データの customer フィールドが、ディメンションのメジャー全体を定義しています。
複数レベルのディメンションの定義
データフィールドが複数ある場合は、データのフィールドごとに個別のディメンションを作成するのではなく、関連するデータフィールドを単一のディメンションの中でグループ化することができます。次の例の TimeDim ディメンションでは、2 つのレベルを持つ階層ディメンションを定義しています。このスキーマ定義では、すべての時期、個別の年、個別の四半期または特定の年の個別の四半期についてデータを集計できます。TimeDim ディメンションには、最も包括的なレベルとして Year レベルが含まれ、より詳細なレベルとして Quarter レベルが含まれていることに注意してください。一般的に、階層の最初のレベルでは最も包括的なレベルを定義し、より詳細なレベルを後続のレベルで定義します。階層スキーマを作成する利点は、最上位レベルのデータ集計を抽出するクエリでも、より詳細なデータを抽出するためにドリルダウンを行うクエリでも記述できることです。前のスキーマ定義では、year など、最も包括的なフィールドに基づいてデータを集計する OLAP クエリを記述することができます。また、より詳細な結果を得るためにドリルダウンを行い、各年の四半期、各四半期の月または各年の月に基づいてデータを集計するクエリを記述することもできます。
スキーマのデフォルトメンバーの作成
ここまでに示してきた OLAP スキーマのほとんどは、以下の形式で定義されています。デフォルトメンバーは階層に対して自動的に作成され、階層のすべてのレベルの集計が含まれます。前のスキーマでは、デフォルトメンバーに、すべての年のすべての四半期に関するスキーマのメジャーの集計が含まれています。デフォルトメンバーは、ディメンションを集計する条件を指定しなかった場合に、OLAP クエリによって使用されます。ここで、製品と顧客に基づいてデータを抽出するクエリを記述し、取引時期に関する指定は省略したとします。この場合、OLAP クエリは自動的にディメンションのデフォルトメンバーを使用して、TimeDim ディメンションの情報を集計します。false に設定した場合、OLAP クエリは階層の最初のレベルを使用して、ディメンションを集計します。デフォルトでは、OLAP キューブは (All) という名前のディメンションにメンバーを追加して、デフォルトメンバーを表します。OLAP クエリを実行する場合は、クエリ結果にデフォルトメンバーを含めるかどうかを選択します。詳細については、クエリでのデフォルトメンバーの使用を参照してください。プロファイラは、Flash Player で実行されているアプリケーションと通信するエージェントです。ローカルソケット接続を使用して、アプリケーションに接続します。したがって、アンチウイルスソフトウェアによってソケット通信が防止されている場合は、アンチウイルスソフトウェアを無効にすることが必要な場合があります。プロファイラの実行中は、非常に短い間隔でデータのスナップショットが撮られ、Adobe Flash Player がその時に行っている内容が記録されます。これは「サンプリング」と呼ばれます。例えば、スナップショットの時点でアプリケーションによってメソッドが実行されている場合、プロファイラによってそのメソッドが記録されます。次のスナップショットまで、アプリケーションによって同じメソッドがまだ実行されている場合、プロファイラによって時間の記録が続行されます。その次のスナップショット時にアプリケーションが次の処理に移行していた場合、メソッド実行に費やされた時間をプロファイラでレポートできます。サンプリングにより、アプリケーションの速度を著しく低下させることなくプロファイリングを行えます。その間隔は「サンプリングレート」と呼ばれ、プロファイリング中に約 1 ミリ秒ごとに発生します。つまり、すべての処理が記録されるわけではなく、すべてのスナップショットがミリ秒の端数まで正確なわけではありません。しかし、プロファイリングによって、どの処理に長く時間がかかっているかをより明確に知ることができます。サンプリングからデータを解析することにより、プロファイラによってアプリケーションにおけるすべての処理をプロファイリングでき、それらの処理の実行時間が記録されます。また、プロファイラでは、メモリ使用量とスタックトレースが記録され、データは一連のビュー(パネル)に表示されます。メソッド呼び出しは、実行時間および呼び出し回数ごとや、メソッドにより作成されたオブジェクトの数ごとに整理されます。また、データの累計値も計算されます。例えば、メソッドの統計情報を表示している場合、累計データにはメソッドの実行時間および実行中に割り当てられたメモリ、さらにそのメソッドにより呼び出されたすべてのメソッドの実行時間および実行中に割り当てられたメモリが含まれます。パフォーマンスの問題の原因が見つかるまで、後続のメソッド呼び出しをドリルダウンできます。
プロファイリング API について
このパッケージ内のメソッドおよびクラスを使用して、独自のプロファイラアプリケーションを記述するか、プロファイリング機能のサブセットをアプリケーションに含めることができます。* パッケージ内のクラス以外に、プロファイラでは System クラスのメソッドも使用されます。一般に、プロファイラでは、サンプリングスナップショット時に Flash Player が特定のクラスのメソッドを実行していたことが記録されますが、内部 Player アクションが記録される場合もあります。次の表で、プロファイリングデータ内に表示される内部 Flash Player アクションについて説明します。ジャストインタイム(JIT)コンパイラによって AS3 マシンコードが生成されます。
Flash Player がオブジェクトのレンダリングの準備をします(ジオメトリ計算およびレンダリング前に発生する表示リスト内の移動を含む)
0 バイトコード検証が実行されます。これらの情報を使用すると、パフォーマンスの問題の特定に役立ちます。例えば、[mark] および [sweep] のエントリが大量にある場合、作成されてガベージコレクションとしてマークされているオブジェクトが大量にあることが推測されます。異なるパフォーマンスプロファイルでこれらの数字を比較することによって、行う変更が効果的かどうかがわかります。これらの内部アクションに関するデータを表示するには、パフォーマンスのプロファイルビューでパフォーマンスのプロファイルを表示するか、割り当てトレースビューでメモリのプロファイルを表示します。詳細については、パフォーマンスのプロファイルビューの使用および割り当てトレースビューの使用を参照してください。
ガベージコレクションについて
「ガベージコレクション」とは、不要なオブジェクトをメモリから削除するアクションです。いかなる参照もされていないインスタンスによって使用されているメモリは、このプロセスによって割り当てが解除されます。Flash Player では、ガベージコレクションはアプリケーションのライフサイクル中に必要に応じて実行されます。オブジェクトの参照解除によって、ガベージコレクションはトリガされません。そのため、あるオブジェクトの参照をすべて削除したときに、ガベージコレクタによってそのオブジェクトのメモリが割り当て解除されるとは限りません。そのオブジェクトは、ガベージコレクションの候補になります。「ガベージコレクタを実行」ボタンをクリックしても、ガベージコレクションの対象となるすべてのオブジェクトについてガベージコレクションが実行されるとは限りません。ガベージコレクションは、一般に、新しいリソースに対するメモリの割り当てによってトリガされます。新しいリソースがメモリを必要とし、現在の割り当てではメモリが不足している場合、ガベージコレクタが実行され、割り当て解除対象としてマークされたメモリを開放します。したがって、すべての参照を削除した場合でも、ガベージコレクションがすぐには行われず、他のインスタンスが作成されて使用されるときに行われる場合があります。アプリケーションがアイドル状態の場合、そのアプリケーションのメモリ割り当てを監視できます。ガベージコレクション対象としてマークされたオブジェクトが存在しても、通常はアイドル状態のアプリケーションのメモリ使用量は、そのアプリケーションを操作するまで変更されません。Flash Player では、メモリはバイト単位ではなく、多くのバイト数で構成されるブロック単位で割り当てられます。ブロックの一部がガベージコレクション対象としてマークされたが、ブロックの他の部分がマークされなかった場合、そのブロックは解放されません。ガベージコレクタはメモリブロックの未使用部分を、解放可能な大きいブロックに結合しようと試行しますが、こうした試行がガベージコレクタのあらゆるパスで必ず行われるという保証はありません。ガベージコレクションは、メモリのスナップショットが記録される前に暗黙的に行われます。つまり、「メモリのスナップショット」ボタンをクリックすることは、「ガベージコレクタを実行」ボタンをクリックして「メモリのスナップショット」ボタンをクリックする操作と同じです。
アプリケーションのプロファイリング中のガベージコレクションの実行
プロファイルビューでアプリケーションを選択し、「ガベージコレクタを実行」ボタンをクリックします。ガベージコレクションの前後で 2 つのメモリのスナップショットを比較して、ガベージコレクタの有効性を分析します。
制約の使用によるコンポーネントレイアウトの制御
制約ベースのレイアウトを使用するか、制約を受ける行と列を使用して、子コンポーネントのサイズと位置を同時に管理できます。制約ベースのレイアウトでは、コンポーネントのコンテナの可視領域に対して相対的な位置にコンポーネントの端または中心を固定できます。「可視領域」は、コンポーネントの表示されている部分であり、子コントロール、テキスト、イメージその他のコンテンツを含めることができます。制約を受ける行と列を使用してコンテナを垂直および水平方向の制約領域にさらに分割すると、子コンポーネント間および親コンテナ内での子コンポーネントのサイズと配置を制御できます。
制約ベースのレイアウトの作成
制約ベースのレイアウトを使用すると、絶対配置をサポートしている任意のコンテナの直下の子の位置とサイズを決定できます。制約ベースのレイアウトでは、次のことができます。コンポーネントの 1 つまたは複数の端を、コンテナの可視領域の対応する端から指定したピクセル離れた位置に固定します。固定された子の端は、コンテナのサイズが変更されても、親の端から等距離に維持されます。上端と下端など、サイズの両端を固定すると、コンテナのサイズが変更された場合にコンポーネントのサイズも変更されます。子の水平または垂直方向の中心(またはこの両方の中心)を、コンテナの可視領域の中心から指定したピクセル離れた位置に固定します。この場合、パーセント値ベースのサイズ設定を併用しない限り、子のサイズは指定されたサイズのまま変更されません。コンポーネントのベースラインを、親コンテナの上端から指定したピクセル離れた位置に固定します。制約ベースのレイアウトは、任意の Flex フレームワークコンポーネント、つまり UIComponent クラスを拡張する任意のコンポーネントに対して指定できます。制約ベースのレイアウトを使用して、コンポーネントの位置とサイズを設定する際の規則を次に示します。baseline 制約は、コンポーネントのベースライン位置と親コンテナの上端との距離を指定します。すべてのコンポーネントのベースライン位置は、コンポーネントのテキストの 1 行目のベースラインの y 座標として算出されます。負の数値を指定すると、コンポーネントが中心から左または上に移動します。次の例では、Form コントロールの左右の端をコンテナの端から 20 ピクセル離れた位置に固定しています。制約ベースのレイアウトによって決定されたサイズは、明示的なサイズ指定またはパーセント値ベースのサイズの指定より優先されます。
制約ベースのコンポーネントの優先規則
他のサイズ設定パラメータまたは配置パラメータを指定せずに、端の制約(left、right、top または bottom)を 1 つ指定した場合、コンポーネントのサイズはデフォルトサイズになり、制約値によって位置が決定されます。サイズパラメータ(幅または高さ)を指定した場合は、そのパラメータによってサイズが決定されます。制約ベースのレイアウトのプロパティの組み合わせ(left-right または top-bottom)によって決定されたコンポーネントのサイズは、明示的なサイズまたはパーセント値ベースのサイズの指定よりも優先されます。
例:フォームに対する制約ベースのレイアウトの使用
次のコード例は、フォームに対して制約ベースのレイアウトを使用する方法を示しています。この例では、Form コントロールで制約ベースのレイアウトを使用して、その上端をキャンバスのパディングのすぐ内側に配置しています。フォームの左端と右端は、Canvas コンテナの左右の端から 20 ピクセル離れた位置になります。例えば、アプリケーションのサイズが小さくなるにつれて、フォームとボタンが重なります。ただし、次の例では、サイズ変更の効果がよくわかるように、ボタンを HBox コンテナ内で分けています。前の例で実行する SWF ファイルは以下のとおりです。
制約を受ける行と列の使用
絶対配置をサポートするコンテナを垂直および水平方向の制約領域にさらに分割すると、子コンポーネント間および親コンテナに対する子コンポーネントのサイズと配置を制御できます。次の例は、2 つの垂直領域と 2 つの水平領域に分割された Canvas コンテナを示しています。制約を受ける行と列がコンテナの使用可能領域の 100 %を占める必要はありません。コンテナの 80 %は割り当てられていません。
制約を受ける行と列の作成
制約を受ける列と行には、固定、パーセントおよびコンテンツの 3 つのサイズ設定オプションがあります。これらのオプションは、コンテナで制約領域が占める領域の量を示します。「固定サイズ」は、制約領域に割り当てる領域が固定されたピクセルサイズであることを意味します。「パーセントサイズ」は、制約を受ける行と列に割り当てる領域が、使用可能領域から固定サイズとコンテンツサイズの子オブジェクトに割り当てられた領域を差し引いた後の親コンテナ内の残りの領域のパーセント値として算出されることを意味します。パーセント制約を指定する際のベストプラクティスは、すべてのパーセント制約の合計が 100 %以下になるようにすることです。ただし、パーセント指定の合計値が 100 %を超える場合、実際に割り当てられるパーセント値は、すべての制約の比例値の合計が 100 %になるように計算されます。「コンテンツサイズ」(デフォルト)は、制約領域に割り当てる領域をその領域内の子オブジェクトのサイズで示すことを意味します。コンテンツのサイズが変更されると、領域のサイズも変更されます。固定またはパーセント値のサイズ設定パラメータのいずれも指定しない場合、コンテンツサイズ設定がデフォルトになります。次の例では、明示的な幅設定をすべて省略することによって、コンテンツサイズを指定しています。子がコンテンツサイズ指定の複数の制約を受ける行または列にまたがる場合、行および列の間で、子が使用する領域が配分されます。親コンテナのサイズを変更した場合、制約を受ける列と行の最小サイズと最大サイズによって、制約領域の拡大量または縮小量が制限されます。制約領域を含む親コンテナのサイズ変更時に、コンテナをその制約領域の最小サイズよりも小さいサイズに縮小した場合、クリッピングされたコンテンツを表示するためにスクロールバーが表示されます。注意: 最小値と最大値の制限は、パーセントサイズおよびコンテンツサイズが指定された各制約領域に対してのみ適用できます。
固定サイズの制約領域では、最小値と最大値は無視されます(指定されている場合)
制約を受ける行と列に基づく子コンポーネントの配置
子の制約パラメータに制約領域の ID を付加することによって、子コンポーネントを制約を受ける行または列に固定します。コンポーネントは、1 つの制約領域(行または列)だけを占めることも、複数の領域にまたがることもできます。前の例で実行する SWF ファイルは以下のとおりです。次の例では、制約を受ける行と列をパーセント値で定義しています。アプリケーションのサイズを変更すると、Button コントロールのサイズもそれに応じて変更されます。前の例で実行する SWF ファイルは以下のとおりです。修飾された制約と修飾されていない制約の組み合わせを指定できるだけでなく、一部の制約プロパティを無効にできます。サイズ設定と配置の制約の優先順位は、次のようになります。コントロールの位置を決定する場合、中心の制約の指定は、他のすべての制約値よりも優先されます。次に、左端と上部の位置が決定されます。最後に、右端と下部の位置が、コンポーネントが最適に収まるように計算されます。次の表は、制約を受けるコンポーネントが 1 つの制約領域に含まれる場合のコンポーネントの動作を定義したものです。コンポーネントのデフォルトサイズです。指定された端の制約に対して相対的な位置に配置されます。指定された端の制約から算出されます。指定された端の制約に対して相対的な位置に配置されます。指定された端の制約を基に決定されます。明示的なサイズが優先されます。指定された端の制約に対して相対的な位置に配置されます。指定されたサイズです。指定された端に対して相対的な位置に配置されます。コンポーネントのデフォルトサイズです。制約領域の中央に配置されます。端の制約は無視されます。端の制約から算出されます。制約領域の中央に配置されます。明示的なサイズです。制約領域の中央に配置されます。単一の端の制約は無視されます。コンポーネントのデフォルトサイズです。制約領域の中央に配置されます。スタイルシートや setStyle() メソッドではフィルタを適用できないので、フィルタはスタイルではありません。しかし、フィルタを適用して得られた結果はスタイルの一種であると見なすことが普通です。MXML でフィルタをコンポーネントに適用するには、フィルタクラスをコンポーネントの filters 配列に追加します。この配列には、コンポーネントに適用する任意の数のフィルタが含まれます。次の例では、拡張 MXML シンタックスとインラインシンタックスを使用して、Label コントロールにドロップシャドウを適用します。前の例で実行する SWF ファイルは以下のとおりです。次の例では、ユーザーがボタンをクリックしたときに Label コントロールにホワイトシャドウを適用します。前の例で実行する SWF ファイルは以下のとおりです。フィルタプロパティを他の値にバインドすることはできません。フィルタを変更した場合は、その効果が反映されるように、コンポーネントにフィルタを割り当て直す必要があります。次の例では、ボタンをクリックしたときにフィルタのカラーが変化します。前の例で実行する SWF ファイルは以下のとおりです。このプロパティを true に設定すると、ドロップシャドウフィルタをそのコンポーネントに追加できます。ただし、このプロパティを使用する場合、Flex コンポーネントはパフォーマンス上の理由で独自のドロップシャドウを描画します。Flex コンポーネントはターゲットのエッジをコピーした後、ビットマップの上にシャドウを描画し、そのビットマップにターゲットを割り当てます。ターゲットコンポーネントを回転すると、回転されたベクトルのレンダリング方法が原因で、ドロップシャドウがぎざぎざに表示されることがあります。この状態を回避し、回転されたコンポーネント上に滑らかなドロップシャドウフィルタを表示するには、このセクションの例で説明したように、DropShadowFilter クラスを使用します。前の例で実行する SWF ファイルは以下のとおりです。チャートコントロールでのフィルタの使用の詳細については、チャートコントロールでのフィルタの使用を参照してください。Boolean クラスを使用して、Boolean オブジェクトのプリミティブなデータ型またはストリング表現を調べることができます。Boolean オブジェクトを作成するには、コンストラクタを使用するか、グローバル関数を使用するか、またはリテラル値を割り当てます。どの手法を使っても違いはありません。0 では、3 つの手法すべてが同等です。次の各行のコードは同じです。継承されるパブリックプロパティを隠す。
継承されるパブリックプロパティを表示
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。継承されるパブリックメソッドを隠す。
継承されるパブリックメソッドを表示
指定された値を持つ Boolean オブジェクトを作成します。オブジェクトに指定されたプロパティが定義されているかどうかを示します。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。指定されたプロパティが存在し、列挙できるかどうかを示します。ループ処理に対するダイナミックプロパティの可用性を設定します。
コンストラクタの詳細
指定された値を持つ Boolean オブジェクトを作成します。expression パラメータの値を指定すると、メソッドによって評価され、評価結果はグローバル Boolean() 関数の規則に従ってブール値として返されます。
メソッドの詳細
次の例では、このメソッドがどのように動作するかを示し、また、新しい Boolean オブジェクトの値が false であることを示しています。
例 例の使用法
次の例では、Boolean オブジェクトを切り替え、それぞれに対応する値を表示します。Math クラスには、一般的な数学関数および値を表すメソッドおよび定数があります。数学定数および関数にアクセスして処理するには、このクラスのメソッドとプロパティを使用します。constant というシンタックスを使用して呼び出す必要があります。Math クラスのいくつかのメソッドでは、ラジアン単位の角度がパラメータとして使用されています。メソッドを呼び出す前に次の式を使用してラジアン値を計算し、計算した値をパラメータとして指定できます。また、式の右辺全体(degrees には度数で角度を代入)をラジアンパラメータとして指定することもできます。ラジアン値を計算するには、次の式を使用します。ラジアンで角度を計算するには、次の式を使用します。次の例では、角度 45 度のサインを計算する式をパラメータとして渡します。Flash Player では、上述の関数を計算するときに CPU(CPU が浮動小数の計算をサポートしていない場合はオペレーティングシステム)が呼び出され、使用する CPU やオペレーティングシステムによって多少異なる結果が表示されます。継承されるパブリックプロパティを隠す。
継承されるパブリックプロパティを表示
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。継承されるパブリックメソッドを隠す。
継承されるパブリックメソッドを表示
[静的] パラメータ val で指定された数値の絶対値を計算して返します。[静的] パラメータ val で指定された数値のアークコサイン(逆余弦)を計算してラジアン単位で返します。[静的] パラメータ val で指定された数値のアークサイン(逆正弦)を計算してラジアン単位で返します。[静的] パラメータ val で指定された値がタンジェント(正接)の値になる角度を計算してラジアン単位で返します。[静的] y/x 座標の角度をラジアン単位で計算して返します。このとき、円の x 軸(0,0 は円の中心を示します)から反時計回りに測定します。[静的] 指定された数値または式を切り上げた値を返します。[静的] ラジアン単位で指定された角度のコサイン(余弦)を計算して返します。[静的] 自然対数の底(e)をパラメータ x で指定された指数で累乗した値を返します。[静的] パラメータ val で指定された数値または式を切り捨てた値を返します。オブジェクトに指定されたプロパティが定義されているかどうかを示します。Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。指定されたプロパティが存在し、列挙できるかどうかを示します。[静的] パラメータ val の値を最も近い整数に四捨五入し、値を返します。ループ処理に対するダイナミックプロパティの可用性を設定します。[静的] ラジアン単位で指定された角度のサイン(正弦)を計算して返します。[静的] 指定された数値の平方根を計算して返します。[静的] 指定された角度のタンジェント(正接)を計算して返します。指定されたオブジェクトのストリング表現を返します。指定されたオブジェクトのプリミティブな値を返します。[静的] 自然対数の底を表す数学定数で e と表記されるものです。[静的] 円周と円の直径の比を表す数学定数で pi と表記されるものです。[静的] 2 の平方根を表す数学定数です。
メソッドの詳細
パラメータ val で指定された数値の絶対値を計算して返します。パラメータ val で指定された数値のアークコサイン(逆余弦)を計算してラジアン単位で返します。0 の数値です。パラメータ val で指定された数値のアークサイン(逆正弦)を計算してラジアン単位で返します。0 の数値です。パラメータ val で指定された値がタンジェント(正接)の値になる角度を計算してラジアン単位で返します。円の x 軸(0,0 は円の中心を示します)から反時計回りに測定した場合に、y/x 座標の角度をラジアン単位で計算して返します。戻り値は、正のパイと負のパイの間の値になります。指定された数値または式を切り上げた値を返します。数値の切り上げとは、その数値以上の最も近い整数にすることです。ラジアン単位で指定された角度のコサイン(余弦)を計算して返します。ラジアンを計算するには、Math クラスの概要を参照してください。0 の数値です。自然対数の底(e)を、パラメータ x で指定された指数で累乗した値を返します。E を使用して、e の値を指定できます。パラメータ val で指定された数値または式を切り捨てた値を返します。切り捨てとは、指定された数値または式以下の最も近い整数にすることです。パラメータ val の自然対数を返します。max() は複数の引数を取ることができます。min() は複数の引数を取ることができます。計算には必ず非ランダムのエレメントが含まれるので、返される値は非公開の方式および疑似乱数で計算されます。パラメータ val の値を最も近い整数に四捨五入し、値を返します。
val が 2 つの最も近い整数から等距離である場合(5 で終わる数値など)、値は次に大きな整数に切り上げられます。ラジアン単位で指定された角度のサイン(正弦)を計算して返します。ラジアンを計算するには、Math クラスの概要を参照してください。
指定した角度のサイン(-1
指定された数値の平方根を計算して返します。指定された角度のタンジェント(正接)を計算して返します。ラジアンを計算するには、Math クラスの概要を参照してください。自然対数の底を表す数学定数で e と表記されるものです。2 の自然対数を表す数学定数で log2 と表記されるものです。E) の対数を表す数学定数で loge と表記されるものです。log() メソッドは、数値の自然対数を計算します。2 を底とする定数 e の対数を表す数学定数で log2e と表記されるものです。log メソッドは、数値の自然対数を計算します。LOG2E を乗算すると、2 を底とする対数を得ることができます。円周と円の直径の比を表す数学定数で pi と表記されるものです。1/2 の平方根を表す数学定数です。2 の平方根を表す数学定数です。XML クラスには、XML オブジェクトを操作するためのメソッドとプロパティが含まれています。toXMLString() メソッドは、XML オブジェクトに単純内容が含まれるか複合内容が含まれるかに関係なく、XML オブジェクトのストリング表現を返します。xml パッケージに移行されています。0 に残されているものです。継承されるパブリックプロパティを隠す。