次の例では、Timer クラスを読み込む際の区切りにドット演算子を使用しています。次の例では、汎用オブジェクトを作成し、ドット演算子を使用して新しいプロパティを追加しています。複数の子エレメントまたは属性が一致する可能性があるため、返されるオブジェクトは XMLList になります。
次の例では、ドット () 演算子を使用して、XML オブジェクトの子エレメントに戻り、エレメントの属性を返しています。2 つの式の等価性をテストします。2 つのオペランドのデータ型が一致する場合、等価の定義はオペランドのデータ型によって決まります。ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。一方のオペランドがテキストまたは属性ノードで、もう一方のオペランドに単純内容が含まれる場合は、オペランドを両方とも toString() メソッドでストリングに変換し、結果のストリングが一致する場合に等しいと見なされます。それ以外の場合、オブジェクトは、両方のオブジェクトの修飾名、属性、および子プロパティが一致する場合にのみ等しいと見なされます。XMLList オブジェクトの場合は、プロパティの数が同じで、プロパティの順序および値が一致する場合に等しいと見なされます。Namespace オブジェクトの場合は、両方のオブジェクトの uri プロパティが一致する場合に値が等しいと見なされます。オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。オペランドのデータ型が一致しない場合は、次の場合を除き、結果は false になります。この場合、オペランドは等しいと見なされます。
一方のオペランドが XMLList 型で、次のいずれかの条件に該当する場合
次の例では、if ステートメントで等価 (==) 演算子を使用します。次の例は、値を比較するときに等価演算子でどのように自動型変換が行われるかを示しています。ストリング値は数値に変換されます。ブール値は数値に変換されます。ただし、ストリング値はブール値に変換されないため、次のコードでは false が返されます。次に参照による比較の例を示します。1 番目の例では、長さとエレメントの同じ 2 つの配列を比較しています。これらの配列は一見、同じように見えますが、参照による比較で等価と見なされるためには、firstArray および secondArray の両方が同じ配列を参照していることが必要です。2 つの変数が同じ配列を参照しているからです。両方のオペランドが String 型である場合、オペランドはアルファベット順で大文字、小文字の順に比較されます。それ以外の場合、オペランドは数値に変換されてから比較されます。次の例では、ストリングがアルファベット順で大文字、小文字の順に比較されます。次の例では、ストリング値およびブール値が数値に変換されます。次の例では、より大きいか等しい (>=) 演算子を使用して、現在の時刻 (時) が 12 以上であるかどうかを判定しています。プロパティが特定のオブジェクトの一部であるかどうかを評価します。in 演算子を使用するには、最初のオペランドとしてプロパティ名を指定し、2 番目のオペランドとしてオブジェクトを指定します。指定したオブジェクトに該当のプロパティが含まれている場合、結果は true になります。指定したオブジェクトが Array オブジェクトである場合、in 演算子を使用して特定のインデックス番号が有効であるかどうかをチェックできます。最初のオペランドとして整数を渡す場合、インデックスが有効なインデックス番号の範囲内にあれば結果は true になり、そうでない場合は false になります。式に 1 を加算します。式は、変数、配列のエレメント、またはオブジェクトのプロパティです。次の例では、while ループで ++ をプリインクリメント演算子として使用し、インクリメントされた値を配列に加算しています。次の例では、while ループで ++ をポストインクリメント演算子として使用し、初期値を配列に加算しています。次の例では、++ をポストインクリメント演算子として使用し、while ループを 5 回実行しています。等価 (==) 演算子の正反対が真であるかどうかをテストします。等価 (==) 演算子の場合と同様に、等価の定義は比較するデータ型により異なります。2 つのオペランドのデータ型が一致する場合、等価の定義はオペランドのデータ型によって決まります。ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。一方のオペランドがテキストまたは属性ノードで、もう一方のオペランドに単純内容が含まれる場合は、オペランドを両方とも toString() メソッドでストリングに変換し、結果のストリングが一致する場合に等しいと見なされます。それ以外の場合、オブジェクトは、両方のオブジェクトの修飾名、属性、および子プロパティが一致する場合にのみ等しいと見なされます。XMLList オブジェクトの場合は、プロパティの数が同じで、プロパティの順序および値が一致する場合に等しいと見なされます。Namespace オブジェクトの場合は、両方のオブジェクトの uri プロパティが一致する場合に値が等しいと見なされます。オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。
オペランドのデータ型が一致しない場合は、次の場合を除き、不等価演算子 (この場合、オペランドは等しいと見なされます。
一方のオペランドが XMLList 型で、次のいずれかの条件に該当する場合
次の例では、不等価 (=) 演算子の結果を示します。次の例では、if ステートメントでの不等価 (=) 演算子の使い方を示します。次の例では、2 つの関数の参照による比較を示します。次の例では、2 つの配列の参照による比較を示します。式のプロトタイプチェーンに function のプロトタイプオブジェクトが含まれるかどうかを評価します。instanceof 演算子は、ECMAScript Edition 3 との後方互換性を維持するために提供されており、コンストラクタ関数でクラス継承の代わりに、プロトタイプベースの継承を使用する上級プログラマにとって役立つ場合があります。オブジェクトが特定のデータ型のメンバーであるかどうかをチェックするには、is 演算子を使用します。クラスと共に使用する場合、クラスのプロトタイプチェーンにそのスーパークラスのすべてが含まれるため、instanceof 演算子は is 演算子に似ています。ただし、プロトタイプチェーンにはインターフェイスが含まれていないため、インターフェイスと共に使用すると、instanceof 演算子の結果は常に false になります。一方、オブジェクトが指定されたインターフェイスを実装するクラスに属している場合、is 演算子の結果は true となります。オブジェクトに特定のデータ型、クラス、またはインターフェイスと互換性があるかどうかを評価します。is 演算子を使用して、オブジェクトにインターフェイスが実装されているかどうかをチェックすることもできます。両方のオペランドが String 型である場合、オペランドはアルファベット順で大文字、小文字の順に比較されます。それ以外の場合、オペランドは数値に変換されてから比較されます。小さいか等しい場合、結果は true になります。両方のオペランドが String 型である場合、オペランドはアルファベット順で大文字、小文字の順に比較されます。それ以外の場合、オペランドは数値に変換されてから比較されます。スクリプトコメントの先頭を示します。コメント行区切り記号 (//) と行末の間に表示される文字はコメントと解釈され、無視されます。コメントが 1 行の場合はこのコメント行区切り記号を使用し、連続した複数行の場合は /* および */ の区切り記号を使用します。次に、単一行コメントの例を示します。それ以外の場合、結果はいずれかの式の値となります。次の例では、論理積 AND (&&) 演算子を使用してゲームの勝敗判定をテストします。" と表示されます。たとえば、次の 2 つのステートメントは同じです。それ以外の場合、結果は 2 つの式のいずれかの値となります。次の例のとおり、if ステートメントを使用することで、同じ効果を得ることができます。if ステートメントを使用することのメリットは、コードが読みやすくなる点です。一方、論理積 (AND) 代入 (&&=) 演算子を使用することのメリットは、指定されたデータ型の正確なデフォルト値を指定する必要がない点です。変数や式のブール値を反転します。次の式は、論理否定 () 演算子を使用した結果を示しています。それ以外の場合、結果は 2 つの式のいずれかの値となります。次のように、2 番目のオペランドに関数呼び出しを指定すると、予期しない結果が生じる場合があります。演算子の左側の式が true に評価された場合、右側の式は評価されずに (関数 fx2() は呼び出されないで)、左側の式の結果だけが返されます。たとえば、次の 2 つのステートメントは同じです。それ以外の場合、結果は 2 つの式のいずれかの値となります。次の例では、以前に宣言された変数 myVar にデフォルト値を割り当てます。いずれかのオペランドが数値でない場合は、剰余 (%) 演算子により数値への変換が試行されます。剰余演算結果の符号は、被除数 (最初の数値) の符号と一致します。数値のみを含むストリングの評価結果は数値になります。次の例では、数値に対して剰余 (%) 演算子を使用します。これは 2 進数計算では浮動小数点数の精度に限度があるからです。次の 2 つのステートメントは等価です。2 つの数値や式を乗算します。両方の式が整数であれば、その積は整数です。いずれかの式または両方の式が浮動小数点数であれば、その積は浮動小数点数になります。次のステートメントでは、整数の 2 と 3 を乗算し、結果が整数の 6 となっています。
次のステートメントでは、浮動小数点数の 2
たとえば、次の 2 つの式は同じです。式を数値に変換できない場合は、NaN (非数) を返します。次の例の 2 行目と 3 行目は、等号の右側の式を計算し、その結果を c と d にそれぞれ割り当てます。プロパティ、メソッド、XML プロパティ、または XML 属性の名前空間を識別します。次の例では、:: 演算子を使用して、2 つの異なる名前空間にある同じ名前の 2 つのメソッドを識別しています。次の例では、:: 演算子を使用して、指定された名前空間の XML プロパティを識別しています。クラスインスタンスをインスタンス化します。new 演算子をクラスまたは Class 型の変数で使用して、クラスのインスタンスを作成できます。一般的に new 演算子は、クラスのインスタンスを作成するため、クラスオブジェクトで使用します。new 演算子を使用して、クラスを埋め込みアセットと関連付けることもできます。埋め込みアセットとは、SWF ファイルにコンパイルされるイメージ、サウンド、フォントなどの外部オブジェクトのことです。埋め込みアセットは、それぞれ固有の埋め込みアセットクラスによって表されます。埋め込みアセットにアクセスするには、new 演算子を使用して、関連付けられたクラスをインスタンス化します。次に、埋め込みアセットクラスの該当するメソッドおよびプロパティを呼び出して、埋め込みアセットを操作します。class キーワードではなく、Function オブジェクトによりクラスを定義する場合は、new 演算子を使用して、コンストラクタ関数に基づくオブジェクトを作成できます。コンストラクタ関数を、クラスのコンストラクタメソッドと混同しないよう注意してください。コンストラクタ関数を使用してオブジェクトを作成する場合は、クラス継承の代わりに、プロトタイプ継承を使用します。次の例では、new 演算子を使用して、18 個のエレメントを持つ Array クラスのインスタンスを作成しています。
高度なトピック
新しいオブジェクトを作成し、指定された name と value のプロパティペアで初期化します。この演算子を使用することは、new Object シンタックスを使用して代入演算子でプロパティペアを設定するのと同じです。新しく作成されるオブジェクトのプロトタイプとして、汎用の Object オブジェクトがあります。次のコードの 1 行目はオブジェクト初期化 ({}) 演算子を使用して空のオブジェクトを作成し、2 行目はコンストラクタ関数を使用して新しいオブジェクトを作成します。次の例では、配列とオブジェクトの初期化演算子を相互にネストする方法を示します。次のコードでは、前の例と同じ内容を、コンストラクタ関数で生成します。パラメータに対してグループ化演算を実行するか、複数の式を順番に評価します。または、パラメータを囲み、引数として括弧の前の関数に渡します。シンタックス 1: 演算子が実行される順番を制御します。括弧は通常の優先順位を無効にし、括弧内の式を最初に評価します。括弧がネストされている場合は、最も内側の括弧から順に外側の括弧へと内容が評価されます。シンタックス 2: カンマ区切りの一連の式を順番に評価し、最後に実行された式の結果を返します。シンタックス 3: パラメータを囲み、括弧の前の関数に渡します。シンタックス 1: 次のステートメントでは、括弧を使用して式の実行順序を制御しています。シンタックス 3: 次の例は、関数で括弧を使用する場合を示しています。次の例では、括弧を使用して、エレメントおよび属性を識別しています。ただし、2 つの連続したスラッシュ (//) で始まる場合は、コメントの最初であることを表します。次の例では、スラッシュ (/) を使用して RegExp 型の変数の値を設定し、一致処理で大文字と小文字を区別しないよう、i フラグを設定しています。自動データ変換を行わずに、2 つの式が等しいかどうかをテストします。両方の式が、そのデータ型も含めて等しい場合、結果は true です。数値とブール値は値により比較され、それらの値が同じであれば、等しいと見なされます。ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。0 では、プリミティブ値とプリミティブラッパーオプジェクトの区別がなくなったためです。1 つ目は、プリミティブ値と同じ値を持つプリミティブオブジェクトを比較する場合です。2 つ目は、同じ値を持つ 2 つのプリミティブオブジェクトを比較する場合です。0 では、両方の変数は Number データ型であるため値によって比較され、等価および厳密な等価の演算結果は両方とも true になります。次の例では、値とデータ型の両方が一致する場合、厳密な等価 (===) と等価 (==) が同じ結果になることを示しています。次の例では、厳密な等価演算子がブール値を数値に変換しないのに対し、等価演算子では変換することを示しています。次の例では、厳密な等価演算子が int および uint のデータ型を変換することを示しています。次の例では、厳密な等価演算子では null と undefined が等しくないと見なされるのに対し、等価演算子では等しいと見なされることを示しています。厳密な等価 (===) 演算子の正反対が真であるかどうかをテストします。厳密な等価演算子は、int および uint のデータ型のみが変換されるという点以外は不等価演算子と同じです。
厳密な不等価 (=) 演算子と同じです。数値とブール値は値により比較され、それらの値が同じであれば、等しいと見なされます。ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。厳密な不等価演算子は、次の 2 つの点で不等価 (=) 演算子と異なります。厳密な不等価 (=) 演算子はすべてのプリミティブデータ型の自動データ変換を行います。==) を使用した演算の戻り値を示しています。文字の前後を囲んで使用する場合、囲まれた文字はリテラル値を表し、変数や数値、その他の ActionScript エレメントではなく、ストリングと見なされます。符号反転や減算に使用します。シンタックス 1: 符号反転に使用する場合、式の符号を逆にします。両方の式が整数であれば、その差は整数です。いずれかの式または両方の式が浮動小数点数であれば、その差は浮動小数点数です。シンタックス 2: 次のステートメントは、整数 5 から整数 2 を減算します。
次のステートメントは、浮動小数 3
5 を減算します。
結果は、浮動小数の 1
たとえば、次の 2 つのステートメントは同じです。ストリング式は数値に変換される必要があります。次の例では、ストリングがどのように数値に変換されるかを示します。データ型を割り当てるために使用します。この演算子は、変数の型、関数の戻り値の型、または関数パラメータの型を指定します。変数の宣言または割り当てで使用する場合は、変数の型を指定します。関数の宣言または定義で使用する場合は、関数の戻り値の型を指定します。関数定義の関数パラメータで使用する場合は、そのパラメータの変数の型を指定します。型チェックは実行時に必ず行われます。ただし、コンパイラが strict モードに設定されている場合は、コンパイル時にもすべての型のチェックが行われ、型の不一致がある場合にエラーが発生します。
型の不一致は、代入操作、関数の呼び出し、ドット () 演算子を使用したクラスメンバーの逆参照の際に発生する可能性があります。使用できる型としては、すべてのネイティブオブジェクト型、独自に定義したクラスとインターフェイス、および void があります。また、すべてのビルトインクラスは、ネイティブ型としてサポートされます。データ型を割り当てない場合、変数、関数の戻り値、または関数のパラメータは型指定なしと見なされ、どのようなデータ型の値も取ることができます。型指定のない値を使用することを明示するには、型注釈にアスタリスク (*) 文字を使用します。アスタリスク文字を型注釈に使用すると、変数、関数の戻り値の型、または関数のパラメータの型を指定しないのと同じことになります。
type:* — ネイティブのデータ型、定義済みのクラス名、またはインターフェイス名
この変数は String 型で、空のストリングを割り当てます。ユーザー定義クラスのインスタンスにこの演算子を適用する場合、結果は object のストリングになります。typeof 演算子は、後方互換性を維持するために提供されています。型の互換性をチェックするには、is 演算子を使用します。次の表に、typeof 演算子を使用した結果を式の型別に示します。次の例では、さまざまなオブジェクトや値に対して typeof を使用した結果を示しています。0 ではプリミティブオブジェクトのデータ型が同じになることを示しています。
データ型の記述
終了タグはスラッシュ / を使用して定義します。次の例では、XML リテラルの定義に < および > 演算子を使用しています。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
すべてのパッケージ | すべてのクラス | 言語エレメント | 索引
ステートメントとは、実行時のアクションを実行または指定する言語エレメントです。たとえば、return ステートメントは、実行された関数の結果の値を返します。if ステートメントは、条件を評価して、次に行うべき処理を判定します。属性キーワードは定義の意味を変更します。また、クラス、変数、関数、および名前空間の定義に適用できます。定義キーワードは、変数、関数、クラス、およびインターフェイスなどのエンティティを定義する場合に使用します。プライマリ式のキーワードはリテラル値を表します。0 のプログラミング』を参照してください。ディレクティブにはステートメントと定義が含まれ、コンパイル時または実行時に適用できます。次の表では、ステートメントおよび定義以外のディレクティブは、ディレクティブとしてラベルされています。実行時に追加された dynamic プロパティをクラスのインスタンスで保有するよう指定します。メソッドのオーバーライドまたはクラスの拡張を制限します。クラス、変数、定数、または関数に同じパッケージ内のすべての呼び出し元からアクセスできるよう指定します。Flash Player がネイティブコードで関数またはメソッドを実装するよう指定します。メソッドで継承したメソッドを置き換えるよう指定します。変数、定数、メソッド、または名前空間を定義したクラスからのみアクセスできるよう指定します。変数、定数、メソッド、または名前空間を定義したクラスとそのサブクラスからのみアクセスできるよう指定します。クラス、変数、定数、またはメソッドにすべての呼び出し元からアクセスできるよう指定します。変数、定数、またはメソッドがクラスのインスタンスではなくクラスに属するよう指定します。または、switch ステートメント内の特定のケースと関連するステートメントのブロック内でも使用します。switch ステートメントのジャンプターゲットを定義します。ループの終わりまで制御が通過したかのように、最も内側のループ内の残りのステートメントをすべてスキップして、ループの次の反復を開始します。switch ステートメントのデフォルトケースを定義します。while ループに似ていますが、条件の最初の評価に先立ってステートメントが実行される点が異なります。if ステートメントの条件が false を返したときに実行するステートメントを指定します。init (初期化) 式を 1 回だけ評価してから、ループシーケンスを開始します。オブジェクトの動的プロパティまたは配列のエレメントに対して反復処理を行い、各プロパティまたはエレメントに対して statement を実行します。コレクションのアイテムに対して反復処理を行い、各アイテムに対して statement を実行します。条件を評価して、次のステートメントを実行するかどうかを判定します。実行を呼び出し元の関数に直ちに返します。メソッドやコンストラクタのスーパークラスまたは親バージョンを呼び出します。式の値に応じて、ステートメントへの転送を制御します。エラーが発生する可能性のあるコードブロックを囲み、そのエラーに対処します。条件を評価して、条件の評価結果が true になる場合はステートメントを実行します。その後、ループの先頭に戻り、再び条件を評価します。ステートメントの実行に使用するデフォルトのオブジェクトを設定します。記述するコードの量を減らすことができます。外部で定義されたクラスおよびパッケージをコードで使用できるようにします。指定したファイル内のコマンドを呼び出し元のスクリプトにインクルードし、そのスクリプトの一部であるかのように扱います。指定した名前空間をオープンな名前空間のセットに追加します。変数に割り当てることができる特別な値、またはデータがない場合に関数から返される特殊な値です。メソッドに含まれるオブジェクトへの参照です。プロトタイププロパティの代わりに固定プロパティとして使用する、ActionScript コアクラスのメソッドおよびプロパティを定義します。Proxy クラスのメソッドを定義します。関数が任意の数のカンマ区切りの引数を取るよう指定します。独自で定義したメソッドとプロパティを共有するオブジェクトをインスタンス化できるクラスを定義します。定数 (値を 1 回だけ割り当てることができる変数) を指定します。他のクラスのサブクラスとするクラスを定義します。特定のタスクを実行するよう定義した一連のステートメントで構成されます。プロパティと同じように読み取り可能なメソッドである getter を定義します。クラスでインターフェイスを実装するかどうかを指定します。インターフェイスを定義します。定義の可視性を制御できます。他のスクリプトから読み込んだ個別のグループにコードを分類できます。パブリックインターフェイスでプロパティとして表示されるメソッドである setter を定義します。変数を指定します。関数が任意の数のカンマ区切りの引数を取るよう指定します。引数のリストは配列となり、関数本体を介してアクセスできます。配列の名前をパラメータ宣言にある。文字の後に指定します。パラメータには、予約語ではない名前を指定することができます。
他のパラメータと共に使用する場合は、最後のパラメータとして
(rest) パラメータ宣言を指定する必要があります。(rest) パラメータ配列は、関数に渡された引数の数が他のパラメータの数より多い場合のみ作成されます。カンマ区切りリストの引数は、それぞれ配列のエレメントとして配置されます。
Array クラスのインスタンスを渡す場合は、配列全体が
このパラメータを使用すると、arguments オブジェクトにアクセスできなくなります。rest:* — 関数に渡される引数の配列名を表す識別子です。このパラメータの名前を rest とする必要はありません。キーワード以外の任意の名前を付けることができます。(rest) パラメータのデータ型を Array と指定することはできますが、混乱の原因となる場合があります。パラメータはカンマ区切りの値のリストを受け付けますが、Array クラスのインスタンスとは異なります。
次の例では、2 番目の関数のパラメータには別の名前 args を使用しています。プロトタイププロパティの代わりに固定プロパティとして使用する、ActionScript コアクラスのメソッドおよびプロパティを定義します。つまり、コアクラスのインスタンスでは、クラスのプロトタイプオブジェクトに割り当てられた同じプロパティおよびメソッドのバージョンの代わりに、固定プロパティおよびメソッドを使用します。
高度なトピック
または、switch ステートメント内の特定のケースと関連するステートメントのブロック内でも使用します。break ステートメントをループ内で使用すると、ループ本体の残りの部分をスキップし、繰り返し処理を停止して、ループステートメントの次のステートメントを実行します。break ステートメントを switch 内で使用すると、case ブロック内の残りのステートメントをスキップし、囲んでいる switch ステートメントに続く最初のステートメントにジャンプします。ネストされているループ内では、break は、そのループの残りの部分をスキップするだけで、ネストされている一連のループは終了しません。break ステートメントにはオプションのラベルを指定できますが、このラベルは外側のステートメントのラベルと一致している必要があります。外側のステートメントのラベルと一致しないラベルを使用すると、シンタックスエラーが発生します。ラベル付きの break ステートメントを使用すると、ネストされたループステートメント、switch ステートメント、または block ステートメントの複数のレベルを終了できます。例については、label ステートメントの項目を参照してください。次の例では、break を使用して無限ループから抜け出します。switch ステートメントのジャンプターゲットを定義します。case ステートメントを switch ステートメントの外側で使用すると、エラーが発生し、スクリプトはコンパイルされません。
// ここにクラス定義を記述
独自で定義したメソッドとプロパティを共有するオブジェクトをインスタンス化できるクラスを定義します。たとえば、送り状追跡システムを作成する場合に、送り状クラスを定義して、各送り状で必要になるすべてのメソッドとプロパティを定義します。ActionScript ソースファイルごとに、他のソースファイルやスクリプトから可視なクラスを 1 つ指定できます。外部から可視のクラスは、パブリッククラスまたは内部クラスで、パッケージステートメント内で定義する必要があります。同じファイルに他のクラスを指定する場合、それらのクラスは、パッケージステートメントの外部でファイルの末尾に配置する必要があります。外部から可視のクラスの名前は、そのクラスが格納された ActionScript ソースファイルの名前と一致している必要があります。
ソースファイルの名前は、クラス名にファイル拡張子
as を付けた名前である必要があります。クラス定義はネストできません。つまり、クラス定義内に別のクラスを定義することはできません。クラスの新しいインスタンスの作成時にいつも実行されるメソッドである、コンストラクタメソッドを定義できます。コンストラクタメソッドの名前はクラス名と同じにする必要があります。コンストラクタメソッドを定義しない場合、デフォルトのコンストラクタが自動的に作成されます。実行時にオブジェクトがダイナミックプロパティを追加したり、ダイナミックプロパティにアクセスしたりできるようにする場合は、クラスステートメントの前に dynamic キーワードを付加します。インターフェイスを実装するクラスを宣言するには、implements キーワードを使用します。クラスのサブクラスを作成するには、extends キーワードを使用します。クラスは 1 つしか拡張できませんが、インターフェイスは複数実装することができます。次の例では、Plant という名前のクラスを作成しています。Plant コンストラクタは 2 つのパラメータを受け取ります。// プロパティ名と型を定義します。
// クラスと同じ名前であるため、// の行はコンストラクタです。// 新しい Plant オブジェクトが作成されるとプロパティに渡される値が割り当てられます。// プロパティ値を返すメソッドを作成します。// ベストプラクティスにより、クラスのプロパティへの直接参照が推奨されます。// パラメータが正しく渡されたことを確認します。
高度なトピック
定数 (値を 1 回だけ割り当てることができる変数) を指定します。データ型の後にコロン (:) を付けて、厳密に定数を型指定できます。次の例では、値を複数回定数に割り当てようとすると、エラーが発生することを示しています。ただし、新しい配列リテラルを割り当てることはできません。ループの終わりまで制御が通過したかのように、最も内側のループ内の残りのステートメントをすべてスキップして、ループの次の反復を開始します。continue ステートメントはループの外部では作用しません。ネストされたループでは、オプションの label パラメータを使用すると、最も内側のループ以外もスキップできます。continue ステートメントには、オプションのラベルを指定できますが、このラベルは外側のステートメントのラベルと一致している必要があります。外側のステートメントのラベルと一致しないラベルを使用すると、シンタックスエラーが発生します。ラベル付きの continue ステートメントを使用すると、ネストされたループステートメントの複数のレベルをスキップできます。次の while ループでは、continue ステートメントを使用して、3 の倍数が検出されたときにループ本体の残りをスキップして、ループの上端にジャンプし、条件を再度評価します。switch ステートメントのデフォルトケースを定義します。default ケースステートメントは、リストの最後に置く必要はありません。default ステートメントを switch ステートメントの外側で使用すると、エラーが発生し、スクリプトはコンパイルされません。次の例では、曜日が土曜日または日曜日の場合、すべての case ステートメントが適用されず、default ステートメントが実行されます。2 番目の XML オブジェクト (x2) は、x2 で自身のデフォルトの名前空間を定義しているため、この設定を使用しません。while ループに似ていますが、条件の最初の評価に先立ってステートメントが実行される点が異なります。その後、ステートメントは、条件が true と評価された場合にのみ実行されます。while ループの場合、ループ内のコードは少なくとも 1 回は必ず実行されます。
while ループを使用して、実行するステートメントのコピーを while ループの開始前に配置することで同じ操作を実現できますが、多くのプログラマは do
while ループの方が読みやすいと考えています。while ループは無限ループになります。無限ループに陥ると、Flash Player に問題が発生し、警告メッセージが出力されたり、プレーヤーがクラッシュすることがあります。ループの回数がわかっている場合は、できる限り for ループを使用してください。
for ループは読みやすくデバッグも簡単ですが、あらゆる状況で do
while ループの代わりとして使用できるわけではありません。実行時に追加された dynamic プロパティをクラスのインスタンスで保有するよう指定します。クラスで dynamic 属性を使用する場合は、実行時にクラスのインスタンスにプロパティを追加できます。sealed クラスのインスタンスには、プロパティを追加できません。クラスが dynamic ではなく sealed の場合、クラスインスタンスでプロパティを取得または設定しようとすると、結果はエラーとなります。コンパイラを strict モードに設定し、インスタンスを作成するときにデータ型を指定する場合は、プロパティを sealed オブジェクトに追加しようとすると、コンパイルエラーまたはランタイムエラーが発生します。メモ : このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。次の例では、2 つのクラスを作成します。これらのクラスは後の例でも使用します。次のコードは、Expando クラスのインスタンスを作成し、このインスタンスにプロパティを追加できることを示しています。次のコードは、Sealed クラスのインスタンスを作成し、プロパティを追加しようとすると、結果がエラーとなることを示しています。if ステートメントの条件が false を返したときに実行するステートメントを指定します。実行するステートメントが 1 つしかない場合、else ステートメントで実行するステートメントを囲む中括弧 ({}) は必要ありません。次の例では、else ステートメントに続くステートメントが 1 つだけなので、中括弧 ({}) は必要ありません。他のクラスのサブクラスとするクラスを定義します。サブクラスは、スーパークラスで定義されているメソッド、プロパティ、関数などをすべて継承します。final とマークされたクラスは拡張できません。extends キーワードを使用して、インターフェイスを拡張することもできます。他のインターフェイスを拡張したインターフェイスには、元のインターフェイスのメソッド宣言がすべて含まれます。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。スクリプトで Car オブジェクトをインスタンス化すると、Car クラスのメソッドと Vehicle クラスのメソッドの両方を使用できます。as" ファイルの内容を示します。このクラスは Vehicle クラスを拡張したクラスで、次のような 3 つの変更を行っています。Car クラスでは、最初に車オブジェクトにフルサイズのスペアタイヤが装着されているかどうかを追跡するための変数 fullSizeSpare を追加しています。3 番目に、Car クラスでは停車の際にアンチロックブレーキシステムを使用することを示すために、stop() 関数が上書きされています。サブクラスがスーパークラスのコンストラクタへのアクセスに使用する super ステートメントを使用して、Vehicle クラスのサブクラスを記述することもできます。自動的な型指定により false を数値に変換すると、その結果は 0 となります。次の例では、自動的な型指定によって false がどのような数値やストリングに変換されるかを示します。// ストリングに変換します。
// ここにステートメントを記述
メソッドのオーバーライドまたはクラスの拡張を制限します。final と指定されたメソッドのオーバーライドや、クラスの拡張を試行すると、結果はエラーとなります。Proxy クラスのメソッドを定義します。Proxy クラスメソッドは自身の名前空間内にあり、Proxy クラスメソッド名と一致するインスタンスメソッド名が Proxy サブクラスに含まれる場合に、名前が競合しないようになっています。init (初期化) 式を 1 回だけ評価してから、ループシーケンスを開始します。その後、condition 式の評価からループシーケンスが再び開始されます。実行するステートメントが 1 つしかない場合、for ステートメントで実行するステートメントブロックを囲む中括弧 ({}) は必要ありません。init — ループの開始前に評価される任意の式です。通常は代入式です。このパラメータに対して、var ステートメントを実行することもできます。通常は比較式です。式の評価結果が true の場合、for ステートメントに関連付けられているステートメントが実行されます。next — ループシーケンスの後に評価される任意の式です。通常はインクリメント式またはデクリメント式です。次の例では、for を使用して配列のエレメントを追加します。次の例では、for を使用して同じアクションを繰り返し実行します。次の例では、実行するステートメントが 1 つしかない場合は、中括弧 ({}) を付ける必要がないことを示しています。オブジェクトの動的プロパティまたは配列のエレメントに対して反復処理を行い、各プロパティまたはエレメントに対して statement を実行します。オブジェクトのプロパティは特定の順序で保持されないため、プロパティは外見上ランダムな順序で表示されます。in ステートメントでは、クラスに定義された変数やメソッドなどの固定プロパティは列挙されません。
固定プロパティのリストを取得するには、flash
in を使用してオブジェクトのプロパティに対して反復処理を行います。in で typeof 演算子を使用して、特定の型の子に対して反復処理を行います。
ローカルデータの保存
コレクションのアイテムに対して反復処理を行い、各アイテムに対して statement を実行します。in ステートメントは、XML オブジェクトだけでなくオブジェクトや配列にも使用できます。in ステートメントは、固定プロパティではなくオブジェクトの動的プロパティを介してのみ反復処理を行います。固定プロパティは、クラス定義の一部として定義されるプロパティです。in ステートメントを使用するには、クラスの属性を dynamic と宣言する必要があります。in ステートメントは、プロパティ名ではなくオブジェクトのプロパティの値に対して反復処理を行います。コレクションは、XML オブジェクト、汎用オブジェクト、または配列とすることができます。in を使用して、オブジェクトのプロパティで保持される値に対して反復処理を行います。in を使用して、配列のエレメントに対して反復処理を行います。in で is 演算子を使用して、特定の型の子に対して反復処理を行います。p) に対して反復処理を行います。特定のタスクを実行するよう定義した一連のステートメントで構成されます。ある位置で関数を定義し、SWF ファイルの異なるスクリプトからその関数を呼び出すことができます。関数を定義する場合、その関数のパラメータも指定できます。パラメータは、関数が処理する値のプレースホルダです。関数を呼び出すたびに異なるパラメータを渡すことができます。これにより、1 つの関数を異なる状況で再利用できます。シンタックス 1: function キーワードを使用して、関数名、パラメータ、およびステートメントを指定した関数を定義できます。スクリプトによって関数が呼び出されると、関数定義内のステートメントが実行されます。関数は前方参照が許されます。つまり、同じスクリプト内では、関数を呼び出す箇所よりも後に関数を宣言できます。関数定義は、同じ関数の以前の定義を置き換えます。ステートメントが許されている場所であれば、どこでもこのシンタックスを使用できます。シンタックス 2: function を使用して、匿名関数を作成し、この関数への参照を返すこともできます。このシンタックスは式の中で使用され、特にオブジェクト内にメソッドを組み込む場合に便利です。一般に、arguments オブジェクトは、可変数のパラメータを受け取る関数や再帰的な匿名関数を作成する場合に使用します。次の例では、平方数の値を返す関数 sqr を定義します。同じスクリプト内で関数を定義して使用する場合は、関数の使用箇所の後に関数定義を記述することができます。
// ここにステートメントを記述
プロパティと同じように読み取り可能なメソッドである getter を定義します。他のメソッドとは異なり、getter の呼び出しには括弧 (()) を使用しないため、変数のように見えます。getter では、プライベートプロパティにパブリックインターフェイスを作成して、非表示の情報の規則を適用できます。情報を非表示にすると、基になるプライベートプロパティの実装が変更された場合でも、パブリックインターフェイスを変更する必要がないというメリットがあります。getter には、サブクラス内でオーバーライドできるというメリットもあります。var または const で宣言されたプロパティはオーバーライドできません。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。この値は対応する set コマンドで使用される値と同じである必要があります。次の例では、Team クラスを定義しています。スクリプトに次のコードを入力します。name をトレースする際に、getter メソッドを使用してプロパティの値を返しています。条件を評価して、次のステートメントを実行するかどうかを判定します。条件が true の場合は、条件に続く中括弧 ({}) 内のステートメントが実行されます。条件が false の場合は、中括弧内のステートメントをスキップし、中括弧の後のステートメントが実行されます。スクリプト内に分岐処理を作成するには、if ステートメントと else ステートメントを組み合わせます。実行するステートメントが 1 つしかない場合、if ステートメントで実行するステートメントを囲む中括弧 ({}) は必要ありません。クラスでインターフェイスを実装するかどうかを指定します。クラスでインターフェイスを実装する場合、インターフェイスで宣言されているすべてのメソッドをクラスで定義する必要があります。インターフェイスを実装するクラスのインスタンスは、インターフェイスが定義するデータ型のメンバーと見なされます。このため、is 演算子は、最初のオペランドがクラスインスタンスで、次のオペランドがインターフェイスとなっており、さらに、データ型の強制型変換がインターフェイス操作で定義されている場合に true を返します。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。外部で定義されたクラスおよびパッケージをコードで使用できるようにします。Sprite クラスを使用する場合は、これを読み込む必要があります。import ディレクティブを使用した後は、パッケージ名を含む完全なクラス名かクラス名のみのいずれかを使用できます。
// 完全なクラス名
アクセス対象のクラスがパッケージ内に複数存在する場合は、次の例に示すように、1 つのステートメントですべてのクラスを読み込むことができます。import ディレクティブは、読み込んだパッケージの最上位レベルにあるクラス、関数、および変数のみを読み込みます。ネストされたパッケージは明示的に読み込む必要があります。読み込んだクラスをスクリプト内で使用しない場合、そのクラスは SWF ファイルには出力されません。したがって、SWF ファイルのサイズを気にすることなく、大きなパッケージを読み込むことができます。クラスに関連付けられたバイトコードは、実際に使用された場合のみ、SWF ファイルに含められます。必要のないクラスを読み込むと、名前の競合が起こりやすくなるというデメリットがあります。import ディレクティブは、それを呼び出している現在のスクリプト (フレームまたはオブジェクト) にのみ適用されます。そのフレームでは、そのパッケージ内のクラスを簡単な名前で参照できます。foo();) で参照するか、そのパッケージのクラスを読み込む他のフレームに import ディレクティブを追加する必要があります。
コードの構成オプション
指定したファイル内のコマンドを呼び出し元のスクリプトにインクルードし、そのスクリプトの一部であるかのように扱います。include ディレクティブは、コンパイル時に呼び出されます。このため、インクルードファイルに何らかの変更を行った場合は、ファイルを保存し、ファイルを使用する SWF ファイルを再コンパイルする必要があります。
コードの構成オプション
インターフェイスを定義します。インターフェイスとは、メソッドのセットを定義するデータ型です。このメソッドは、インターフェイスを実装するすべてのクラスで定義される必要があります。インターフェイスはクラスに似ていますが、次に示す重要な違いがあります。インターフェイスにはメソッドの宣言だけが含まれます。メソッド実装は含まれません。つまり、インターフェイスを実装するすべてのクラスは、インターフェイスで宣言されている各メソッドの実装を定義する必要があります。インターフェイスメソッドの定義では、public または private などの属性を指定できませんが、実装されたメソッドはインターフェイスを実装するクラスの定義で public と指定する必要があります。extends ステートメントまたは implements ステートメントを介したクラスを使用して、インターフェイスで複数のインターフェイスを継承することができます。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。
// ここにステートメントを記述
クラス、変数、定数、または関数に同じパッケージ内のすべての呼び出し元からアクセスできるよう指定します。デフォルトでは、クラス、プロパティ、およびメソッドは internal 名前空間に属します。internal 属性は、変数がクラスの一部かどうかに関わらず適用できます。internal 属性は、定数がクラスの一部かどうかに関わらず適用できます。internal 属性は、関数がクラスの一部かどうかに関わらず適用できます。internal 属性は、名前空間がクラスの一部かどうかに関わらず適用できます。
クラスプロパティの属性
ネストされたループでは、ラベルを参照しない break または continue ステートメントは、そのループの残りの部分のみスキップし、一連のループはスキップしません。ただし、一連のループを定義するステートメントに関連付けられたラベルがある場合、break または continue ステートメントはこのラベルを参照することにより、一連のループをスキップできます。また、ラベルによりブロックステートメントを終了することもできます。ブロックステートメントがループの一部である場合以外は、ラベルを参照しない break ステートメントをブロックステートメント内に配置することはできません。ブロックステートメントに関連付けられたラベルがある場合は、このラベルを参照する break ステートメントをブロックステートメント内に配置できます。次の例では、ネストされたループでラベルを使用して、一連のループを終了する方法を示します。コードは、ネストされたループを使用して、0 から 99 までの数値のリストを生成します。break ステートメントはカウントが 80 に到達する直前で発生します。次の例では、ブロックステートメントでのラベルの使用方法を示します。ブロックステートメントには foo ラベルが付けられ、break ステートメントはブロック内の最後のステートメントをスキップできます。定義の可視性を制御できます。定義済みの名前空間が用途に合わない場合は、独自の名前空間を定義することができます。次に、独自の名前空間を作成、適用、参照する手順を示します。次に、プロパティまたはメソッドの宣言でカスタム名前空間を使用して、プロパティまたはメソッドに名前空間を適用します。次に、use キーワードを使用するか、接頭辞として識別子に名前空間を付けて、名前空間を参照します。有効な識別子を使用できます。このパラメータはオプションです。
パッケージと名前空間
クラスプロパティの属性
Flash Player がネイティブコードで関数またはメソッドを実装するよう指定します。このキーワードは、独自に作成するコードでは使用できません。変数に割り当てることができる特別な値、またはデータがない場合に関数から返される特殊な値です。null は、存在しない、または定義されていないデータ型を表す値として使用されます。次の例では、インデックスの付いた配列の最初の 6 つの値をチェックし、値が指定されていない (value == null) 場合は、メッセージを出力します。
データ型の記述
ObjectProxy クラスメソッドは自身の名前空間内にあり、Proxy クラスメソッド名と一致するインスタンスメソッド名が Proxy サブクラスに含まれる場合に、名前が競合しないようになっています。
// ここにステートメントを記述
メソッドで継承したメソッドを置き換えるよう指定します。継承したメソッドをオーバーライドするには、override 属性を使用する必要があります。名前、数値、パラメータの型、および戻り値の型は完全に一致する必要があります。override 属性を使用せずにメソッドをオーバーライドしようとするとエラーが発生します。同様に、メソッドに一致する継承されたメソッドがない場合に、override 属性を使用するとエラーが発生します。
継承されたものでないメソッド
インターフェイスメソッドを実装するメソッド
スーパークラスで final と指定されている継承されたメソッド
var または const で宣言されたプロパティをオーバーライドすることはできませんが、基本クラスのプロパティを getter-setter とし、get および set で定義されたメソッドをオーバーライドすることで、同様の機能を実現することができます。他のスクリプトから読み込んだ個別のグループにコードを分類できます。クラスがパッケージのメンバーであることを示すには、package キーワードを使用する必要があります。
// ここにステートメントを記述
変数、定数、またはメソッドを宣言または定義したクラスからのみアクセスできるよう指定します。さらに、private ではコンパイル時および実行時の両方でアクセスが制限されます。デフォルトでは、同じパッケージにある呼び出し元は変数または関数にアクセスできます。このキーワードは、変数や関数へのアクセスを制限する場合に使用します。このキーワードは、クラス定義でのみ使用できます。インターフェイス定義では使用できません。private は、クラスまたはその他のすべてのパッケージレベルの定義には適用できません。private 属性は、変数がクラス内にある場合のみ適用できます。private 属性は、定数がクラス内にある場合のみ適用できます。private 属性は、メソッドがクラス内にある場合のみ適用できます。private 属性は、名前空間がクラス内にある場合のみ適用できます。次の例では、private キーワードを使用して、クラス内の特定のプロパティを非表示にする方法について説明します。alpha はプライベート変数であるため、A クラスの外部やサブクラス B からもアクセスできません。プライベート変数にアクセスしようとすると、エラーが発生します。
クラスプロパティの属性
// ここにステートメントを記述
変数、定数、メソッド、または名前空間を定義したクラスとそのサブクラスからのみアクセスできるよう指定します。デフォルトでは、同じパッケージにある呼び出し元は変数または関数にアクセスできます。このキーワードは、変数や関数へのアクセスを制限する場合に使用します。このキーワードは、クラス定義でのみ使用できます。インターフェイス定義では使用できません。private は、クラスまたは他のすべてのパッケージレベルの定義には適用できません。0 では Base の拡張クラスのみが保護されたプロパティにアクセスできます。Java では、Base と同じパッケージにあるすべてのクラスが保護されたプロパティにアクセスでき、Base のサブクラスでない場合も同様です。次の例では、クラス A で保護されたクラス変数を作成し、クラス A のサブクラスであるクラス B からその変数に正常にアクセスしています。
クラスプロパティの属性
// ここにステートメントを記述
クラス、変数、定数、またはメソッドにすべての呼び出し元からアクセスできるよう指定します。クラス、変数、およびメソッドはデフォルトでは内部クラスです。つまり、現在のパッケージ内にのみ表示されます。クラス、変数、またはメソッドにすべての呼び出し元からアクセスできるようにするには、public 属性を使用する必要があります。public 属性は、変数がクラスの一部かどうかに関わらず適用できます。public 属性は、定数がクラスの一部かどうかに関わらず適用できます。public 属性は、関数がクラスの一部かどうかに関わらず適用できます。public 属性は、名前空間がクラスの一部かどうかに関わらず適用できます。次の例では、クラスファイルでパブリック変数を使用する方法を示します。User クラスのいずれかのパブリック変数をプライベート変数に変更した場合、User クラスの外から変数にアクセスしようとすると、コンパイル時エラーが生成されます。
クラスプロパティの属性
実行を呼び出し元の関数に直ちに返します。return ステートメントの後に式が続く場合は、式が評価されて結果が返されます。関数の定義に戻り値の型が含まれている場合は、return ステートメントの後に式を続ける必要があります。複数の値を取得することはできません。複数の値を取得しようとした場合は、最後の値だけが返されます。次の例では、c が返されます。複数の値を取得する必要がある場合は、代わりに配列またはオブジェクトを使用します。このパラメータはオプションです。
// ここにステートメントを記述
パブリックインターフェイスでプロパティとして表示されるメソッドである setter を定義します。setter は特別なメソッドで、var キーワードで宣言されたプロパティの値を設定します。他のメソッドとは異なり、setter の呼び出しには括弧 (()) を使用しないため、変数のように見えます。setter では、プライベートプロパティにパブリックインターフェイスを作成して、非表示の情報の規則を適用できます。情報を非表示にすると、基になるプライベートプロパティの実装が変更された場合でも、パブリックインターフェイスを変更する必要がないというメリットがあります。setter には、サブクラス内でオーバーライドできるというメリットもあります。var で宣言されたプロパティはオーバーライドできません。メモ : このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。この値は対応する get コマンドで使用される値と同じである必要があります。スクリプトに次のコードを入力します。
// ここにステートメントを記述
変数、定数、またはメソッドがクラスのインスタンスではなくクラスに属するよう指定します。静的クラスメンバーにアクセスするには、インスタンス名の代わりにクラス名を使用します。たとえば、Date クラスにある parse() という名前の静的メソッドは、次のシンタックスでのみ呼び出すことができます。たとえば、次のコードではエラーが発生します。インターフェイス定義では使用できません。静的クラスメンバーは継承されません。Java や C++ のように、サブクラス名を使用して静的クラスメンバーを参照することはできません。ただし、修飾子を使用せずに、クラスまたはサブクラス内の静的変数またはメソッドを参照できます。次の例を参照してください。静的メソッド内では、super ステートメントまたは this キーワードは使用できません。メモ : このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。次の例では、static キーワードを使用して、作成されたクラスのインスタンス数を追跡するカウンタを作成する方法を示します。スクリプトに次のコードを入力します。次の例では、Users クラスを拡張して、静的変数およびメソッドは継承されないものの、サブクラスで参照できることを示しています。
クラスプロパティの属性
メソッドやコンストラクタのスーパークラスまたは親バージョンを呼び出します。クラスコンストラクタの本体内で使用する場合、super() ステートメントはコンストラクタのスーパークラスバージョンを呼び出します。スーパークラスコンストラクタの呼び出しには、正しい数の引数が指定されている必要があります。スーパークラスコンストラクタは、明示的に呼び出すかどうかに関わらず、必ず呼び出されます。明示的に呼び出さない場合、呼び出しは引数なしでサブクラスのコンストラクタ本体の最初のステートメントの前に自動的に挿入されます。つまり、サブクラスでコンストラクタ関数を定義し、スーパークラスコンストラクタが引数を取る場合は、正しい数の引数を指定してスーパークラスコンストラクタを明示的に呼び出す必要があります。そうでない場合は、エラーが発生します。0 とは異なり、スーパークラスコンストラクタへの呼び出しは、サブクラスコンストラクタの最初のステートメントである必要はありません。
インスタンスメソッドの本体で使用する場合は、super をドット () パラメータと共に使用して、メソッドのスーパークラスバージョンを呼び出すことができます。
また、オプションとしてスーパークラスメソッドに引数 (arg1
このスタイルは、スーパークラスのメソッドにビヘイビアを追加するだけでなく、そのメソッドを使用して元のビヘイビアを実行するようなサブクラスメソッドを作成する場合に便利です。静的メソッドで super ステートメントを使用することはできません。argN:* — メソッドのスーパークラスバージョンまたはスーパークラスのコンストラクタ関数に渡すオプションのパラメータです。式の値に応じて、ステートメントへの転送を制御します。switch ステートメントには、どの case ステートメントも式に一致しない場合に実行するデフォルトケースを指定する必要があります。それぞれの case ステートメントは、break ステートメントで終了する必要があります。これにより、フォールスルーエラーを回避できます。フォールスルーエラーが発生すると、ケースがテスト式に一致しない場合でも、次の case ステートメントのコードが実行されます。次の例では、デフォルトケースにフォールスルーする switch ステートメントを定義します。メソッドに含まれるオブジェクトへの参照です。スクリプトの実行時には、this キーワードはそのスクリプトを含むオブジェクトを参照します。メソッド本体内では、this キーワードは呼び出されたメソッドを含むクラスインスタンスを参照します。ダイナミッククラスで定義された関数を呼び出すには、this を使用して適切なスコープで関数を呼び出す必要があります。スクリプトに次のコードを追加します。as" を使用するとシンタックスエラーが発生し、上記の例ではコメントアウトされます。catch ブロックが例外をキャッチしない場合は、スローされた値のストリング表現が [出力] パネルに表示されます。catch または finally ブロックが例外をキャッチしない場合は、スローされた値のストリング表現がログファイルに記録されます。一般には、Error クラスまたはそのサブクラスのインスタンスをスローします。「例」を参照してください。この例の checkEmail() 関数は、受け取ったストリングが正しい形式の電子メールアドレスかどうかを確認します。ストリングに "@" 記号が含まれていない場合は、エラーをスローします。e-mail ストリングに有効な電子メールアドレスが含まれていない場合は、trace ステートメントでエラーメッセージが出力されます。次の例では、Error クラスのサブクラスをスローします。スクリプトに次のコードを入力します。
アプリケーションの同期エラーの処理
自動的な型指定により true を数値に変換すると、その結果は 1 となります。次の例では、自動的な型指定によって true を数値 1 に変換する方法を示しています。エラーが発生する可能性のあるコードブロックを囲み、そのエラーに対処します。0 でランタイムエラーの条件処理に使用される主要なメカニズムです。次に、最初にアクセス可能な catch ブロックにエラーオブジェクトをパス (スロー) します。アクセス可能な catch ブロックがない場合、例外は不明な例外と見なされます。不明な例外が発生すると、スクリプトは終了します。throw ステートメントを使用して、コードで例外を明示的にスローすることができます。任意の値をスローできますが、柔軟性があり Flash Player のビヘイビアに一致するオブジェクトをスローすることが推奨されます。例外をキャッチするには、Flash Player または作成したコードでスローするかに関わらず、例外をスローするコードを try ブロックに配置します。try ブロック内のコードが例外をスローすると、制御は catch ブロックがある場合はこれに移動し、次に finally ブロックがある場合はこれに移動します。finally ブロックは、例外がスローされたかどうかに関わらず、必ず実行されます。try ブロック内のコードが例外をスローしなかった場合 (try ブロックが正常終了した場合)、catch ブロック内のコードは無視されますが、finally ブロック内のコードは実行されます。try ブロックは、必要なだけ何レベルでもネストできます。パラメータの型を指定することもできます。複数の catch ブロックを使用する場合は、型指定したパラメータを使用することで、1 つの try ブロックからスローされた複数の型のエラーオブジェクトをキャッチできます。スローした例外がオブジェクトである場合、スローしたオブジェクトが指定した型のサブクラスであれば、型が一致します。特定の型のエラーがスローされた場合は、対応するエラーを処理する catch ブロックが実行されます。指定した型ではない例外がスローされた場合、catch ブロックは実行されず、try ブロックからそのエラーに一致する catch ハンドラに対して例外が自動的にスローされます。関数の内部でエラーがスローされ、その関数に catch ハンドラが含まれていない場合、その関数は終了します。catch ブロックが見つからない限り、呼び出し元の関数もすべて終了します。このプロセスの間に、すべてのレベルの finally ハンドラが呼び出されます。通常は Error クラスまたはそのサブクラスのインスタンスです。catch ステートメントの使用例を示します。try ブロック内のコードで無効な操作が指定されています。スプライトは自身を子として追加することはできません。次に例を示します。
アプリケーションの同期エラーの処理
指定した名前空間をオープンな名前空間のセットに追加します。指定した名前空間は、現在のコードブロックが終了すると、オープンな名前空間のセットから削除されます。use namespace ディレクティブは、プログラム、パッケージ定義、またはクラス定義の最上位のレベルに表示できます。変数を指定します。関数内で変数を宣言した場合、その変数はローカルです。変数はその関数用に定義され、関数呼び出しの終了時にスコープから外れます。関数外で変数を宣言した場合、その変数は、そのステートメントが含まれるタイムライン全体で使用できます。別のオブジェクトのスコープ内の変数をローカル変数として宣言することはできません。データ型の後にコロンを付けて、変数にデータ型を割り当てることができます。カンマで宣言を区切ることにより、1 つのステートメントで複数の変数を宣言できます。ただし、このシンタックスを使用すると、コードが読みにくくなる場合があります。push を使用して、配列の末尾にエレメントを追加します。条件を評価して、条件の評価結果が true になる場合はステートメントを実行します。その後、ループの先頭に戻り、再び条件を評価します。条件の評価結果が false になると、ステートメントはスキップされ、ループは終了します。while ステートメントは、次の手順を実行します。手順 1 ~ 4 の各繰り返しはループの反復と呼ばれます。次の手順に示すように、条件は各反復の始めにテストされます。それ以外の場合は、while ステートメントが完了し、while ループの直後のステートメントから実行が再開されます。continue ステートメントが検出された場合は、残りのステートメントをスキップし、手順 1 に進みます。break ステートメントが検出された場合は、while ステートメントを終了し、while ループの直後のステートメントから実行が再開されます。手順 1 に進みます。一般にループ処理は、カウンタ変数が指定値より小さい間はアクションを実行するという場合に使用します。各ループの最後で、指定された値に達するまでカウンタがインクリメントされます。実行するステートメントが 1 つしかない場合、while ステートメントで実行するステートメントを囲む中括弧 ({}) は必要ありません。次の例では、while ステートメントを使用して式をテストします。条件が true でなくなると、ループは終了します。ステートメントの実行に使用するデフォルトのオブジェクトを設定します。記述するコードの量を減らすことができます。識別子を解決するために with ステートメントで使用されるスコープチェーンは、次のリストの最初の項目から始まり、最後の項目まで続きます。
Activation オブジェクト (スクリプトが関数内で呼び出されたローカル変数を持つ関数を呼び出すときに自動的に作成されるテンポラリオブジェクト)
実行中のスクリプトを含むオブジェクト
with ステートメント内に変数を設定するには、with ステートメントの外側で変数を宣言しておくか、変数を設定するタイムラインへのフルパスを入力する必要があります。変数を宣言せずに with ステートメントに設定すると、with ステートメントはスコープチェーンに従って値を検索します。変数がまだ存在しない場合、with ステートメントが呼び出されたタイムライン上に新しい値が設定されます。次のコード例では、with ステートメントを使用せずに、上記のコードを記述しています。with ステートメントは、スコープチェーンリスト内の複数の項目に同時にアクセスする場合に便利です。次の例では、ビルトインの Math オブジェクトをスコープチェーンの前に設定します。PI に解決されます。a、x、y、r の各識別子は Math オブジェクトのメソッドやプロパティではありませんが、関数 polar() のオブジェクトアクティベーションスコープ内に存在するので、それぞれ対応するローカル変数として処理されます。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
デバッグモードへの切り替え
0 のデバッグ
デバッグモードへの切り替え
デバッグセッションを開始する方法は、作業しているファイルの種類によって異なります。Flash でデバッグセッションが開始されると、セッションに書き出す特別な情報が SWF ファイルに追加されます。この情報により、デバッガはエラーが検出されたコード内の行番号を特定できます。この特別なデバッグ情報は、パブリッシュ設定で特定の FLA ファイルから作成されたすべての SWF ファイルに含めることができます。これにより、デバッグセッションを明示的に開始しなくても、SWF ファイルをデバッグできます。このデバッグ情報により、SWF ファイルが少し大きくなります。
FLA ファイルからのデバッグの開始
[デバッグ]-[ムービーのデバッグ] を選択します。
0 AS ファイルからのデバッグの開始
このメニューを表示するには、FLA ファイルを Flash でも開いておく必要があります。[デバッグ]-[ムービーのデバッグ] を選択します。
FLA ファイルから作成されたすべての SWF ファイルへのデバッグ情報の追加
FLA ファイルを開いて、[ファイル]-[パブリッシュ設定] を選択します。[パブリッシュ設定] ダイアログボックスで、[Flash] タブをクリックします。[デバッグを許可] を選択します。
デバッグモードの終了
デバッグコンソールで [デバッグセッションを終了] ボタンをクリックします。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
アニメーションの作成 / アニメーションの基本
0 を使用する Flash ドキュメントの [アクション] パネルまたはソースファイル (クラスファイルなど) の中でそのモーションを別のシンボルに適用します。0 としてのモーションのコピー] では、モーショントゥイーンの次のプロパティをキャプチャできます。
パスに沿って回転
タイムラインで、コピーするモーショントゥイーンを含むフレームを選択します。同じレイヤーのフレームを選択する必要がありますが、単一のモーショントゥイーンをスパンしていなくてもかまいません。選択範囲は、1 つのトゥイーン、空のフレーム、または複数のトゥイーンをスパンできます。0 としてのモーションのコピー] を選択します。モーショントゥイーンをアタッチするインスタンスの名前を指定します。コピーされたトゥイーンを適用するインスタンスを含む Flash ドキュメントの [アクション] パネルにコードをペーストします。0 としてのモーションのコピー] コマンドを使用して生成される XML には多少の違いがあります。トゥイーンにモーションガイドとカスタムイージングが適用される場合、[モーションをコピー] コマンドで生成される XML タグには、イージング用のベジェ曲線のプロパティが含まれ、XML では 2 つのキーフレームだけが使用されます。0 としてのモーションのコピー] コマンドを使用すると、フレームごとにキーフレームが作成され、各キーフレームに対して正確な値が適用されます。モーションガイドを削除した場合は、どちらのコマンドでも、カスタムイージングを記述する XML コードが表示されます。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
ファイルの保存とバージョン管理
FLA ファイルを保存する場合は、ドキュメントに一貫した命名スキームを使用します。1 つのプロジェクトで複数のバージョンを保存する場合は、特に重要になります。操作している FLA ファイルが 1 つだけで、ファイルの作成時にバージョンを保存しないと、何らかの問題が発生することがあります。FLA ファイルに保存された履歴が原因でファイルが大きくなる可能性や、どのようなソフトウェアでもあることですが、作業中にファイルが破損する可能性があります。開発の途中で複数のバージョンを保存しておけば、作業を元に戻す必要が生じた場合に以前のバージョンを使用できます。ファイル名には、次に示すように難解でない、直観的で読みやすく、オンラインで正常に動作する名前を付けます。スペース、大文字、特殊文字は使用しないでください。英字、数字、ダッシュ、アンダースコアだけを使用します。
同じファイルの複数のバージョンを保存する場合は、menu01
swf などのように、一貫性のある番号付けを使用します。命名スキームには、すべて小文字を使用することも検討してください。これは、一部のサーバーが大小文字を区別するためです。swf など、名詞と動詞の組み合わせや形容詞と名詞の組み合わせを使用する命名方式を検討してください。大規模なプロジェクトの構築時に FLA ファイルの複数の新しいバージョンを保存するには、次の方法を使用します。[ファイル]-[名前を付けて保存] を選択し、ドキュメントの新バージョンを保存します。Flash ドキュメントを管理するには、バージョン管理ソフトウェアか [プロジェクト] パネルを使用します。他のバージョン管理ソフトウェアパッケージも FLA ドキュメントに使用できますが、[プロジェクト] パネル内で使用できるとは限りません。ファイルを保存するには、[保存]、[名前を付けて保存]、[保存して最適化] など、いくつかのオプションが使用できます。ファイルを保存する際、Flash ではドキュメントの最適化バージョンを作成する前にすべてのデータが分析されるわけではありません。ドキュメントに加えた変更が FLA ファイルのデータの末尾に追加されるだけであり、これによってドキュメントの保存にかかる時間が短くて済みます。[名前を付けて保存] を選択すると、Flash では新しい最適化されたバージョンのファイルが書き込まれるので、結果としてファイルサイズは小さくなります。[保存して最適化] を選択すると、Flash では最適化された新しいファイル (取り消し履歴を削除したもの) が作成され、元のファイルは削除されます。重要: ドキュメントでの作業中に [保存] を選択した場合は、取り消しを使用すると保存した時点よりも前に戻すことができます。[保存して最適化] はファイルの以前のバージョンを削除して、最適化したバージョンと置き換えるので、保存する前の変更を取り消すことはできません。バージョン管理ソフトウェアを使用して FLA ファイルのバックアップを作成しない場合は、必ずプロジェクトの節目ごとに [名前を付けて保存] を実行し、ドキュメントに新しいファイル名を付けてください。多くのソフトウェアパッケージで、ユーザーがファイルのバージョンを管理できます。このようなソフトウェアを使用することで、チームの作業効率が向上し、誤ってファイルを上書きしてしまうことや旧バージョンのドキュメントで作業してしまうことが少なくなります。他のドキュメントと同様、これらのプログラムを使って Flash の外部で Flash ドキュメントを整理することができます。
プロジェクトおよびバージョン管理のガイドライン
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
プリント範囲の指定
プリント範囲の起点は、ページのプリント可能領域の左上隅になります。プリント範囲がページ上のプリント可能領域よりも大きい場合は、ページの右端と下端からはみ出るプリントデータが切り取られます。
ページの矩形
プリント範囲を指定しない場合、または無効なプリント範囲を指定した場合は、デフォルトでルートドキュメントのステージ領域がプリント範囲になります。
伸縮、ポイント、およびピクセル
PrintJob クラスを使用したプリントジョブは、デフォルトでは Flash コンテンツを伸縮せずにプリントします。たとえば、画面上で幅が 144 ピクセルのオブジェクトは、用紙上では 144 ポイント、つまり 2 インチ幅でプリントされます。1 ポイントが 1 ピクセルに相当します。オーサリングツール上では 72 ピクセルが 1 インチに、用紙の上では 72 ポイントが 1 インチに相当します。Flash の画面上のコンテンツとプリントページ上のコンテンツとの対応を理解するためには、画面用の測定単位とプリント用の測定単位について理解する必要があります。ピクセルは画面用の測定単位、ポイントはプリント用の測定単位です。次に、それぞれの測定単位間の関係を示します。
プリントの前にムービークリップを伸縮するには、このメソッドを呼び出す前に MovieClip
yscale プロパティを設定し、呼び出し後に元の値を設定し直します。ムービークリップを伸縮して、しかも printArea プロパティに値を指定する場合、 printArea に指定するピクセルの値は、ムービークリップの元のサイズを反映したものとなります。つまり、たとえばムービークリップの伸縮率を 50% に設定し、プリント範囲を 500 × 500 ピクセルに指定した場合でも、プリントされるコンテンツの範囲は、伸縮率を指定しない場合と変わりません。ただプリントのサイズが半分に縮小されるだけです。0 リファレンスガイド』) を参照してください。0 のプログラミング』の「プリント」を参照してください。
ベクターグラフィックまたはビットマップイメージのプリント指定
options パラメータでは、コンテンツをベクターグラフィックとしてプリントするか、ビットマップイメージとしてプリントするかを指定することができます。このオプションパラメータを使用するときは、次のシンタックスを使用します。デフォルト値は false で、これはベクター形式を示します。使用する値を決めるときには、次の点に注意してください。プリントするコンテンツにビットマップイメージが含まれている場合には、透明度とカラー効果が含まれるように、ビットマップとしてプリントするようプリントジョブを指定します。反対に、コンテンツにビットマップイメージが含まれていない場合は、高画質でプリントできるように、ベクターグラフィックとしてプリントするようプリントジョブを指定します。
プリントするフレームの指定
frameNum パラメータを使用して、プリントするフレームを指定します。フレーム番号のパラメータを指定しない場合は、ページを追加するときに最初のパラメータとして指定したターゲットまたはレベルの現在のフレームが、デフォルトでプリントされます。0 のプログラミング』の「プリント」を参照してください。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
プリントジョブの作成
send() の呼び出し間にのみ実装するようにしてください。send() までの間は、ユーザーとの対話操作を実行しないでください。そのような処理は避けて、プリントジョブのフォーマット処理や、プリントジョブへのページ追加、プリンタへのプリントジョブ送信の作業を完了する期間としてください。
プリントジョブを開始し、オペレーティングシステムのプリントダイアログボックスを表示します (PrintJob
ページをプリントジョブに追加します。ボタンに対応したプリントジョブを作成するための ActionScript のサンプルコードを次に示します。どのような場合でも、一度に実行できるプリントジョブは 1 つだけです。次のプリントジョブは、直前のプリントジョブで以下の状況が発生するまで作成されません。0 のプログラミング』の「プリント」を参照してください。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
パラメータおよび属性
次のタグ属性およびパラメータは、[パブリッシュ] コマンドを使用して作成した HTML コードを表します。Flash コンテンツに表示するための HTML を独自に記述する際には、このリストを参照してください。オプションの項目には説明があります。テンプレートをカスタマイズするときは、テンプレート変数を値に置換することができます。テンプレート変数は、次の一覧にある各パラメータの「値」セクションで確認できます。注意: このセクションにリストされた属性およびパラメータは、XHTML 規格に準拠するように小文字で表示されます。(オプション) [デバイスフォント] オプションがオフの場合でも、静的テキストオブジェクトがデバイスフォントでレンダリングされるかどうかを指定します。この属性は、必要なフォントがオペレーティングシステムに用意されている場合に適用されます。ロードする SWF ファイルの名前を指定します。値は、上記のように正確に入力する必要があります。アプリケーションの幅を、ピクセルまたはブラウザウィンドウに対する比率で指定します。アプリケーションの高さを、ピクセルまたはブラウザウィンドウに対する比率で指定します。注意: Flash アプリケーションは拡大縮小しても精度が変わらないので、縦横比率を維持しておけば、サイズを変えても画質が悪くなりません。値は、上記のように正確に入力する必要があります。Flash Player プラグインの場所を確認し、インストールされていなければ、ユーザーがダウンロードできるようにします。値は、上記のように正確に入力する必要があります。この属性を省略した場合のデフォルト値は false です。Java を起動すると、SWF ファイルを開始するまでに掛かる時間が大幅に増加するため、このタグは必要なときのみ true に設定します。(オプション) Web ブラウザにアプリケーションをロードすると同時に再生するかどうかを指定します。たとえば、Flash アプリケーションでインタラクティブ機能を使用している場合、ユーザーにボタンのクリックなどのタスクを実行させてアプリケーションの再生を開始するよう設定できます。このような場合には、play 属性を false に設定すると、ダウンロードされても自動的にアプリケーションが開始されることはありません。この属性を省略した場合のデフォルト値は true です。(オプション) コンテンツが最終フレームに到達したとき、そこで再生を停止するか、無限にリピートするかを指定します。この属性を省略した場合のデフォルト値は true です。(オプション) 使用するアンチエイリアスのレベルを指定します。アンチエイリアスは、SWF ファイルの各フレームをスムーズにしてから画面に表示するため、高速のプロセッサを必要とします。表示画質と再生スピードのどちらを優先するかによって、次に示す値から 1 つ選択します。では画質よりも再生スピードを優先し、アンチエイリアスを使用しません。は、最初は再生スピードを優先しますが、可能な場合は画質も改善します。再生は、アンチエイリアスをオフにして開始されます。アンチエイリアスを行ってもプロセッサが十分に再生スピードを維持できると判断されると、アンチエイリアスはオンになります。は、最初は再生スピードと画質の両方を同じ割合で優先しますが、必要に応じて再生スピードを優先します。再生は、アンチエイリアスをオンにして始まります。ただし、フレームレートが、ムービーに指定されたフレームレートより遅くなると、再生スピードを上げるためにアンチエイリアスがオフとなります。この設定は、[アンチエイリアス] コマンドを選択するのと同じ結果をもたらします ([表示]-[プレビューモード]-[アンチエイリアス])では、多少アンチエイリアスを使用しますが、ビットマップはスムージング処理されません。この設定では、画質が Low の設定よりも高く、High の設定よりも低くなります。では、再生スピードよりも画質を優先し、必ずアンチエイリアスを使用します。SWF ファイルにアニメーションが組み込まれていない場合は、ビットマップがスムージング処理され、アニメーションが組み込まれている場合は、ビットマップがスムージングされません。では、最高の画質を実現し、再生スピードは考慮しません。すべての出力に対してアンチエイリアスが行われ、ビットマップが常にスムージングされます。(オプション) アプリケーションの背景色を指定します。SWF ファイルで指定された背景色の設定を上書きするには、この属性を使用します。この属性は、HTML ページの背景色には影響しません。(オプション) width および height の値がパーセントで指定されている場合、アプリケーションをブラウザウィンドウの中でどのように配置するかを定義します。を指定すると、指定された領域内にコンテンツ全体が、アプリケーションの元の縦横比を維持したまま歪まずに表示されます。ただし、アプリケーションの両側に境界枠が表示されることがあります。を指定すると、指定された領域いっぱいにコンテンツがサイズ調整されて、歪まずに表示されます。ただし、アプリケーションの元の縦横比を保つために、ある程度トリミングされることがあります。を指定すると、指定された領域にちょうど収まるようにコンテンツ全体が表示されますが、元の縦横比は保たれません。歪みが発生する場合もあります。では、アプリケーションをブラウザウィンドウの中央に配置し、ブラウザウィンドウがアプリケーションより小さい場合は、アプリケーションの端をトリミングします。では、アプリケーションをブラウザウィンドウのそれぞれ左、右、上、下の辺に揃え、必要に応じて残りの 3 辺をトリミングします。を指定した場合、アプリケーションをそれぞれブラウザウィンドウの左上隅か右上隅に揃え、必要に応じて、下端と、残りの右端または左端をトリミングします。を指定した場合、アプリケーションをそれぞれブラウザウィンドウの左下隅か右下隅に揃え、必要に応じて、上端と、残りの右端または左端をトリミングします。この属性を省略した場合、コンテンツはブラウザウィンドウの中央に配置されます。
ベースディレクトリまたは URL
(オプション) SWF ファイル内のすべての相対パスのステートメントを決定する、ベースディレクトリまたは URL を指定します。この属性は、SWF ファイルを他のファイルとは異なるフォルダに保存する場合に便利です。を指定するとフルメニューが表示され、再生の機能拡張や制御に使用されるさまざまなオプションを利用できます。デフォルト値 true は、この属性を省略した場合に使用されます。0 の透明 Flash コンテンツ機能、絶対配置機能、およびレイヤー機能を使用可能にします。この属性/パラメータでサポートされるブラウザのリストについては、Flash ドキュメントのパブリッシュを参照してください。を指定すると、アプリケーションは、Web ページ上で専用の長方形のウィンドウに再生されます。を指定すると、ページ上でアプリケーションの背後にあるものはすべて非表示になります。を指定すると、HTML ページの背景がアプリケーションの透明な部分を通して透けて見えます。ただし、アニメーションの再生スピードが遅くなることがあります。はどちらも HTML レイヤーとやり取りし、SWF ファイルの上のレイヤーがアプリケーションをブロックできるようにします。この属性を省略した場合のデフォルト値は Window です。これはドメイン間セキュリティに大きく影響します。を指定した場合、スクリプトの実行が常に許可されます。を指定した場合、すべてのスクリプトの実行が禁止されます。を指定すると、Flash アプリケーションが HTML ページと同じドメインにある場合にだけ、スクリプト実行が許可されます。(オプション) ActiveX コントロールを設定して、シームレスなタブ処理を実行できます。このため、ユーザーは Tab キーを使用して Flash アプリケーションの外に移動できます。を指定するか省略した場合は、シームレスなタブ処理を実行するよう ActiveX コントロールが設定されます。を指定すると、バージョン 6 以前と同じように ActiveX コントロールが設定されます。このモードでは、Tab キーを使用しても、Flash アプリケーションを超えてフォーカスを進めることはできません。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
受講者が SCORM 準拠のクイズを受けるときは、次のイベントが発生します。受講者が LMS にログインします。受講者は、Flash クイズテンプレートを使って構築されたクイズを開始します。注意: このフレームセットは、ユーザーには見えません。受講者はクイズを進めます。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
受講者が AICC 準拠のクイズを受けるときは、次のイベントが発生します。受講者が LMS にログインします。受講者はコース構成をナビゲートして割り当て可能ユニット (AU) を見つけます。ここでは、このクイズが Flash クイズテンプレートを使って構築された Flash クイズであるとします。コンテンツは Web サーバー上に置かれます。正しくトラッキングするために、Flash ファイルは Flash AICC トラッキングフレームセットに埋め込まれている必要があります。コンテンツが起動するときの最終的な URL は、たとえば次のようになります。受講者はクイズを進めます。トラッキングデータは、受講者が質問に答えるか次のページに進むと送られます。注意: LMS との通信とデータトラッキングは、ユーザーには見えません。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
e-ラーニングコンテンツの作成 / アセットの追加、命名、登録
同類のインタラクションタイプを使う場合は、各 UI コンポーネントに一意名を付ける必要があります。たとえば、2 つの複数選択インタラクションを作成する場合、2 番目のインタラクションでは CheckBox および Button コンポーネントに一意のインスタンス名が必要です。このような新しいインスタンス名は、インタラクティブラーニングの [コンポーネントインスペクタ] パネルで登録します。ステージで UI コンポーネントインスタンスを選択します。プロパティインスペクタで、[インスタンス名] ボックスに名前を入力します。インタラクションの [コンポーネントインスペクタ] パネルでその名前を登録します。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
書き出す 1 つのサウンドの圧縮
サウンドの操作 / サウンドの書き出し
書き出す 1 つのサウンドの圧縮
次のいずれかの操作を実行します。[ライブラリ] パネルで、サウンドのアイコンをダブルクリックします。[ライブラリ] パネルでサウンドを選択し、パネルの右上隅にある [パネル] メニューで [プロパティ] を選択します。[ライブラリ] パネルでサウンドを選択し、このパネルの下部にある [プロパティ] ボタンをクリックします。サウンドファイルが外部で編集されている場合は、[更新] をクリックします。[デフォルト] 圧縮オプションを指定すると、SWF ファイルを書き出すときに、[パブリッシュ設定] ダイアログボックスのグローバル圧縮設定が使用されます。[デフォルト] を選択してさらに書き出し設定を追加することはできません。書き出し設定を設定します。[テスト] をクリックしてサウンドを 1 回再生します。再生が完了する前にサウンドのテストを停止する場合は、[停止] をクリックします。書き出し設定を調整し、目的とする音質が得られたら [OK] をクリックします。この圧縮は、ボタンクリックのような短いイベントサウンドを書き出すときに使用します。[Raw] 圧縮を選択すると、サウンドは圧縮されずに書き出されます。
[ステレオからモノラルへ変換] を選択すると、ミキシングされたステレオサウンドがモノラルに変換されます (モノラルサウンドにはこのオプションによる効果はありません)
サウンドの音質とファイルサイズを制御します。レートを下げると、ファイルサイズは小さくなりますが、サウンドの音質は低下します。レートオプションは、以下のとおりです。かろうじて音声の再生に使用できる程度の音質です。短い音楽での最低限の音質で、標準的な CD の 4 分の 1 のレートです。Web ページでの再生によく使用される設定で、標準的な CD の半分のレートです。標準的な CD のオーディオレートです。注意: Flash では、読み込まれたサウンドの kHz レートを読み込み時のレートより上げることはできません。MP3 圧縮方式でサウンドを書き出すことができます。MP3 は、音楽サウンドトラックのような長いストリーミングサウンドを書き出すときに使用します。MP3 形式で読み込んだファイルを書き出す場合、読み込み時と同じ設定を使用して書き出すことができます。
デフォルトの設定
他の MP3 圧縮設定を選択する場合は、この選択を解除します。選択すると、読み込んだ MP3 ファイルが読み込み時と同じ設定で書き出されます。書き出すサウンドファイルのビットレート (ビット/秒) を決定します。音楽を書き出すときは、ビットレートを 16 Kbps 以上に設定すると最適な音質が得られます。
ミキシングされたステレオサウンドがモノラルに変換されます (モノラルサウンドにはこのオプションによる効果はありません)
注意: [前処理] オプションは、20 Kbps 以上のビットレートを選択した場合のみ指定できます。圧縮速度と音質を決定します。次のオプションからいずれかを選択します。圧縮は速くなりますが、音質は低下します。圧縮は多少遅くなりますが、音質は向上します。圧縮は最も遅くなりますが、音質は最も高くなります。[スピーチ] 圧縮では、音声に適した圧縮を使用してサウンドが書き出されます。1 は、[スピーチ] 圧縮オプションをサポートしていません。これらのプレーヤーバージョンを対象としたコンテンツでは、MP3、ADPCM、Raw 圧縮のいずれかを使用します。サウンドの音質とファイルサイズを制御します。レートを下げると、ファイルサイズは小さくなりますが、サウンドの音質は低下します。必要に応じて次のオプションを選択します。音声の再生に使用できる音質です。音声の再生に適した音質です。Web 上のほとんどのタイプの音楽の再生に使用できる音質です。標準的な CD のオーディオレートです。ただし、圧縮が適用されるため、SWF ファイル内のサウンドは CD 品質ではありません。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
行揃え、マージン、インデント、行間隔の設定
テキストの操作 / テキスト属性の設定
行揃え、マージン、インデント、行間隔の設定
行揃えでは、テキストフィールドの端を基準にして、段落内の各テキスト行の位置が指定されます。横書きテキストはテキストフィールドの左右の端を基準に、縦書きテキストは上下の端を基準にして揃えられます。テキストは、テキストフィールドのいずれかの端、テキストフィールド内の中央、またはテキストフィールドの両端に揃えることができます。マージンでは、テキストフィールドのボーダーとテキストとの間隔を指定します。インデントでは、段落のマージンと先頭行の開始位置との間隔を指定します。行間隔では、段落内の隣接する行同士の間隔を指定します。縦書きテキストでは、垂直方向の列間の間隔が調整されます。
横書きテキストの使用
テキストツール を使用して、ステージからテキストフィールドを選択します。プロパティインスペクタ ([ウィンドウ]-[プロパティ]-[プロパティ]) で、次のオプションを設定します。行揃えを設定するには、[左揃え]、[中央揃え]、[ジャスティファイ]、[右揃え] のいずれかをクリックします。左または右のマージンを設定するには、[フォーマットオプションの編集] ボタン (段落記号のような形で、[ジャスティファイ] ボタンの横にあります) をクリックして、[フォーマットオプション] ダイアログボックスを表示します。[左マージン] または [右マージン] の値の隣にある三角形のボタンをクリックし、スライダをドラッグして値を選択するか、またはテキストフィールドに値を入力します。インデントを指定するには、[フォーマットオプションの編集] ボタン (段落記号のような形で、[ジャスティファイ] ボタンの横にあります) をクリックして、[フォーマットオプション] ダイアログボックスを表示します。[インデント] 値の隣にある三角形のボタンをクリックし、スライダをドラッグするか、またはテキストフィールドに値を入力します。行間隔を指定するには、[フォーマットオプションの編集] ボタン (段落記号のような形で、[ジャスティファイ] ボタンの横にあります) をクリックして、[フォーマットオプション] ダイアログボックスを表示します。[行間] の値の隣にある三角形のボタンをクリックし、スライダをドラッグして値を選択するか、またはテキストフィールドに値を入力します。
縦書きテキストの使用
テキストツール を使用して、ステージからテキストフィールドを選択します。既存のテキストに設定を適用するには、ステージのテキストフィールドを選択します。プロパティインスペクタ ([ウィンドウ]-[プロパティ]-[プロパティ]) で、次のオプションを設定します。行揃えを設定するには、[上揃え]、[中央揃え]、[下揃え]、[ジャスティファイ] ボタンのいずれかをクリックします。上または下のマージンを設定するには、[フォーマットオプションの編集] ボタン (段落記号のような形で、[ジャスティファイ] ボタンの横にあります) をクリックして、[フォーマットオプション] ダイアログボックスを表示します。[上マージン] または [下マージン] の値の隣にある三角形のボタンをクリックし、スライダをドラッグして値を選択するか、またはテキストフィールドに値を入力します。インデントを指定するには、[フォーマットオプションの編集] ボタン (段落記号のような形で、[ジャスティファイ] ボタンの横にあります) をクリックして、[フォーマットオプション] ダイアログボックスを表示します。[インデント] の値の隣にある三角形のボタンをクリックし、スライダをドラッグして値を選択するか、またはテキストフィールドに値を入力します。インデントは、テキストフローが左から右の場合は一番左の行が下がり、右から左の場合は一番右の行が下がります。行間隔を指定するには、[フォーマットオプションの編集] ボタン (段落記号のような形で、[ジャスティファイ] ボタンの横にあります) をクリックして、[フォーマットオプション] ダイアログボックスを表示します。[行間] の値の隣にある三角形のボタンをクリックし、スライダをドラッグして値を選択するか、またはテキストフィールドに値を入力します。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
テキストの操作 / テキストの作成
Flash ドキュメント全体で、テキストのスペルをチェックできます。スペルチェッカーはカスタマイズすることもできます。
スペルチェッカーの使用
[テキスト]-[スペルチェック] を選択し、[スペルチェック] ダイアログボックスを表示します。左上隅のボックスでは、指定した辞書にはない単語のほか、テキストフィールドやフレームラベルなど、テキストを含むエレメントの種類がわかります。次のいずれかの操作を実行します。[辞書に追加] をクリックすると、個人辞書に単語が追加されます。[無視] をクリックすると、単語は未変更のままです。[すべて無視] をクリックすると、ドキュメント内の出現個所すべてにおいて未変更のままとなります。[修正] ボックスに単語を入力するか、[修正候補] スクロールリストから単語を選択します。次に [修正] をクリックして単語を変更するか、または [すべて変更] をクリックしてドキュメント内の出現個所すべてにおいてその単語を変更します。[削除] をクリックすると、ドキュメントから単語が削除されます。スペルチェックを終了するには、次のいずれかの操作をします。[閉じる] をクリックすると、Flash によるスペルチェックを途中で終了することができます。
Flash によるスペルチェックがドキュメントの末尾に到達したことを示す通知が表示されてから、[いいえ] をクリックしてスペルチェックを終了します ([はい] をクリックすると、ドキュメントの先頭からスペルチェックが続きます)
スペルチェッカーのカスタマイズ
次のいずれかの操作を実行します。
[テキスト]-[スペルチェックの設定] を選択します (このオプションは、はじめてスペルチェック機能を使用する場合に使います)
[テキスト]-[スペルチェックの設定] を選択すると表示される [スペルチェックの設定] ダイアログボックスで、[設定] をクリックします。次のいずれかのオプションを設定します。
文書のオプション
次のオプションを使用して、チェックするエレメントを指定します。組み込まれている辞書を一覧表示します。スペルチェックを有効にするには、最低 1 つの辞書を選択する必要があります。
パスを入力するかフォルダのアイコンをクリックし、個人辞書として使用するドキュメントを参照します (この辞書は修正できます)
個人辞書の編集
単語やフレーズを個人辞書に追加します。[個人辞書] ダイアログボックスで、新しい項目をテキストフィールドに 1 行ずつ入力します。次のオプションを使用して、スペルチェックにおいて特定の種類の単語や文字だけが処理されるよう Flash を設定します。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
モーショントゥイーンへのカスタムイーズイン / イーズアウトの適用
[カスタムイーズイン / イーズアウト] ダイアログボックスに一定時間内のモーションの度合いを表すグラフが表示されます。水平軸方向にフレームが表示され、垂直軸方向に変化のパーセンテージが表示されます。最初のキーフレームは 0%、最後のキーフレームは 100% として表されます。オブジェクトの変化の割合は、グラフの曲線の傾きによって表されます。曲線が水平である (傾きがない) 場合、速度はゼロです。曲線が垂直である場合は、瞬間的な変化の発生を示します。
速度が一定であることを表す [カスタムイーズイン / イーズアウト] のグラフ
[カスタムイーズイン / イーズアウト] ダイアログボックスの追加のコントロール
[すべてのプロパティに対して同じ設定を使用する] チェックボックス
このデフォルト値が設定されます。つまり、表示された曲線がすべてのプロパティに使用され、[プロパティ] ポップアップメニューが無効になります。このチェックボックスがオンになっていない場合、[プロパティ] ポップアップメニューが有効になり、各プロパティには、そのプロパティの速度を定義する個別の曲線があります。このメニューは、[すべてのプロパティに対して同じ設定を使用] チェックボックスがオンになっていないときだけ有効になります。オンの場合、メニューに表示される 5 つのプロパティのそれぞれに対して、個別の曲線が維持されます。メニューでプロパティを選択すると、そのプロパティの曲線が表示されます。プロパティは次のとおりです。ステージ上のアニメーションオブジェクトの位置のカスタムイージング設定を指定します。アニメーションオブジェクトの回転のカスタムイージング設定を指定します。たとえば、アニメーション化された文字が、ステージ上で回転してユーザー側を向く速度を微調整することができます。アニメーションオブジェクトの拡大・縮小のカスタムイージング設定を指定します。たとえば、オブジェクトの拡大・縮小をより簡単にカスタマイズして、オブジェクトが遠ざかり、近づき、再び遠ざかるように見せることができます。アニメーションオブジェクトに適用されるカラーのトランジションのカスタムイージング設定を指定できます。アニメーションオブジェクトに適用されるフィルタのカスタムイージング設定を指定します。たとえば、光源の方向の変化をシミュレートするドロップシャドウのイージング設定を制御することができます。これらのボタンを使用すると、[カスタムイーズイン / イーズアウト] ダイアログボックスで定義した、現在のすべての速度曲線を使って、ステージ上のアニメーションをプレビューできます。このボタンを使用すると、速度曲線をデフォルトの直線の状態にリセットします。
選択したコントロールポイントの位置
ダイアログボックスの右下隅に表示された数値は、選択したコントロールポイントのキーフレームと位置を示します。コントロールポイントを選択していない場合、値は表示されません。線にコントロールポイントを追加するには、対角線を 1 回クリックします。コントロールポイントの位置をドラッグすると、オブジェクトのモーションを正確に制御することができます。四角形のハンドルによって表されるフレームインジケータを使って、オブジェクトの速度を上げるか下げる位置をクリックします。コントロールポイントの四角形のハンドルをクリックすると、そのコントロールポイントが選択され、どちらかの側に方向点が表示されます。方向点は白丸で表されます。コントロールポイントまたはその方向点はマウスでドラッグするか、キーボードの矢印キーを使って位置を設定することができます。デフォルトでは、コントロールポイントはグリッドに吸着します。X キーを押しながらコントロールポイントをドラッグすると、吸着をオフにすることができます。任意のコントロールポイント以外の場所で曲線の領域をクリックすると、曲線のシェイプを変更することなく、その場所に曲線の新しいコントロールポイントが追加されます。曲線およびコントロールポイント以外の場所をクリックすると、現在選択されているコントロールポイントの選択が解除されます。タイムラインで、モーショントゥイーンが適用されているレイヤーを選択します。フレームのプロパティインスペクタで、[イージング] スライダの横にある [編集] ボタンをクリックします。(オプション) [すべてのプロパティに対して同じ設定を使用する] チェックボックスをオフにし、メニューのプロパティを選択して、プロパティの曲線を表示します。コントロールポイントを上にドラッグしてオブジェクトの速度を上げるか、下にドラッグしてオブジェクトの速度を下げます。頂点のハンドルをドラッグしてイージング曲線をさらに調整し、トゥイーンのイージング値を微調整します。左下隅にある再生ボタンをクリックして、ステージ上のアニメーションを表示します。目的のエフェクトが得られるまで、コントロールを調整します。
イージング曲線のコピー & ペースト
イージング曲線をコピー & ペーストします。コピーされた曲線は、Flash アプリケーションを終了するまで使用できます。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
マスクレイヤーの操作
アニメーションの作成 / アニメーションの基本
マスクレイヤーの操作
マスクレイヤーを使用すると、そのレイヤーの下にあるピクチャやグラフィックの一部を表示できます。マスクを作成するには、レイヤーがマスクレイヤーであることを指定し、そのレイヤーの上に塗りつぶされたシェイプを描画するか配置します。グループ、テキスト、およびシンボルを含むすべての塗りつぶされたシェイプをマスクとして使用できます。マスクレイヤーは、塗りつぶされたシェイプの下にあるリンクレイヤーの領域を表示します。
アニメーションマスクのビデオチュートリアルについては、www
マスクレイヤーの作成
マスクを通して表示されるオブジェクトが含まれているレイヤーを、選択または作成します。[挿入]-[タイムライン]-[レイヤー] を選択して、新しいレイヤーをその上に作成します。マスクレイヤーでは、すぐ下にあるレイヤーがマスク対象になります。新しく作成したマスクレイヤー上で、塗りつぶされたシェイプ、テキスト、またはシンボルのインスタンスを配置します。Flash では、マスクレイヤーにおいて、ビットマップ、グラデーション、透明度、カラー、および線のスタイルが無視されます。マスクでは、塗りつぶされた領域が完全に透明になり、その他の部分が不透明になります。マスクレイヤーは、マスクレイヤーアイコンによって示されます。すぐ下にあるレイヤーがマスクレイヤーにリンクされ、そのコンテンツがマスクの塗りつぶされた領域から見えます。マスクされたレイヤーの名前はインデント表示され、そのアイコンはマスクレイヤーアイコンに変わります。Flash でマスク効果を表示するには、マスクレイヤーとマスク対象のレイヤーをロックします。
マスクレイヤー作成後の追加レイヤーのマスク
既存のレイヤーをマスクレイヤーの下までドラッグします。マスクレイヤーの下の任意の場所に新しいレイヤーを作成します。[修正]-[タイムライン]-[レイヤープロパティ] を選択し、[マスクの対象] をオンにします。
レイヤーとマスクレイヤーのリンクの解除
レイヤーを選択してリンクを解除し、次のいずれかの操作を行います。レイヤーをマスクレイヤーの上までドラッグします。
マスクレイヤー上で、塗りつぶされたシェイプ、テキストオブジェクト、またはグラフィックシンボルインスタンスのアニメーション化
タイムラインでマスクレイヤーを選択します。マスクレイヤーのロックを解除するには、[ロック] 列をクリックします。次のいずれかの操作を行います。マスクオブジェクトが塗りつぶされたシェイプである場合、シェイプトゥイーンをオブジェクトに適用します。マスクオブジェクトがテキストオブジェクトまたはグラフィックシンボルインスタンスである場合、モーショントゥイーンをオブジェクトに適用します。アニメーションの操作が終わったら、マスクレイヤーの [ロック] 列をクリックして、レイヤーを再度ロックします。
マスクレイヤーでのムービークリップのアニメーション化
タイムラインでマスクレイヤーを選択します。ムービークリップをその場で編集し、そのムービークリップのタイムラインを表示するには、ステージ上のムービークリップをダブルクリップします。モーショントゥイーンをムービークリップに適用します。アニメーションの処理が完了したら、[戻る] ボタンをクリックして、ドキュメント編集モードに戻します。レイヤーを再度ロックするには、マスクレイヤーの [ロック] 列をクリックします。
インスタンス、グループ、またはタイプへのトゥイーンの追加
パスに沿ったモーションのトゥイーン
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
シンボルの編集
シンボル、インスタンス、およびライブラリアセットの使用 / シンボルの操作
シンボルの編集
シンボルを編集すると、Flash によりドキュメント内にあるそのシンボルのインスタンスすべてが自動的に更新されます。シンボルは次のようにして編集します。
[同じ位置で編集] コマンドを使用して、ステージ上に他のオブジェクトと共に配置されたコンテキストの中で編集する方法
他のオブジェクトは、編集中のシンボルと区別するために薄く非アクティブ表示されます。編集中のシンボル名は、ステージの一番上にある編集バーで、現在のシーン名の右側に表示されます。
[新規ウィンドウで編集] コマンドを使用して別のウィンドウで編集する方法
シンボルを別のウィンドウで編集すれば、シンボルとメインタイムラインを同時に参照できます。編集中のシンボル名は、ステージの一番上にある編集バーに表示されます。シンボルを編集するには、シンボル編集モードを使用して、ウィンドウをステージ表示からシンボルだけの表示に変更します。編集中のシンボル名は、ステージの一番上にある編集バーで、現在のシーン名の右側に表示されます。シンボルを編集すると、Flash により、ドキュメント内のそのシンボルの全インスタンスが更新され、編集内容が反映されます。シンボルの編集時には、任意の描画ツールを使用したり、メディアを読み込んだり、また、他のシンボルのインスタンスを作成したりできます。シンボルの基準点 (座標 0,0 で表される点) は、いずれの方法でシンボルを編集する場合にも変更できます。
シンボルを同じ位置で編集
次のいずれかの操作を実行します。ステージ上でシンボルのインスタンスをダブルクリックします。ステージ上でシンボルのインスタンスを選択し、[編集]-[同じ位置で編集] を選択します。シンボルを編集します。基準点を変更するには、ステージ上でシンボルをドラッグします。基準点の位置は十字カーソルで示されます。同じ位置で編集モードを終了して、ドキュメント編集モードに戻るには、次のいずれかの操作を実行します。[戻る] ボタンをクリックします。編集バーの [シーン] メニューから、現在のシーン名を選択します。[編集]-[ドキュメントの編集] をクリックします。シンボルコンテンツ以外の場所をクリックします。
新規ウィンドウでシンボルを編集
シンボルを編集します。基準点を変更するには、ステージ上でシンボルをドラッグします。基準点は十字カーソルで示されます。右上隅 (Windows) または左上隅 (Macintosh) にある [クローズ] ボックスをクリックして新規ウィンドウを閉じ、メインドキュメントウィンドウ内をクリックしてメインドキュメントの編集に戻ります。
シンボル編集モードでシンボルを編集
次のいずれかの方法でシンボルを選択します。[ライブラリ] パネルで、シンボルのアイコンをダブルクリックします。ステージ上でシンボルのインスタンスを選択し、[編集]-[シンボルの編集] を選択します。[ライブラリ] パネルでシンボルを選択して、[ライブラリパネル] メニューから [編集] を選択します。シンボルを編集します。シンボル編集モードを終了してドキュメントの編集に戻るには、次のいずれかの操作を実行します。ステージの一番上にある編集バーの左側で [戻る] ボタンをクリックします。[編集]-[ドキュメントの編集] をクリックします。ステージの一番上にある編集バーでシーン名をクリックします。シンボルコンテンツ以外の場所をクリックします。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
グラデーションおよびビットマップの塗りの変形
カラー、線、および塗りの操作 / 線、塗り、およびグラデーション
グラデーションおよびビットマップの塗りの変形
グラデーションまたはビットマップの塗りのサイズ、方向、中央を調整することにより、塗りを変形できます。ツールパネルからグラデーション変形ツール を選択します。グラデーションまたはビットマップで塗りつぶされた領域をクリックします。境界ボックスと編集ハンドルが表示されます。ポインタをいずれかのハンドルの上に重ねると、カーソルの形が変化してハンドルの機能を示します。中心点ハンドルのロールオーバーアイコンは、4 方向の矢印です。焦点ハンドルが表示されるのは、放射状のグラデーションを選択した場合のみです。焦点ハンドルのロールオーバーアイコンは、反転した三角形です。サイズハンドル (境界ボックスの先端中央にあるハンドルアイコン) のロールオーバーアイコンは、内側に矢印の付いた円です。グラデーションの回転を調整します。回転ハンドル (境界ボックスの先端下にあるハンドルアイコン) のロールオーバーアイコンは、4 つの矢印が円の形をしています。グラデーションの幅を調整します。幅ハンドル (四角形のハンドル) のロールオーバーアイコンは、両方向の矢印です。
放射状グラデーションのコントロール
Shift キーを押すと、線状グラデーションの塗りの移動方向が 45 度の倍数に制限されます。グラデーションまたはビットマップの塗りは、次のような方法で変更できます。グラデーションまたはビットマップの塗りの中心の位置を変更するには、中心点をドラッグします。グラデーションまたはビットマップの塗りの幅を変更するには、境界線の横の四角いハンドルをドラッグします。このオプションは塗りのサイズだけを変更します。塗りを含んでいるオブジェクトのサイズは変更されません。グラデーションまたはビットマップの塗りの高さを変更するには、境界線の下の四角いハンドルをドラッグします。グラデーションまたはビットマップの塗りを回転させるには、隅にある円形の回転ハンドルをドラッグします。放射状のグラデーションまたは塗りの場合も、境界線の下にあるハンドルをドラッグして回転させることができます。線状のグラデーションまたは塗りを伸縮するには、境界線の中央にある四角形のハンドルをドラッグします。放射状グラデーションの焦点を変更するには、境界線上の中央にある円形のハンドルをドラッグします。シェイプ内の塗りの形状を歪曲または傾斜させるには、境界線の上側または右側にある円形のハンドルの 1 つをドラッグします。シェイプ内に同じビットマップを複数並べてタイリング表示するには、塗りを伸縮させます。注意: 大きな塗りやステージの端付近の塗りを操作するためにすべてのハンドルを表示するには、[表示]-[ペーストボード] を選択します。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
描画 / 線とシェイプのアウトラインの変更
消しゴムツールは、線と塗りを消します。ステージ上のすべてのものを一括して消去する。消しゴムツール をダブルクリックします。線のセグメントまたは塗り領域を消去する。消しゴムツールを選択し、[流し消す] ボタン をクリックします。消去する線のセグメントまたは塗り領域をクリックします。ドラッグして消去する。消しゴムツールを選択します。[消しゴムモード] ボタンをクリックし、消去モードを選択します。線と塗りを消去します。塗りのみを消去します。線には適用されません。線のみを消去します。塗りには適用されません。選択された塗りを消す。選択されている塗りを消去します。
選択されているかどうかにかかわらず、線には適用されません (このモードで消しゴムツールを使用する前に、消去する塗りを選択しておきます)
消しゴムツールの線で消去を開始した塗り領域のみを消去します。空白の部分から消し始めた場合は、何も消去されません。このモードは線には適用されません。[消しゴムの形] ボタンをクリックして、消しゴムの形とサイズを選択します。[流し消す] ボタンがオフになっていることを確認してください。ステージ上でドラッグします。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
線をまっすぐで滑らかにする。
描画 / 線とシェイプのアウトラインの変更
線をまっすぐで滑らかにする。線とシェイプのアウトラインを変更するには、まっすぐで滑らかにします。注意: 線をまっすぐで滑らかにする程度は、描画設定の環境設定で調整します。まっすぐにする機能を使用すると、既に描画した線と曲線をまっすぐにする調整を行うことができます。このコマンドは、既にまっすぐになっている線のセグメントには適用されません。Flash がシェイプを認識できるようにするには、まっすぐにするテクニックを使用します。シェイプの認識オプションをオフにして楕円、矩形、または三角形を描画する場合は、このオプションを使用してシェイプを幾何学的に完全な図形にします。ただし、他のエレメントに接触したり結合しているシェイプは識別されません。シェイプの認識オプションによって、上のシェイプが下のシェイプに変更されます。滑らかにする機能を使用すると、曲線は滑らかになり、でこぼこが少なくなります。曲線に使用されるセグメント数も少なくなります。ただし、直線に対しては適用されません。この機能は、多くの短いセグメントからなる曲線、編集が困難な曲線を変更する際に便利です。すべてのセグメントを選択してこの機能を適用すると、セグメント数が減って曲線が滑らかになり、シェイプを変更しやすくなります。滑らかにする、またはまっすぐにする機能を繰り返し適用すると、各セグメントがさらに滑らかに、またはまっすぐになります。その変化の度合いは、セグメントがどの程度曲がっているか、あるいはまっすぐかによって異なります。選択した塗りのアウトラインまたは曲線を滑らかにするには、選択ツールを選択し、ツールパネルの [オプション] で [スムーズ] ボタンをクリックするか、または [修正]-[シェイプ]-[滑らかに] を選択します。選択した塗りのアウトラインまたは曲線を滑らかにするには、選択ツール を選択し、ツールパネルの [オプション] で [ストレート] ボタンをクリックするか、または [修正]-[シェイプ]-[まっすぐに] を選択します。シェイプの認識を行うには、選択ツール を選択し、[ストレート] ボタンをクリックするか、[修正]-[シェイプ]-[まっすぐに] を選択します。
描画の環境設定の指定
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
ドキュメントの作成と管理 / Flash ドキュメントの操作
Flash FLA ドキュメントは、現在の名前で現在の保存場所に保存することも、他の名前または他の保存場所に保存することもできます。ドキュメントに保存されていない変更が含まれている場合は、ドキュメントのタイトルバー、アプリケーションのタイトルバー、およびドキュメントタブのドキュメント名の後にアスタリスク (*) が表示されます。ドキュメントを保存すると、アスタリスクが削除されます。次のいずれかの操作を実行します。ディスク上の現在のバージョンに上書きするには、[ファイル]-[保存] を選択します。保存場所や名前を変更してドキュメントを保存する場合、またはドキュメントを圧縮する場合は、[ファイル]-[名前を付けて保存] を選択します。[名前を付けて保存] を選択した場合、またはファイルを初めて保存する場合は、ファイル名と保存場所を入力します。[保存] をクリックします。
最後に保存したバージョンへの復帰
ドキュメントをテンプレートとして保存
[ファイル]-[テンプレートとして保存] を選択します。[テンプレートとして保存] ダイアログボックスで、[名前] ボックスにテンプレートの名前を入力します。[カテゴリ] ポップアップメニューから任意のカテゴリを選択するか、名前を入力して新規カテゴリを作成します。ここで入力した説明は、[新規ドキュメント] ダイアログボックスでそのテンプレートを選択すると表示されます。[ファイル]-[名前を付けて保存] を選択します。ファイル名および保存場所を入力します。重要: Flash 8 形式で保存するとコンテンツが失われるという警告メッセージが表示された場合は、[Flash 8 として保存] をクリックすると続行できます。この警告は、Flash CS3 でしか使用できないグラフィックエフェクトやビヘイビアなどの機能がドキュメントに含まれており、Flash から失われることを示します。変更を保存していないドキュメントが開かれている場合は、Flash により、それら個々のドキュメントについて、変更を保存または破棄するよう求めるメッセージが表示されます。変更を保存してドキュメントを閉じるには、[はい] をクリックします。変更を保存せずにドキュメントを閉じるには、[いいえ] をクリックします。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
タイムラインについて
タイムラインは、レイヤーとフレームを使用してドキュメントのコンテンツを時間に沿って構成および制御するのに使用します。映画と同様、Flash ドキュメントでは時間の長さはフレームに分割されます。レイヤーは、何層にも積み重ねられた複数のフィルムストリップに類似しており、それぞれのレイヤーには異なるイメージが含まれています。このイメージは、ステージに表示されます。タイムラインの主なコンポーネントは、レイヤー、フレーム、および再生ヘッドです。タイムラインの左側の欄には、レイヤーの名前が表示されます。各レイヤーに含まれているフレームは、レイヤー名の右側の行に表示されます。タイムラインの上部にあるタイムラインヘッダーには、フレーム番号が表示されます。再生ヘッドは、ステージに表示される現在のフレームを示します。ドキュメントの再生中、再生ヘッドはタイムラインの左から右に移動します。タイムラインの下部にあるタイムラインのステータスバーには、選択したフレーム番号、現在のフレームレート、および現在のフレームまでの経過時間が表示されます。注意: アニメーション再生時には、実際のフレームレートが表示されます。コンピュータがアニメーションを適切な速さで計算し、再生することができない場合、ドキュメントのフレームレートの設定と実際のフレームレートに違いが生じることがあります。
フルサイズのグラフィックを表示
タイムラインの部分
空のキーフレーム
[再生ヘッド] ボタンへのスクロール
オニオンスキン設定用のボタン
現在のフレームインジケータ
その場合、タイムラインは、フレーム単位のアニメーション、トゥイーンアニメーション、モーションパスなど、ドキュメント内のアニメーションに変化が起こった箇所のサムネールだけを表示することもできます。タイムラインのレイヤーセクションのコントロールを使用すると、レイヤーの表示と非表示およびロックとロック解除を切り替えることができます。また、レイヤーのコンテンツをアウトラインで表示することもできます。同じレイヤーの新しい場所または他のレイヤーまで、フレームをドラッグすることができます。
タイムライン、キーフレーム、フレームセットに関するビデオチュートリアルについては、www
タイムライン内のフレームおよびキーフレームの編集
モーションの作成
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
正方形以外のピクセルを持つビデオのエンコード
コンピュータのほとんどの静止画は、幅と高さの比が 1:1 の正方形のピクセルを使用しています。デジタルビデオを使用する場合は、ピクセルは通常これと異なる幅と高さの比を持ち、長方形ピクセルと呼ばれます。このビヘイビアの理由は、アナログビデオ (放送テレビなど) とデジタルビデオ (DVD ビデオなど) の共存を許可するためです。正方形以外のピクセルを持つビデオをエンコードする際に使用するイメージのフレームサイズを計算するには、最初に優先マスターサイズとするサイズ (幅または高さ) を決定してから、次のように他のサイズを計算する必要があります。高さをマスターサイズとする場合、次の式で幅を計算します。たとえば、縦横比が 4:3 のビデオでは、式は次のようになります。幅をマスターサイズとする場合、次の式で高さを計算します。たとえば、縦横比が 4:3 のビデオでは、式は次のようになります。たとえば、フレームサイズが 720 x 480 ピクセルのビデオを 4:3 の縦横比でエンコードする場合、ビデオフレームをエンコードする幅 (ピクセル単位) を決定する必要があります。ビデオイメージの高さは、結果的に 640 ピクセルとなります。詳細については、ビデオエンコード設定のカスタマイズを参照してください。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
0 では、パッケージは名前空間で実装されますが、名前空間と同義ではありません。パッケージを宣言すると、コンパイル時に必ず既知である名前空間が暗黙的に作成されます。名前空間は、明示的に作成された場合はコンパイル時に既知である必要はありません。次の例では、package ディレクティブを使用して、クラスを 1 つ含む単純なパッケージを作成します。
クラスは samples パッケージ内にあるので、コンパイラはコンパイル時にクラス名を自動的に修飾し、完全修飾名の samples
多くの開発者、特に Java 開発者は、パッケージの最上位にクラスだけを配置することを選択します。0 では、パッケージの最上位でクラスだけではなく、変数、関数、ステートメントもサポートされています。この機能の高度な使用方法として、パッケージ内のすべてのクラスで使用できるようにパッケージの最上位で名前空間を定義できます。0 はネストされたクラスも、プライベートクラスもサポートしていません。0 のパッケージは Java のパッケージと似ています。
前の例を見ればわかるとおり、完全修飾パッケージ参照は、Java と同じように、ドット演算子 () を使用して表します。パッケージを使用すると、他のプログラマも使用できるように、直感的な階層構造にコードを構成できます。これにより、独自のパッケージを作成して他のプログラマと共有したり、他のプログラマが作成したパッケージを利用したりでき、コードの共有が容易になります。パッケージを使用することで、使用する識別子名が一意になり、他の識別子名と競合しなくなります。実際、これがパッケージの最も重要な利点であるという人もいます。たとえば、コードを共有しようとしている 2 人のプログラマがそれぞれ SampleCode というクラスを作成したとします。パッケージを使用しなければ、名前の競合が発生し、いずれかのクラスの名前を変更するしかなくなります。ただし、パッケージを使用すると、一意の名前を持つパッケージ内のクラスのいずれか、またはできれば両方を配置することによって、名前の競合は簡単に回避されます。パッケージ名に埋め込みドットを入れて、ネストされたパッケージを作成することもできます。これにより、パッケージの階層構造を作成できます。
古い XML クラスをパッケージに移動するのは最初の手順として適していますが、古い XML クラスを使用するほとんどの場合で、flash
xml パッケージが読み込まれます。XML) を使用しなければ、同じ名前の競合が発生します。events パッケージには新しいイベントモデルが含まれています。
パッケージの作成
0 では、パッケージ、クラス、およびソースファイルを整理する方法に大きな柔軟性を持たせています。旧バージョンの ActionScript では、ソースファイルごとにクラスが 1 つだけ許可され、ソースファイルの名前がクラスの名前と一致する必要がありました。0 では、1 つのソースファイルに複数のクラスを含めることができますが、ファイルの外部にあるコードで使用できるのは各ファイルのクラス 1 つだけです。つまり、各ファイルのクラスを 1 つだけパッケージ宣言内で宣言できます。その他のクラスはパッケージ定義の外部で定義する必要があります。これにより、追加されるクラスはソースファイル外部にあるコードに対して表示されなくなります。パッケージ定義内で定義されたクラスの名前は、ソースファイルの名前に一致している必要があります。0 では、パッケージをより柔軟に宣言することができます。旧バージョンの ActionScript では、パッケージはソースファイルを配置するディレクトリを表すだけでした。また、package ステートメントでパッケージを宣言するのではなく、クラス宣言内の完全修飾クラス名の一部としてパッケージ名を含めていました。0 でもパッケージはディレクトリを表しますが、パッケージに含めることができるのはクラスだけではありません。つまり、パッケージの最上位で変数、関数、および名前空間を宣言することもできます。パッケージの最上位に実行可能ステートメントを含めることもできます。パッケージの最上位で変数、関数、または名前空間を宣言した場合は、そのレベルで使用できる属性は public および internal だけです。また、この宣言がクラス、変数、関数、または名前空間のいずれであるかに関係なく、public 属性を使用できるのはファイルごとにパッケージレベルの宣言 1 つだけです。パッケージは、コードを構成したり、名前のコンフリクトを防いだりするのに便利です。パッケージの概念および関連のないクラス継承の概念を混同しないようにしてください。同じパッケージ内にある 2 つのクラスには共通する名前空間がありますが、この 2 つのクラスはその他で関連しているとは限りません。同様に、ネストされたパッケージは、親パッケージと意味的な関係がない場合があります。
パッケージの読み込み
パッケージ内部にあるクラスを使用する場合、パッケージまたは使用するクラスを読み込む必要があります。0 とは異なります。一般的に、import ステートメントは可能な限り明確にします。パッケージ全体の読み込みにより、予期しない名前の競合が発生する場合があります。クラスパス内にパッケージまたはクラスを定義するソースコードを配置する必要もあります。クラスパスは、読み込むパッケージおよびクラスをコンパイラが検索する場所を決定するローカルディレクトリパスのユーザー定義リストです。クラスパスは "ビルドパス" または "ソースパス" と呼ばれることもあります。
クラスまたはパッケージを適切に読み込むと、クラスの完全修飾名 (samples
完全修飾名は同じ名前のクラス、メソッド、またはプロパティが存在してコードがあいまいになるときに役立ちますが、すべての識別子に使用すると管理が困難になる可能性があります。たとえば、SampleCode クラスのインスタンスをインスタンス化するときに完全修飾名を使用すると、コードが冗長になります。ネストされたパッケージのレベルが高くなるにつれて、コードの可読性が低下します。あいまいな識別子が問題ではないことが確実な場合、単純な識別子を使用してコードを読みやすくすることができます。たとえば、クラス識別子のみを使用する場合、SampleCode クラスの新しいインスタンスのインスタンス化はかなり簡単になります。最初に適切なパッケージまたはクラスを読み込まずに識別子の名前を使用しようとすると、コンパイラがクラス定義を検出できない場合があります。また、パッケージまたはクラスを読み込んだ場合は、読み込んだ名前と競合する名前を定義しようとすると、エラーが生成されます。パッケージの作成時には、そのパッケージのすべてのメンバーのデフォルトのアクセス制御子は internal です。この場合、デフォルトではパッケージメンバーは、そのパッケージの他のメンバーに対してのみ表示されます。パッケージ外部のコードでクラスを使用できるようにする場合、public でクラスを宣言する必要があります。サンプルパッケージの外部にある CodeFormatter クラスにアクセスしようとすると、次の例に示すように、エラーが発生する場合があります。パッケージ外部で両方のクラスを使用する場合、両方のクラスを public として宣言する必要があります。パッケージ宣言に public 属性を適用することはできません。完全修飾名は、パッケージを使用するときに発生する可能性がある名前のコンフリクトを解決する際に役立ちます。たとえば、同じ識別子でクラスを定義する 2 つのパッケージを読み込む場合などです。たとえば、SampleCode という名前のクラスも持つ次のパッケージがあるとします。次に示すように両方のクラスを読み込むと、SampleCode クラスの参照時に名前の競合が発生することがあります。コンパイラには、どちらの SampleCode クラスを使用するのかを知る方法はありません。この競合を解決するには、次のように各クラスの完全修飾名を使用する必要があります。C++ コンパイラは一度に 1 つのファイルを処理するため、C++ では #include ディレクティブが必要で、このディレクティブはヘッダファイルが明示的に含まれていない限り、他のファイル内でクラス定義を探しません。0 には include ディレクティブがありますが、クラスやパッケージを読み込むように設計されていません。0 でクラスまたはパッケージを読み込むには、import ステートメントを使用して、パッケージを含むソースファイルをクラスパスに配置する必要があります。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
データ型の記述
0 では、32 ビット符号付および符号なし整数の低レベルマシン型にアクセスすることができるようになりました。変数が浮動小数点数を使用しない場合、Number データ型ではなく int データ型を使用する方が速く、効率的です。int データ型である変数のデフォルト値は 0 です。これは、String データ型および Object クラスを含む複合データ型を定義するすべてのクラスのデフォルト値です。このデータ型を型注釈として使用することはできません。0 では、Number データ型は、整数、符号なし整数、および浮動小数点数を表すことができます。ただし、パフォーマンスを最大化するために、32 ビット int および uint 型より大きい整数値に対してのみ、Number データ型を使用する必要があります。また、Number データ型には、浮動小数点数を格納することができます。浮動小数点数を格納するには、数値に小数点を含めます。小数点を省略すると、数値は整数として格納されます。この規格では、64 ビットを使用して浮動小数点数を格納する方法が指定されています。1 ビットを使用して数値が正か負かを指定します。指数には 11 ビットが使用され、2 を底として格納されます。残りの 52 ビットは、指数で指定される累乗した数値である "仮数部" ("仮数" とも呼ばれます) を格納するために使用されます。Number データ型では、ビットの一部を使用して指数を格納することで、仮数のビットすべてを使用する場合より大きな浮動小数点数を格納できます。この数値の範囲が膨大である一方で、この範囲の精度が犠牲になっています。その結果、分数 1/3 など、正確に表すためには 53 ビット以上必要な数値は近似値にしかなりません。アプリケーションで小数値を持つ絶対精度が必要な場合、2 進浮動小数点数計算ではなく、10 進浮動小数点計算を実装するソフトウェアを使用する必要があります。Number データ型で整数値を格納する場合、仮数の 52 ビットだけが使用されます。たとえば、負の数値の平方根を計算しようとすると、その結果は NaN になります。0 による除算の結果は、被除数が正の場合に "正の無限大"、被除数が負の場合に "負の無限大" となります。ストリングは、Java プログラミング言語の場合と同様に不変値です。String 値を操作すると、ストリングの新しいインスタンスが返されます。両方とも文字列が存在しないことを表しますが、値 null は、空のストリング ("") と同じではありません。負以外の整数が必要な特別な場合に、uint データ型を使用します。たとえば、ピクセルカラー値を表すためには uint データ型を使用する必要があります。これは、int データ型にはカラー値の処理には適していない内部符号ビットがあるためです。型指定されていない変数には、undefined という値のみを割り当てることができます。型指定されていない変数は、型注釈がないか、型注釈にアスタリスク記号 (*) が使用されている変数です。void は、戻り値の型注釈としてのみ使用することができます。1 つ目は、Object データ型は、型注釈のない変数に割り当てられるデフォルトのデータ型ではなくなりました。0 ではこれは行われず、真に型指定されていない変数の概念が導入されました。型注釈のない変数は、型が指定されていないと見なされます。コード内で変数の型を指定しないままにしておくことを明確に示す場合、型注釈に新しくアスタリスク記号 (*) を使用することができます。これは、型注釈を省略するのと同じことを示します。次の例は、いずれも型指定されていない変数 x を宣言する 2 つの同等のステートメントを示します。型指定されていない変数だけが値 undefined を保持することができます。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
型変換は、値が別のデータ型の値に変換されることです。型変換は、"暗黙的" または "明示的" に行うことができます。明示的な変換は、"キャスト" とも呼ばれ、コードであるデータ型の変数を別のデータ型に属している場合と同様に処理するようにコンパイラに指示されると実行されます。プリミティブ値が使用されている場合、キャストによって実際にあるデータ型の値が別のデータ型に変換されます。オブジェクトを異なる型にキャストするには、オブジェクト名を括弧で囲み、その前に新しい型の名前を置きます。たとえば、次のコードはブール値を取り、整数にキャストします。
暗黙的な変換
明示的な変換
暗黙的な変換
暗黙的な変換は、次のような状況で実行時に行われます。
値が関数パラメータとして渡されるとき
関数から値が返されるとき
加算 (+) 演算子などの特定の演算子を使用した式内
ユーザー定義型の場合、変換される値が変換先のクラスまたは変換先のクラスから派生するクラスのインスタンスである場合に、暗黙的な変換は成功します。暗黙的な変換が成功しなかった場合は、エラーが発生します。たとえば、次のコードには、成功する暗黙的な変換と失敗する暗黙的な変換が含まれています。プリミティブ型の場合、暗黙的な変換は、明示的な変換関数によって呼び出される同じ内部変換アルゴリズムを呼び出して処理されます。次のセクションで、これらのプリミティブ型の変換について詳細に説明します。
明示的な変換
strict モードでコンパイルする場合、明示的な変換、つまりキャストを使用すると便利です。型の不一致によるコンパイル時エラーを生成したくない場合があるためです。これは、実行時に強制的に値が適切に変換されることがわかっている場合などです。たとえば、フォームから受信したデータを操作するとき、強制的にストリング値を数値に変換することができます。次のコードは、コードが standard モードで正しく実行されている場合であっても、コンパイル時エラーを発生します。strict モードを引き続き使用して、ストリングを整数に変換する場合、次のように明示的な変換を使用することができます。数字のみを含むストリング値は、数値型のいずれかに変換することができます。数値型では、負の数のように見えるストリングまたは 16 進数値 (たとえば、0x1A) を表すストリングも変換することができます。変換プロセスでは、ストリング値の先頭および末尾の空白は無視されます。Number() を使用して浮動小数点数のように見えるストリングをキャストすることもできます。小数点が含まれていると、uint() および int() は、小数点とその後の数字が切り捨てられた整数を返します。たとえば、次のストリング値は数値にキャストすることができます。変換プロセスでは、先頭および末尾の空白は無視されますが、ストリング値に 2 つの数値を区切る空白がある場合は、0 または NaN が返されます。この関数では、先頭の 0 は無視されます。たとえば、次のコードは、異なるバージョンの ActionScript を使用してコンパイルすると異なる出力を生成します。数値型の値が別の数値型の変数に割り当てられる場合、キャストは必要ありません。strict モードでも、数値型は別の数値型に暗黙的に変換されます。これは、場合によっては、型の範囲を超えると予期しない値になることを示します。次の例では、予期しない値が生成される場合もありますが、すべて strict モードでコンパイルされます。
データ型または値
次の例では、数値 -1、0、および 1 をキャストした場合の結果を示します。つまり、ほとんどのデータ型とは異なり、strict モードのエラーを防ぐために Boolean 型へのキャストは必要ありません。次の例では、すべて strict モードでコンパイルされ、実行時に意図したとおりに動作します。次の表に、他のデータ型から Boolean データ型へのキャストの結果を要約して示します。
データ型または値
任意の数値データ型から String データ型へキャストすると、数値のストリング表現が返されます。Array クラスのインスタンスから String 型にキャストすると、すべての配列エレメントのカンマ区切りリストから構成されるストリングが返されます。たとえば、次の String データ型へのキャストは、配列の 3 つのエレメントすべてから成るストリングを 1 つ返します。Date クラスのインスタンスから String 型にキャストすると、インスタンスに含まれる日付のストリング表現が返されます。たとえば、次の例は Date クラスインスタンスのストリング表現を返します。この出力は、太平洋標準時の場合の結果を示します。次の表に、別のデータ型から String データ型にキャストした結果の概要を示します。
データ型または値
すべての配列エレメントで構成されるストリング
Date オブジェクトのストリング表現
数値のストリング表現
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
言語のシンタックスは、実行可能なコードを記述する際に遵守する必要がある一連の規則を定義します。
大文字と小文字の区別
キーワードと予約語
大文字と小文字の区別
0 は、大文字と小文字を区別する言語です。スペルが同じで大文字か小文字かだけが異なる識別子は、異なる識別子と見なされます。たとえば、次のコードは 2 つの異なる変数を生成します。) は、オブジェクトのプロパティまたはメソッドにアクセスする方法を提供します。ドットシンタックスを使用すると、インスタンス名の後にドット演算子とプロパティまたはメソッドの名前を付けたものを使ってクラスのプロパティまたはメソッドを参照できます。たとえば、次のようなクラス定義があるとします。ドットシンタックスを使用して、次のコードで作成されたインスタンス名を使用する prop1 プロパティと method1() メソッドにアクセスできます。パッケージを定義するときに、ドットシンタックスを使用することができます。ドット演算子を使用してネストされたパッケージを参照します。次の式を使用して、events パッケージを参照することができます。0 では、スラッシュシンタックスはサポートされていません。スラッシュシンタックスは、ActionScript の以前のバージョンで、ムービークリップまたは変数のパスを指定するために使用されていました。"リテラル" は、コードに直接表示される値です。次の例は、すべてのリテラルを示します。リテラルをグループ化して、複合リテラルを形成することもできます。配列リテラルは、角括弧 ([]) で囲まれ、カンマを使用して配列エレメントが区切られます。配列リテラルを使用して配列を初期化することができます。次の例では、配列リテラルを使用して初期化される 2 つの配列を示します。// 直接リテラルを割り当てる。リテラルは汎用オブジェクトの初期化にも使用できます。汎用オブジェクトは Object クラスのインスタンスです。オブジェクトリテラルは、中括弧 ({}) で囲まれ、カンマを使ってオブジェクトプロパティが区切られます。各プロパティはコロン (:) で宣言されます。コロンにより、プロパティ名とプロパティ値が区切られます。new ステートメントを使用して汎用オブジェクトを作成し、オブジェクトリテラルをパラメータとして Object クラスコンストラクタに渡すか、宣言するインスタンスにオブジェクトリテラルを直接割り当てることができます。プロパティの値はそれぞれ 1、2、および 3 に設定されます。// 直接リテラルを割り当てる。詳細については、ストリングの基礎、正規表現の基礎、およびXML 変数の初期化を参照してください。セミコロン (;) を使用してステートメントを終了することができます。セミコロンを省略した場合は、コンパイラはコードの各行が 1 つのステートメントであると見なします。セミコロンを使用してステートメントの終了を示すことに慣れているプログラマが多いので、セミコロンを使用してステートメントを終了するとコードが読みやすくなります。セミコロンを使用してステートメントを終了すると、1 行に複数のステートメントを配置することができますが、こうするとコードが読みにくくなることがあります。1 つ目は、括弧を使用して、式内の演算の順序を変更します。括弧内にグループ化された演算は、常に最初に実行されます。たとえば、括弧は次のコードの演算の順序を変更するために使用されます。2 つ目は、次の例に示すように、括弧にカンマ演算子 (,) を使用して、一連の式を評価し、最後に実行された式の結果を返します。3 つ目は、次の例に示すように、括弧を使用して 1 つまたは複数のパラメータを関数またはメソッドに渡します。0 コードは、単一行コメントと複数行コメントの 2 種類のコメントをサポートします。このコメントメカニズムは、C++ や Java のコメントメカニズムに似ています。コンパイラは、コメントとしてマークされたテキストを無視します。単一行コメントは、2 つのスラッシュ (//) で始まり、その行の最後までです。たとえば、次のコードには単一行コメントが含まれています。複数行コメントは、スラッシュとアスタリスク (/*) で始まり、アスタリスクとスラッシュ (*/) で終わります。/* これは複数行のコードにまたがる。
キーワードと予約語
"予約語" とは、単語が ActionScript で使用するために予約されているので、ユーザーがコードで識別子として使用できない単語です。予約語には、コンパイラによってプログラム名前空間から削除される "レキシカルキーワード" が含まれます。レキシカルキーワードを識別子として使用すると、コンパイラはエラーを報告します。0 のレキシカルキーワードの一覧です。"シンタックスキーワード" と呼ばれるいくつかのキーワードがあります。このキーワードは識別子として使用できますが、コンテキストによっては特別な意味になります。0 シンタックスのキーワードを示します。さらに、"将来の予約語" と呼ばれる識別子もいくつかあります。0 を組み込んだソフトウェアでキーワードとして扱われることがあります。これらの識別子の多くはコードで使用可能ですが、使用しないことをお勧めします。以降のバージョンの言語でキーワードとして表示される可能性があるからです。0 では、定数を作成するために使用する const ステートメントがサポートされています。定数は、変更できない固定値を持つプロパティです。定数には値を 1 回だけ割り当てることができますが、定数の宣言のきわめて近くで割り当てる必要があります。たとえば、定数がクラスのメンバーとして宣言されると、宣言の一部としてのみ、またはクラスコンストラクタ内でのみ、その定数に値を割り当てることができます。次のコードは、2 つの定数を宣言します。1 つ目の定数 MINIMUM には、宣言ステートメントの一部として値が割り当てられます。他の方法で定数に初期値を割り当てようとすると、エラーが発生します。たとえば、クラス外部にある MAXIMUM の初期値を設定しようとすると、ランタイムエラーが発生します。たとえば、MouseEvent クラス定義では、マウス入力に関連するイベントを表す定数にこの命名規則を使用します。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
メソッドは、クラス定義に含まれる関数です。クラスのインスタンスが作成されると、メソッドはそのインスタンスにバインドされます。メソッドは、クラス外で宣言された関数とは異なり、その関連付けられているインスタンスと別個に使用することはできません。次のような関数ステートメントを使用できます。または、関数式を割り当てる変数を次のように使用することもできます。多くの場合、関数式ではなく関数ステートメントを使用するのは、次のような理由のためです。関数ステートメントは、関数式より簡潔で読みやすくなります。詳細については、メソッドのオーバーライドを参照してください。関数ステートメントでは、識別子 (関数の名前) とメソッド本体内のコードがより強力に結合されます。変数の値は代入ステートメントで変更できるので、変数とその関数式の結合をいつでも切り離すことができます。関数式を使用する必要があるのは、関数をプロトタイプオブジェクトに関連付ける場合などです。詳細については、プロトタイプオブジェクトを参照してください。コンストラクタメソッドは、単にコンストラクタと呼ばれることもあり、定義されたクラスと同じ名前を共有する関数です。コンストラクタメソッドに含まれるコードは、クラスのインスタンスが 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 を使用して次のようにオブジェクト志向の概念および機能をいろいろと適用できることがわかります。
クラスの定義
クラスの拡張
インターフェイスの定義、拡張、実装
さらに、クラスインスタンスを作成する "ファクトリメソッド" も含まれ、インターフェイスのインスタンスとして戻り値を宣言し、戻されたオブジェクトを汎用的な方法で使用する方法が示されます。
このサンプルのアプリケーションファイルを入手するには、www
アプリケーションは、次のファイルで構成されています。
すべての GeometricShapes アプリケーションクラスによって実装されるメソッドを定義する基本インターフェイス
複数の辺を持つ GeometricShapes アプリケーションクラスによって実装されるメソッドを定義するインターフェイス
シェイプの中心から対称の位置に等しい長さの辺を有する一種の幾何学図形
円を定義する一種の幾何学図形
指定された種類およびサイズでシェイプを作成するためのファクトリメソッドを含むクラス
インターフェイスでの一般的な動作の定義
シェイプクラスの定義
ポリモーフィズムとファクトリメソッド
サンプルアプリケーションの機能拡張
GeometricShapes アプリケーションを使用するユーザーは、幾何学図形の種類とサイズを指定することができます。それに対しアプリケーションは、シェイプの説明、その面積、および周辺の長さで応答します。アプリケーションユーザーインターフェイスは、シェイプの種類を選択、サイズを設定、説明を表示するための小数のコントロールを含み、ごく普通です。このアプリケーションで最も興味深い部分は、内部にありそれはクラスおよびインターフェイス自体の構造に関係します。このアプリケーションは幾何学図形を扱いますが、それを図では表示しません。
次の章の例で再利用する、クラスおよびインターフェイスの小規模なライブラリを提供します (getter および setter のオーバーライドを参照してください)
インターフェイスでの一般的な動作の定義
インターフェイスでは、シェイプの領域を計算して返す getArea() メソッドと、シェイプのプロパティのテキスト説明を構成する describe() メソッドの 2 つのメソッドを定義します。各シェイプの周囲の長さを知りたいこともあります。ただし、円の周囲は円周と呼ばれ、その計算方法は固有であるため、三角形または正方形とは動作が異なります。それでもなお、三角形、四角形、およびその他の多角形の間には十分な類似性が存在します。従って、これらに新しいインターフェイスクラス IPolygon を定義することは意味があります。IPolygon インターフェイスも、次に示すように、どちらかと言えば単純です。
シェイプクラスの定義
各種類のシェイプに共通するメソッドに関する考えがまとまったら、シェイプクラス自体を定義することができます。実装する必要のあるメソッドの数で見た場合、最も単純なシェイプはここに示すように、Circle クラスです。残りの 2 つの種類のシェイプの正方形および等辺三角形には、他の点で共通することがあります。つまり、等しい長さの辺を有する点で、両方について共通の式を使用して周辺と内角の総和を計算することができます。実際、これらの共通の式は、今後定義する必要がある他の正多角形にも適用されます。スーパークラスを使用すると、共通メソッドを 1 か所で定義することできるため、サブクラスごとに別々に共通メソッドを定義する必要がありません。getArea() メソッドの式はシェイプによって異なるので、基本クラスバージョンのメソッドは、サブクラスメソッドで継承可能な共通の論理を含むことができません。代わりに、面積を計算しなかったことを示すには、単にデフォルト値 0 を返します。getArea() メソッドが呼び出されると、前記のコードの式を使用して面積が計算されます。getArea() メソッドのコードが実行されることは決してありません。ここでは Square クラスについて詳細は説明しません。
ポリモーフィズムとファクトリメソッド
インターフェイスと継承を有効に利用するクラスセットは、いろいろな興味深い方法で使用することができます。たとえば、これまでに説明したすべてのシェイプクラスは、IGeometricShape インターフェイスを実装するか、またはそのようにスーパークラスを拡張します。次のコードは、この働きを示します。この例からわかることは、ポリモーフィズムの動作原理です。つまり、正確に同じメソッド呼び出しの場合も、メソッドが呼び出されるオブジェクトのクラスに応じて、実行されるコードは異なります。GeometricShapes アプリケーションでは、この種類のインターフェイスベースのポリモーフィズムを適用するために、ファクトリメソッドとして知られている簡略化バージョンの設計パターンを使用します。"ファクトリメソッド" という用語は、基礎になるデータ型または内容が状況によって変わる可能性のあるオブジェクトを返す関数を指します。createShape() ファクトリメソッドを使用すると、シェイプサブクラスのコンストラクタで、作成するインスタンスの詳細を定義できます。一方、IGeometricShape インスタンスとして新しいオブジェクトを返すことにより、さらに一般的な方法でアプリケーションによる処理ができるようになります。前述の例の describeShape() メソッドは、さらに具体的なオブジェクトへの汎用的な参照を取得するために、アプリケーションでファクトリメソッドをどのように使用することができるかを示しています。次のように、新しく作成された Circle オブジェクトの説明を取得することができます。
サンプルアプリケーションの機能拡張
インターフェイスおよび継承の実際の威力は、アプリケーションを機能拡張または変更したときに明らかになります。新しいシェイプとして五角形をこのサンプルアプリケーションに追加するとします。次に、アプリケーションのユーザーインターフェイスのコンボボックスに新しい Pentagon オプションを追加します。しかし、これで全部です。つまり、GeometricShapeFactory クラスのいずれのメソッドも変更する必要がないので、新しい種類のシェイプを必要なときに追加することが非常に簡単になります。実習として Pentagon クラスを Geometric Shapes の例に追加してみると、アプリケーションに新機能を追加する負荷がインターフェイスおよび継承によってどの程度軽減できるかがわかります。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
ストリングの作成
0 のプログラミング > ストリングの操作 > ストリングの作成
ストリングの作成
0 でストリング (テキスト) データを表すために使用されます。ストリングを作成する最も簡単な方法は、ストリングリテラルを使用することです。ストリングリテラルを宣言するには、垂直の二重引用符 (") または一重引用符 (') を使用します。たとえば、次の 2 つのストリングは同等です。次のように new 演算子を使用してストリングを宣言することもできます。次の 2 つのストリングは同等です。一重引用符 (') の区切り文字で記述されているストリングリテラル内で一重引用符 (') を使用するには、エスケープ文字として円記号 (\) を使用します。同様に、区切り文字が二重引用符 (") で記述されているストリングリテラル内で二重引用符 (") を使用するには、エスケープ文字として円記号 (\) を付けます。次の 2 つのストリングは同等です。次のように、ストリングリテラル内に存在する一重引用符または二重引用符に基づいて一重引用符または二重引用符を使用するように選択することができます。この点は二重引用符についても同様です。ストリングリテラルを囲む場合は垂直の引用符を使用する必要があります。別の場所からコピーしたテキストを ActionScript にペーストする際は、正しい文字になっているか確認してください。次の表に示すとおり、エスケープ文字として円記号 (\) を使用して、ストリングリテラル内の他の文字を定義することができます。
単一の円記号
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
0 のプログラミング > 正規表現の使用 > 正規表現のシンタックス > グループ
次のように括弧を使用すると、正規表現の中でグループを定義できます。グループはパターンの部分的なセクションであり、次の目的で使用できます。
繰り返し制御を複数の文字に適用する場合
選択制御 (| 文字) を適用する対象のサブパターンを区切る場合
一致したサブストリングをキャプチャする場合
たとえば、正規表現の中で \1 を使用すると、前出のグループが一致したストリングと同じ内容に一致します。以降のセクションでは、グループの使用方法について詳しく説明します。
繰り返し制御に対するグループの使用
選択制御文字 (|) に対するグループの使用
グループによる一致したサブストリングのキャプチャ
非キャプチャグループと先読みグループの使用
名前付きグループの使用
繰り返し制御に対するグループの使用
グループを使用しない場合、次のように、繰り返し制御文字はその直前にある 1 つの文字または文字クラスに適用されます。グループを使用すると、次のように、繰り返し制御文字を複数の文字や文字クラスに適用できます。// b を組み合わせた 0 回以上の繰り返しに一致する。// 数字 1 桁を組み合わせた 1 回以上の繰り返しに一致する。繰り返し制御文字の詳細については、繰り返し制御文字を参照してください。
選択制御文字 (|) に対するグループの使用
グループは、次のように選択制御文字 (|) の適用対象となる範囲を指定するために使用できます。
グループによる一致したサブストリングのキャプチャ
正規表現では、パターン内に通常のグループ化括弧を指定すると、後でそのグループに一致した内容を参照できます。これは "後方参照" と呼ばれる機能で、後方参照に使用するグループを "キャプチャグループ" といいます。たとえば、次の正規表現に含まれている \1 というシーケンスは、その前の括弧で指定したキャプチャグループに一致したサブストリングと同じ内容に一致します。、\99 のように記述することにより、1 つの正規表現の中で最大 99 個まで使用できます。
非キャプチャグループと先読みグループの使用
非キャプチャグループとは、キャプチャおよび番号による後方参照の機能を持たない、グループ化だけを目的としたグループです。
非キャプチャグループを定義するには、次のように (次の例は、(com|org) というパターンをキャプチャグループおよび非キャプチャグループで使用した場合の違いを示しています。全体の一致を調べた後でキャプチャグループの一致内容を列挙するために exec() メソッドを使用します。特殊な非キャプチャグループとして、"先読みグループ" と呼ばれるものがあります。さらに、これは "肯定先読みグループ" と "否定先読みグループ" の 2 つに分類されます。肯定先読みグループは (= と ) で定義され、該当位置に一致する必要があるサブパターンを示しますが、肯定先読みグループに一致した部分は、同じ正規表現の中にある後続のパターンについても一致の対象となります。たとえば、次のコードに含まれている (=e) は肯定先読みグループなので、これに一致する文字 e は、正規表現の続き (この例ではキャプチャグループの \w*)) についても一致を調べる対象となります。否定先読みグループは (と ) で定義され、該当位置に一致してはならないサブパターンを示します。次に実際の使用例を示します。
名前付きグループの使用
名前付きグループとは、正規表現で使用するグループの一種で、名前による識別子を指定したものを指します。
名前付きグループを定義するには、(たとえば、次の正規表現では、digits という識別子を持つ名前付きグループを指定しています。exec() メソッドを使用すると、次のように、一致する名前付きグループが result 配列のプロパティとして追加されます。次の例では、name および dom という識別子を持つ 2 つの名前付きグループを使用しています。0 独自の拡張機能です。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
0 のプログラミング > イベントの処理 > イベントフロー
イベントターゲットが表示リスト内にない場合、Flash Player からイベントターゲットに対して直接にイベントオブジェクトが送出されます。イベントターゲットが表示リスト内にある場合、イベントオブジェクトは表示リストに対して送出され、表示リストの階層内を経由してイベントターゲットに到達します。イベントフローは、表示リスト内をイベントオブジェクトが伝わる経路です。表示リストの構造はツリー状の階層になっており、そのトップの階層はステージです。ステージは特殊な表示オブジェクトコンテナであり、表示リストのルートとして機能します。Stage クラスによって表され、表示オブジェクトを介してのみアクセスできます。すべての表示オブジェクトには、そのアプリケーションのステージを参照する stage という名前のプロパティが設定されています。Flash Player によってイベントオブジェクトが送出されると、そのイベントオブジェクトは、ステージから "ターゲットノード" までの経路を往復して移動します。DOM Events 仕様では、ターゲットノードとはイベントターゲットを表すノードのことであると定義されています。これを言い換えれば、ターゲットノードとは当該イベントが発生した表示リストオブジェクトのことです。概念上、イベントフローは 3 つの部分に分けられます。第 1 の部分はキャプチャ段階と呼ばれ、ステージからターゲットノードの親までのノードすべてがこれに含まれます。第 2 の部分はターゲット段階と呼ばれ、ターゲットノードだけがこれに含まれます。第 3 の部分はバブリング段階と呼ばれ、バブリング段階は、ターゲットノードの親からステージに戻る帰り道で検出されるノードで構成されます。次の図のように、ステージを最上位とする縦の階層として表示リストの構造を考えると、各段階に付けられた名前の意味がよりよくわかります。このイベントフローは、従来よりいっそう強力な ActionScript 用イベント処理システムの実現に寄与しています。ActionScript の以前のバージョンでは、イベントフローの仕組みが存在しなかったため、イベントの生成元となるオブジェクトにイベントリスナーを登録することしかできませんでした。0 では、ターゲットノード自体の他、イベントフローに含まれる任意のノードにイベントリスナーを登録できます。イベントリスナーをイベントフローに追加する機能は、ユーザーインターフェイスコンポーネントが複数のオブジェクトで構成されている場合に役立ちます。たとえばボタンオブジェクトは、ボタンのラベルとして機能するテキストオブジェクトを含むことがよくあります。リスナーをイベントフローに追加する機能がないと、ボタンの任意の場所で発生したクリックイベントに関する通知を受信できるように、ボタンオブジェクトとテキストオブジェクトの両方にリスナーを追加する必要が生じます。しかし、イベントフローがあることで、単一のイベントリスナーをボタンオブジェクトに配置し、テキストオブジェクトと、テキストオブジェクトで隠されていないボタンオブジェクトの領域の両方で発生したクリックイベントを処理できます。ただし、イベントオブジェクトのタイプによっては、イベントフローの 3 段階のうち一部しか処理されないことがあります。たとえば、enterFrame や init などのタイプはターゲットノードに対して直接に送出され、キャプチャ段階とバブリング段階を経ることがありません。また、その他のイベントでは表示リストにないオブジェクトがターゲットになることがあります。Socket クラスのインスタンスに対して送出されるイベントなどがこれに該当します。これらのイベントオブジェクトは、キャプチャ段階またはバブリング段階を経ずに、ターゲットオブジェクトにも直接フローします。具体的な各種イベントタイプの動作については、API ドキュメントを参照するか、実際のイベントオブジェクトのプロパティを確認してください。イベントオブジェクトのプロパティについては、次のセクションで説明します。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
0 のプログラミング > イベントの処理 > イベントリスナー
イベントハンドラとも呼ばれるイベントリスナーは、Flash Player が特定のイベントに応答して実行する関数です。イベントリスナーを登録するには 2 つの手順を実行します。まず、目的のイベントに応答して Flash Player に実行させるための関数またはクラスメソッドを作成します。これは、リスナー関数またはイベントハンドラ関数と呼ばれることもあります。次に addEventListener() メソッドを使用して、そのリスナー関数を、イベントのターゲットまたは該当するイベントフローに含まれる任意の表示リストオブジェクトに登録します。
リスナー関数の作成
イベントリスナーの管理
リスナーを使用しない場合のエラーイベント
リスナー関数の作成
0 のイベントモデルのうち、リスナー関数の作成に関する部分は DOM イベントモデルに準拠していません。DOM イベントモデルではイベントリスナーとリスナー関数が明確に区別されています。DOM イベントモデルにおいては、リスナー関数自体を登録するのではなく、リスナー関数を含んだクラスインスタンスを登録する形式をとります。0 のイベントモデルには、イベントリスナーとリスナー関数との区別がありません。任意の有効な識別子を使用して指定することができます。0 においては、リスナー関数自体の名前を登録する形式をとります。
クラス外に定義したリスナー関数
次のコードは、赤い正方形のシェイプを表示する単純な SWF ファイルです。クラスの一部ではない clickHandler() という名前のリスナー関数は、赤い正方形上のマウスクリックイベントを監視します。これにより、リスナー関数の中でイベントオブジェクトを調べることができます。この例では、イベントオブジェクトの type プロパティを使用し、イベントがクリックイベントであることを確認しています。また、この例では this キーワードの値も確認しています。this はグローバルオブジェクトを参照しています。なぜなら、リスナー関数をカスタムクラスやオブジェクトに属さない外部で定義しているからです。
クラスメソッドとして定義されたリスナー関数
ユーザーが、赤い正方形をクリックして生成される SWF ファイルを操作すると、Flash Player は以下のトレース出力を生成します。0 とは異なります。addEventListener() に対してクラスメソッドを指定した場合、リスナーメソッドのスコープが、メソッドが定義されているクラスではなくイベントをブロードキャストしたコンポーネントに基づいて決まるようになっていました。0 で使用したとすると、this キーワードは、ChildSprite インスタンスではなくイベントをブロードキャストしたコンポーネントを参照することになります。この従来の仕様では、リスナーメソッドからそのメソッドがあるクラス内の他のメソッドやプロパティにアクセスできないため、場合によっては非常に大きな問題が生じていました。Delegate クラスを使用してリスナーメソッドのスコープを変更するという方法が用意されていました。
望ましくないイベントリスナー登録の方法
第 3 のテクニックとして、汎用オブジェクトを作成し、そのオブジェクトのプロパティによって動的にリスナー関数を割り当てる方法がありますが、これを使用することはお勧めできません。0 で一般的に使用されていたという理由からです。0 では使用しないでください。このテクニックでは this キーワードの参照先がリスナーオブジェクトではなくグローバルオブジェクトになるため、望ましくありません。トレースの結果は次のようになります。
イベントリスナーの管理
0 バージョンです。IEventDispatcher という名前からは、Event オブジェクトを送信 (送出) することが主な目的であるように思われますが、実際には、イベントリスナーを登録、確認、および削除する目的でメソッドを使用する機会が最も多いといえます。つまり、表示リストの任意のオブジェクトが IEventDispatcher インターフェイスのメソッドにアクセスできることを意味します。
イベントリスナーの追加
リスナー関数を登録する際にはこのメソッドを使用します。type パラメータでは、イベントのタイプを指定します。listener パラメータでは、目的のイベントが発生したときに実行するリスナー関数を指定します。listener パラメータには、関数への参照またはクラスメソッドへの参照のいずれかを指定できます。listener パラメータを指定するときは括弧を使用しないでください。useCapture に false を指定すると、そのリスナーはイベントフローのターゲット段階とバブリング段階でアクティブになります。0 で独自に提供されているパラメータです。デフォルト値は 0 ですが、負の整数値または正の整数値を指定することができます。指定した数値が高いほど、イベントリスナーが早い順序で実行されます。同じ優先度で登録された複数のイベントリスナーがある場合、それらは登録順に実行されます。つまり、先に登録したイベントリスナーほど早く実行されます。useWeakReference パラメータを使用すると、そのリスナー関数に対する参照を通常の参照にするか、弱参照にするかを指定できます。このパラメータに true を指定すると、リスナー関数が使用されなくなった後もメモリ上に残り続けるのを防ぐことができます。Flash Player では、"ガベージコレクション" というテクニックによって、使用されなくなったオブジェクトをメモリから削除します。あるオブジェクトに対して参照が 1 つも存在しなくなったとき、そのオブジェクトはもう使用されないと見なされます。弱参照はガベージコレクションのシステムで無視されるため、弱参照による参照しか受けていないリスナー関数はガベージコレクションの対象となります。このパラメータの重要な結果の 1 つに表示オブジェクトのイベントの操作があります。通常、表示オブジェクトを表示リストから削除すると、表示オブジェクトはメモリから削除されるものと考えられます。
イベントリスナーの削除
不要になったリスナーは削除することをお勧めします。
イベントの送出
dispatchEvent() メソッドは、独自のイベントオブジェクトをイベントフローに送出する場合に使用する上級開発者向けのメソッドです。このメソッドに指定できるパラメータは 1 つだけで、Event クラスまたはそのサブクラスのインスタンスを指定します。
既存のイベントリスナーの確認
IEventDispatcher インターフェイスが備える残り 2 つのメソッドは、イベントリスナーの存在に関する有用な情報を取得するために使用します。ただし、willTrigger() では指定した表示オブジェクト自体を確認するだけでなく、イベントフローのすべての段階におけるその表示リストオブジェクトの祖先もすべて確認します。
リスナーを使用しない場合のエラーイベント
0 における最も重要なメカニズムはイベントではなく例外ですが、非同期の操作 (ファイルのロードなど) には例外処理を使用できません。非同期の操作を実行中にエラーが発生すると、Flash Player によりエラーイベントオブジェクトが送出されます。エラーイベントに対するリスナーを作成していない場合、デバッグ版の Flash Player では、発生したエラーに関する情報がダイアログボックスに表示されます。たとえば、ファイルのロード時に無効な URL を使用すると、Flash Player のデバッガバージョンで以下のダイアログボックスが表示されます。エラーイベントが発生しても、それによって SWF ファイルの実行が停止することはありません。エラーイベントは、ブラウザプラグインやスタンドアロンプレーヤーのデバッガバージョンではダイアログボックスとして、オーサリングプレーヤーの出力パネルにはメッセージとして、Adobe Flex Builder 2 ではログファイルのエントリとして表示されるだけです。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
このプロパティは Transform クラスのインスタンスであり、表示オブジェクトに適用される各種の変換 (回転、スケールの変更、位置の変更など) に関する情報を格納します。このプロパティは ColorTransform クラスのインスタンスであり、このプロパティによって表示オブジェクトのカラーを調整できます。表示オブジェクトのカラー変換情報にアクセスするには、次のようなコードを使用します。ColorTransform インスタンスを作成したらそのプロパティ値を読み取り、適用済みのカラー変換を確認できます。また、これらの値を設定して、表示オブジェクトに対してカラー変更を加えることもできます。// ここでカラー変更を行う。// 変更を確定する。
コードを使用したカラー値の設定
コードを使用したカラーおよび明度効果の変更
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
サウンドメタデータの操作
0 のプログラミング > サウンドの操作 > サウンドメタデータの操作
サウンドメタデータの操作
MP3 形式を使用するサウンドファイルには、サウンドに関する追加データが ID3 タグの形式で含まれることがあります。すべての MP3 ファイルに ID3 メタデータが含まれるわけではありません。ID3 イベントが送出されます。
ランタイムエラーを回避するために、アプリケーションは、ロードされたサウンドの Sound
ID3 イベントが受信されるまで待機する必要があります。次のコードは、サウンドファイルの ID3 メタデータがロードされたときにどのように認識されるかを示します。ID3 イベントを監視するよう指示します。このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。
コメントの追加
外部データの操作
0 のプログラミング > ネットワーキングとコミュニケーション > 外部データの操作
外部データの操作
0 には、外部ソースからデータをロードするメカニズムが含まれます。ソースは、テキストファイルなどの静的コンテンツや、データベースからデータを取得する Web スクリプトなどの動的コンテンツである場合があります。このデータはさまざまな方法でフォーマットすることができ、ActionScript の機能によりデータのデコードやアクセスが可能になります。また、データ取得のプロセスの一部として、外部サーバーにデータを送信することもできます。
外部ドキュメントからのデータのロード
外部スクリプトとの通信
新しいイベント処理モデルはエラーやイベントをより効率よく扱うことができ、ActionScript 2
onLoad 各イベントハンドラのサポートに比べて大きく改良されています。
イベント処理の詳細については、イベントの処理
を参照してください。
ダウンロードの進捗状況 (ロード済みバイト数と合計バイト数) は、flash
ファイルのダウンロードが正常に完了すると、flash
ロードされたデータは、UTF-8 または UTF-16 のエンコード形式からストリングにデコードされます。0 コードは次のようになります。load() メソッドを使用してリモートスクリプトに要求を送信します。URL リクエストで渡すパラメータを指定するには、次の 3 つの方法があります。アンパサンドには特別な意味があり、区切り文字として機能するからです。たとえば、アンパサンドを渡す場合、アンパサンドはパラメータの区切り記号として機能するため、& から %26 に変更することにより、アンパサンドを URL エンコードする必要があります。