ステートメントとは、実行時のアクションを実行または指定する言語エレメントです。たとえば、return ステートメントは、実行された関数の結果の値を返します。if ステートメントは、条件を評価して、次に行うべき処理を判定します。switch ステートメントは、ActionScript ステートメントの分岐構造を作成します。

属性キーワードは定義の意味を変更します。また、クラス、変数、関数、および名前空間の定義に適用できます。定義キーワードは、変数、関数、クラス、およびインターフェイスなどのエンティティを定義する場合に使用します。プライマリ式のキーワードはリテラル値を表します。予約語のリストについては、『ActionScript 3.0 のプログラミング』を参照してください。

ディレクティブにはステートメントと定義が含まれ、コンパイル時または実行時に適用できます。次の表では、ステートメントおよび定義以外のディレクティブは、ディレクティブとしてラベルされています。


 属性キーワード概要
 dynamic実行時に追加された dynamic プロパティをクラスのインスタンスで保有するよう指定します。
 finalメソッドのオーバーライドまたはクラスの拡張を制限します。
 internalクラス、変数、定数、または関数に同じパッケージ内のすべての呼び出し元からアクセスできるよう指定します。
 nativeFlash Player がネイティブコードで関数またはメソッドを実装するよう指定します。
 overrideメソッドで継承したメソッドを置き換えるよう指定します。
 private変数、定数、メソッド、または名前空間を定義したクラスからのみアクセスできるよう指定します。
 protected変数、定数、メソッド、または名前空間を定義したクラスとそのサブクラスからのみアクセスできるよう指定します。
 publicクラス、変数、定数、またはメソッドにすべての呼び出し元からアクセスできるよう指定します。
 static変数、定数、またはメソッドがクラスのインスタンスではなくクラスに属するよう指定します。
 ステートメント概要
 breakループ (forfor..infor each..indo..while、または while) で使用します。または、switch ステートメント内の特定のケースと関連するステートメントのブロック内でも使用します。
 caseswitch ステートメントのジャンプターゲットを定義します。
 continueループの終わりまで制御が通過したかのように、最も内側のループ内の残りのステートメントをすべてスキップして、ループの次の反復を開始します。
 defaultswitch ステートメントのデフォルトケースを定義します。
 do..whilewhile ループに似ていますが、条件の最初の評価に先立ってステートメントが実行される点が異なります。
 elseif ステートメントの条件が false を返したときに実行するステートメントを指定します。
 forinit (初期化) 式を 1 回だけ評価してから、ループシーケンスを開始します。
 for..inオブジェクトの動的プロパティまたは配列のエレメントに対して反復処理を行い、各プロパティまたはエレメントに対して statement を実行します。
 for each..inコレクションのアイテムに対して反復処理を行い、各アイテムに対して statement を実行します。
 if条件を評価して、次のステートメントを実行するかどうかを判定します。
 labelステートメントを break または continue で参照可能な識別子と関連付けます。
 return実行を呼び出し元の関数に直ちに返します。
 superメソッドやコンストラクタのスーパークラスまたは親バージョンを呼び出します。
 switch式の値に応じて、ステートメントへの転送を制御します。
 throwcatch コードブロックによって処理 (キャッチ) できるエラーを生成 (スロー) します。
 try..catch..finallyエラーが発生する可能性のあるコードブロックを囲み、そのエラーに対処します。
 while条件を評価して、条件の評価結果が true になる場合はステートメントを実行します。その後、ループの先頭に戻り、再び条件を評価します。
 withステートメントの実行に使用するデフォルトのオブジェクトを設定します。記述するコードの量を減らすことができます。
 ディレクティブ概要
 default xml namespace default xml namespace ディレクティブは、XML オブジェクトに使用するデフォルトの名前空間を設定します。
 import外部で定義されたクラスおよびパッケージをコードで使用できるようにします。
 include指定したファイル内のコマンドを呼び出し元のスクリプトにインクルードし、そのスクリプトの一部であるかのように扱います。
 use namespace指定した名前空間をオープンな名前空間のセットに追加します。
 プライマリ式キーワード概要
 falsefalse を表すブール値です。
 null変数に割り当てることができる特別な値、またはデータがない場合に関数から返される特殊な値です。
 thisメソッドに含まれるオブジェクトへの参照です。
 truetrue を表すブール値です。
 名前空間概要
 AS3プロトタイププロパティの代わりに固定プロパティとして使用する、ActionScript コアクラスのメソッドおよびプロパティを定義します。
 flash_proxyProxy クラスのメソッドを定義します。
 object_proxyObjectProxy クラスのメソッドを定義します。
 定義キーワード概要
 ... (rest) parameter関数が任意の数のカンマ区切りの引数を取るよう指定します。
 class独自で定義したメソッドとプロパティを共有するオブジェクトをインスタンス化できるクラスを定義します。
 const定数 (値を 1 回だけ割り当てることができる変数) を指定します。
 extends他のクラスのサブクラスとするクラスを定義します。
 function特定のタスクを実行するよう定義した一連のステートメントで構成されます。
 getプロパティと同じように読み取り可能なメソッドである getter を定義します。
 implementsクラスでインターフェイスを実装するかどうかを指定します。
 interfaceインターフェイスを定義します。
 namespace定義の可視性を制御できます。
 package他のスクリプトから読み込んだ個別のグループにコードを分類できます。
 setパブリックインターフェイスでプロパティとして表示されるメソッドである setter を定義します。
 var変数を指定します。
ステートメント、キーワード、ディレクティブの詳細
... (rest) parameter定義キーワード
シンタックス
function functionName(parameter0, parameter1, ...rest){ 
	// ステートメント
} 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

関数が任意の数のカンマ区切りの引数を取るよう指定します。引数のリストは配列となり、関数本体を介してアクセスできます。配列の名前をパラメータ宣言にある ... 文字の後に指定します。パラメータには、予約語ではない名前を指定することができます。

他のパラメータと共に使用する場合は、最後のパラメータとして ... (rest) パラメータ宣言を指定する必要があります。... (rest) パラメータ配列は、関数に渡された引数の数が他のパラメータの数より多い場合のみ作成されます。

カンマ区切りリストの引数は、それぞれ配列のエレメントとして配置されます。Array クラスのインスタンスを渡す場合は、配列全体が ... (rest) パラメータ配列の 1 つのエレメントに配置されます。

このパラメータを使用すると、arguments オブジェクトにアクセスできなくなります。... (rest) パラメータには arguments 配列および arguments.length プロパティと同じ機能がありますが、arguments.callee のような機能はありません。... (rest) パラメータを使用する前に、arguments.callee を使用する必要はありません。

パラメータ
rest:* — 関数に渡される引数の配列名を表す識別子です。このパラメータの名前を rest とする必要はありません。キーワード以外の任意の名前を付けることができます。... (rest) パラメータのデータ型を Array と指定することはできますが、混乱の原因となる場合があります。パラメータはカンマ区切りの値のリストを受け付けますが、Array クラスのインスタンスとは異なります。


例の使用法
次の例では、...(rest) パラメータを 2 つの異なる関数で使用します。最初の関数 traceParams は、rest 配列にある各引数について trace() 関数を呼び出します。次の関数 average() は引数のリストを取得して、その平均を返します。2 番目の関数のパラメータには別の名前 args を使用しています。
package {
    import flash.display.MovieClip;
    
    public class RestParamExample extends MovieClip {
        public function RestParamExample() {
            traceParams(100, 130, "two"); // 出力 :  100,130,two
            trace(average(4, 7, 13));     // 出力 :  8
        }
    }
}


function traceParams(... rest) {
     trace(rest);
 }
 
function average(... args) : Number{
    var sum:Number = 0;
    for (var i:uint = 0; i < args.length; i++) {
        sum += args[i];
    }
    return (sum / args.length);
}

関連項目

AS3名前空間 

プロトタイププロパティの代わりに固定プロパティとして使用する、ActionScript コアクラスのメソッドおよびプロパティを定義します。"-as3" コンパイラオプションを true (Flex Builder 2 ではデフォルトの設定) に設定すると、AS3 名前空間は自動的にすべてのコアクラスに対してオープンになります。つまり、コアクラスのインスタンスでは、クラスのプロトタイプオブジェクトに割り当てられた同じプロパティおよびメソッドのバージョンの代わりに、固定プロパティおよびメソッドを使用します。固定プロパティを使用するとパフォーマンスが向上しますが、ECMAScript Edition 3 言語仕様 (ECMA-262) との後方互換性が失われます。

関連項目

breakステートメント 
シンタックス

break [label]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

ループ (forfor..infor each..indo..while、または while) で使用します。または、switch ステートメント内の特定のケースと関連するステートメントのブロック内でも使用します。break ステートメントをループ内で使用すると、ループ本体の残りの部分をスキップし、繰り返し処理を停止して、ループステートメントの次のステートメントを実行します。break ステートメントを switch 内で使用すると、case ブロック内の残りのステートメントをスキップし、囲んでいる switch ステートメントに続く最初のステートメントにジャンプします。

ネストされているループ内では、break は、そのループの残りの部分をスキップするだけで、ネストされている一連のループは終了しません。ネストされている一連のループを終了するには、label または try..catch..finally を使用します。

break ステートメントにはオプションのラベルを指定できますが、このラベルは外側のステートメントのラベルと一致している必要があります。外側のステートメントのラベルと一致しないラベルを使用すると、シンタックスエラーが発生します。ラベル付きの break ステートメントを使用すると、ネストされたループステートメント、switch ステートメント、または block ステートメントの複数のレベルを終了できます。例については、label ステートメントの項目を参照してください。

パラメータ
label:* — ステートメントと関連付けられたラベルの名前です。


例の使用法
次の例では、break を使用して無限ループから抜け出します。
var i:int = 0;
while (true) { 
    trace(i); 
    if (i >= 10) { 
        break; // ループを終了します。 
    } 
    i++; 

} 
/* output:
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10*/

関連項目

caseステートメント 
シンタックス
case jumpTarget: statements

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

switch ステートメントのジャンプターゲットを定義します。jumpTarget パラメータと、厳密な等価 (===) を使用している switch ステートメントの expression パラメータが等しい場合、break ステートメントが見つかるか、または switch ステートメントの終わりに到達するまで、statements パラメータ内のステートメントが実行されます。

case ステートメントを switch ステートメントの外側で使用すると、エラーが発生し、スクリプトはコンパイルされません。

メモ : statements パラメータは、必ず break ステートメントで終了します。statements パラメータの break ステートメントを省略すると、switch ステートメントが終了せずに、次の case ステートメントが実行されます。

パラメータ
jumpTarget:* — 任意の式です。
statements:*jumpTargetswitch ステートメントの条件式に一致した場合に実行されるステートメントです。


例の使用法
次の例では、switch ステートメントの thisMonth のジャンプターゲットを定義しています。thisMonthcase ステートメント内の式と等しい場合は、ステートメントが実行されます。
var thisMonth:int = new Date().getMonth(); 
switch (thisMonth) { 
    case 0 : 
        trace("January"); 
        break; 
    case 1 : 
        trace("February"); 
        break; 
    case 5 : 
    case 6 : 
    case 7 : 
        trace("Some summer month"); 
        break; 
    case 8 : 
        trace("September"); 
        break; 
    default : 
        trace("some other month"); 
}

関連項目

class定義キーワード 
シンタックス
[dynamic] [public | internal] [final] class className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { 
	// ここにクラス定義を記述
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

独自で定義したメソッドとプロパティを共有するオブジェクトをインスタンス化できるクラスを定義します。たとえば、送り状追跡システムを作成する場合に、送り状クラスを定義して、各送り状で必要になるすべてのメソッドとプロパティを定義します。その後、new Invoice() コマンドを使用して、送り状オブジェクトを作成します。

ActionScript ソースファイルごとに、他のソースファイルやスクリプトから可視なクラスを 1 つ指定できます。外部から可視のクラスは、パブリッククラスまたは内部クラスで、パッケージステートメント内で定義する必要があります。同じファイルに他のクラスを指定する場合、それらのクラスは、パッケージステートメントの外部でファイルの末尾に配置する必要があります。

外部から可視のクラスの名前は、そのクラスが格納された ActionScript ソースファイルの名前と一致している必要があります。ソースファイルの名前は、クラス名にファイル拡張子 .as を付けた名前である必要があります。たとえば、あるクラスに Student という名前を付ける場合、このクラスを定義するファイルの名前は Student.as になります。

クラス定義はネストできません。つまり、クラス定義内に別のクラスを定義することはできません。

クラスの新しいインスタンスの作成時にいつも実行されるメソッドである、コンストラクタメソッドを定義できます。コンストラクタメソッドの名前はクラス名と同じにする必要があります。コンストラクタメソッドを定義しない場合、デフォルトのコンストラクタが自動的に作成されます。

実行時にオブジェクトがダイナミックプロパティを追加したり、ダイナミックプロパティにアクセスしたりできるようにする場合は、クラスステートメントの前に dynamic キーワードを付加します。インターフェイスを実装するクラスを宣言するには、implements キーワードを使用します。クラスのサブクラスを作成するには、extends キーワードを使用します。クラスは 1 つしか拡張できませんが、インターフェイスは複数実装することができます。implements キーワードと extends キーワードは、1 つのステートメントで一緒に使うことができます。次の例では、implements キーワードと extends キーワードの一般的な使い方を示します。

class C implements Interface_i, Interface_j // OK 
class C extends Class_d implements Interface_i, Interface_j // OK 
class C extends Class_d, Class_e // OK ではない 

パラメータ
className:Class — クラスの完全修飾名です。


例の使用法
次の例では、Plant という名前のクラスを作成しています。Plant コンストラクタは 2 つのパラメータを受け取ります。
// ファイル名 Plant.as 
package {
  public class Plant { 
    // プロパティ名と型を定義します。
    private var _leafType:String; 
    private var _bloomSeason:String; 
    // クラスと同じ名前であるため、
    // の行はコンストラクタです。
    public function Plant(param_leafType:String, param_bloomSeason:String) { 
        // 新しい Plant オブジェクトが作成されるとプロパティに渡される値が割り当てられます。
        _leafType = param_leafType; 
        _bloomSeason = param_bloomSeason; 
    } 
    // プロパティ値を返すメソッドを作成します。
    // ベストプラクティスにより、クラスのプロパティへの直接参照が推奨されます。
    public function get leafType():String { 
        return _leafType; 
    } 
    public function get bloomSeason():String { 
        return _bloomSeason; 
    } 
  }
}
スクリプトで、new 演算子を使用して Plant オブジェクトを作成します。
var pineTree:Plant = new Plant("Evergreen", "N/A"); 
// パラメータが正しく渡されたことを確認します。
trace(pineTree.leafType); 
trace(pineTree.bloomSeason); 

関連項目

const定義キーワード 
シンタックス
const identifier = value 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

定数 (値を 1 回だけ割り当てることができる変数) を指定します。

データ型の後にコロン (:) を付けて、厳密に定数を型指定できます。

パラメータ
identifier:* — 定数の識別子です。


例の使用法
次の例では、値を複数回定数に割り当てようとすると、エラーが発生することを示しています。
const MIN_AGE:int = 21;
MIN_AGE = 18; // エラーです。
次の例では、定数が配列である場合は、Array.push() を含む Array クラスメソッドを呼び出すことができることを示しています。ただし、新しい配列リテラルを割り当てることはできません。
const product_array:Array = new Array("Studio", "Dreamweaver", "Flash", "ColdFusion", "Contribute", "Breeze"); 
product_array.push("Flex"); // 配列の操作は許可されています。
product_array = ["Other"];  // 割り当てるとエラーが発生します。
trace(product_array); 

関連項目

continueステートメント 
シンタックス
continue [label]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

ループの終わりまで制御が通過したかのように、最も内側のループ内の残りのステートメントをすべてスキップして、ループの次の反復を開始します。continue ステートメントはループの外部では作用しません。ネストされたループでは、オプションの label パラメータを使用すると、最も内側のループ以外もスキップできます。

continue ステートメントには、オプションのラベルを指定できますが、このラベルは外側のステートメントのラベルと一致している必要があります。外側のステートメントのラベルと一致しないラベルを使用すると、シンタックスエラーが発生します。ラベル付きの continue ステートメントを使用すると、ネストされたループステートメントの複数のレベルをスキップできます。



例の使用法
次の while ループでは、continue ステートメントを使用して、3 の倍数が検出されたときにループ本体の残りをスキップして、ループの上端にジャンプし、条件を再度評価します。
var i:int = 0; 
while (i < 10) { 
    if (i % 3 == 0) { 
        i++; 
        continue; 
    } 
    trace(i); 
    i++; 
}

for ループでは、continue ステートメントを使用して、ループ本体の残りをスキップできます。次の例では、i % 30 が等しい場合、trace(i) ステートメントはスキップされます。

 
for (var i:int = 0; i < 10; i++) { 
    if (i % 3 == 0) { 
        continue; 
    } 
    trace(i); 
}

関連項目

defaultステートメント 
シンタックス
default: statements 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

switch ステートメントのデフォルトケースを定義します。このステートメントが実行されるのは、switch ステートメントの expression パラメータが、所定の switch ステートメントの case キーワードに続く expression パラメータと等しくない場合です (厳密な等価 [===] を使用)。

switch ステートメントに default ケースステートメントは必須ではありません。default ケースステートメントは、リストの最後に置く必要はありません。default ステートメントを switch ステートメントの外側で使用すると、エラーが発生し、スクリプトはコンパイルされません。

パラメータ
statements:* — 任意のステートメントです。


例の使用法
次の例では、曜日が土曜日または日曜日の場合、すべての case ステートメントが適用されず、default ステートメントが実行されます。
var dayOfWeek:int = new Date().getDay(); 
switch (dayOfWeek) { 
    case 1 : 
        trace("Monday"); 
        break; 
    case 2 : 
        trace("Tuesday"); 
        break; 
    case 3 : 
        trace("Wednesday"); 
        break; 
    case 4 : 
        trace("Thursday"); 
        break; 
    case 5 : 
        trace("Friday"); 
        break; 
    default : 
        trace("Weekend"); 
}

関連項目

default xml namespaceディレクティブ 
シンタックス

default xml namespace = ns

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

default xml namespace ディレクティブは、XML オブジェクトに使用するデフォルトの名前空間を設定します。

default xml namespace を設定しない場合、デフォルトの名前空間は名前のない名前空間となり、空のストリングに設定された URI が設定されます。default xml namespace 宣言のスコープは、変数のスコープと同じように関数ブロック内です。



例の使用法
次の例では、default xml namespace のスコープが関数ブロックであることを示しています。
var nsDefault1:Namespace = new Namespace("http://www.example.com/namespaces/");
default xml namespace = nsDefault1;
        
var x1:XML = <test1 />;
trace("x1 ns: " + x1.namespace());
            
scopeCheck();    

var x2:XML = <test2 />;
trace("x2 ns: " + x2.namespace());
        
function scopeCheck(): void {
    
    var x3:XML = <test3 />;
    trace("x3 ns: " + x3.namespace());
                
    var nsDefault2:Namespace = new Namespace("http://schemas.xmlsoap.org/soap/envelope/");
    default xml namespace = nsDefault2;
            
    var x4:XML = <test4 />;
    trace("x4 ns: " + x4.namespace());

}

この例の trace() 出力は次のようになります。

x1 ns: http://www.example.com/namespaces/
x3 ns: 
x4 ns: http://schemas.xmlsoap.org/soap/envelope/
x2 ns: http://www.example.com/namespaces/
次の例では、default xml namespace を使用して、デフォルトの名前空間を割り当てています。2 番目の XML オブジェクト (x2) は、x2 で自身のデフォルトの名前空間を定義しているため、この設定を使用しません。
var nsDefault:Namespace = new Namespace("http://www.example.com/namespaces/");
default xml namespace = nsDefault;
            
var x1:XML = <test1 />;

trace(x1.namespace());
    // http://www.example.com/namespaces/

var x2:XML = <test2 xmlns = "http://www.w3.org/1999/XSL/Transform/" />;
trace(x2.namespace());
    // http://www.w3.org/1999/XSL/Transform/

var x3:XML = <test3 xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" />;
trace(x3.namespace());
    // http://www.example.com/namespaces/

関連項目

do..whileステートメント 
シンタックス
do { statement(s) } while (condition)

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

while ループに似ていますが、条件の最初の評価に先立ってステートメントが実行される点が異なります。その後、ステートメントは、条件が true と評価された場合にのみ実行されます。

do..while ループの場合、ループ内のコードは少なくとも 1 回は必ず実行されます。while ループを使用して、実行するステートメントのコピーを while ループの開始前に配置することで同じ操作を実現できますが、多くのプログラマは do..while ループの方が読みやすいと考えています。

条件が常に true と評価されると、do..while ループは無限ループになります。無限ループに陥ると、Flash Player に問題が発生し、警告メッセージが出力されたり、プレーヤーがクラッシュすることがあります。ループの回数がわかっている場合は、できる限り for ループを使用してください。for ループは読みやすくデバッグも簡単ですが、あらゆる状況で do..while ループの代わりとして使用できるわけではありません。

パラメータ
condition:Boolean — 評価する条件です。コードの do ブロック内の statement(s) は、condition パラメータの評価が true である限り実行されます。


例の使用法
次の例では、do..while ループを使用して条件が true かどうかを評価し、myVar が 5 以上になるまで myVar をトレースします。myVar が 5 以上になると、ループは終了します。
var myVar:Number = 0; 
do { 
    trace(myVar); 
    myVar++; 
} 
while (myVar < 5); 
/* output: 
0 
1 
2 
3 
4
*/

関連項目

dynamic属性キーワード 
シンタックス
dynamic class className { // ここにクラス定義を記述 }

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

実行時に追加された dynamic プロパティをクラスのインスタンスで保有するよう指定します。クラスで dynamic 属性を使用する場合は、実行時にクラスのインスタンスにプロパティを追加できます。dynamic と指定されていないクラスは sealed と見なされます。sealed クラスのインスタンスには、プロパティを追加できません。

クラスが dynamic ではなく sealed の場合、クラスインスタンスでプロパティを取得または設定しようとすると、結果はエラーとなります。コンパイラを strict モードに設定し、インスタンスを作成するときにデータ型を指定する場合は、プロパティを sealed オブジェクトに追加しようとすると、コンパイルエラーまたはランタイムエラーが発生します。

dynamic 属性はサブクラスに継承されません。dynamic クラスを拡張した場合は、サブクラスで dynamic 属性を宣言した場合にのみサブクラスが dynamic になります。

メモ : このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。



例の使用法
次の例では、2 つのクラスを作成します。1 つは Expando という名前の dynamic クラスで、もう 1 つは Sealed という名前の sealed クラスです。これらのクラスは後の例でも使用します。
package {

    dynamic class Expando  {
    }
    
    class Sealed {
    }
}
次のコードは、Expando クラスのインスタンスを作成し、このインスタンスにプロパティを追加できることを示しています。
var myExpando:Expando = new Expando();
myExpando.prop1 = "new";
trace(myExpando.prop1); // 出力 : new
次のコードは、Sealed クラスのインスタンスを作成し、プロパティを追加しようとすると、結果がエラーとなることを示しています。
var mySealed:Sealed = new Sealed();
mySealed.prop1 = "newer"; // エラーです。

関連項目

elseステートメント 
シンタックス
if (condition) { 
	// ステートメント
} 
else {
	// ステートメント
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

if ステートメントの条件が false を返したときに実行するステートメントを指定します。実行するステートメントが 1 つしかない場合、else ステートメントで実行するステートメントを囲む中括弧 ({}) は必要ありません。

パラメータ
condition:Boolean — 評価結果が true または false になる式です。


例の使用法
次の例では、else 条件を使用して、age_txt 変数が 18 より大きいかまたは小さいかを判定しています。
if (age_txt.text>=18) { 
    trace("welcome, user"); 
} 
else { 
    trace("sorry, junior"); 
    userObject.minor = true; 
    userObject.accessAllowed = false;
}
次の例では、else ステートメントに続くステートメントが 1 つだけなので、中括弧 ({}) は必要ありません。
if (age_txt.text>18) { 
    trace("welcome, user");
} 
else trace("sorry, junior");
次の例では、if および else ステートメントを組み合わせて使用して、score_txt を指定された値と比較しています。

if (score_txt.text>90) { 
    trace("A"); 
} 
else if (score_txt.text>75) { 
    trace("B"); 
} 
else if (score_txt.text>60) { 
    trace("C"); 
} 
else { 
    trace("F"); 
}

関連項目

extends定義キーワード 
シンタックス
class className extends otherClassName {}
interface interfaceName extends otherInterfaceName {} 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

他のクラスのサブクラスとするクラスを定義します。サブクラスは、スーパークラスで定義されているメソッド、プロパティ、関数などをすべて継承します。final とマークされたクラスは拡張できません。

extends キーワードを使用して、インターフェイスを拡張することもできます。他のインターフェイスを拡張したインターフェイスには、元のインターフェイスのメソッド宣言がすべて含まれます。

メモ : このキーワードを使用するには、FLA ファイルの [パブリッシュ設定] ダイアログボックスの [Flash] タブで、ActionScript 2.0 および Flash Player 6 以降を指定する必要があります。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。

パラメータ
className:Class — 定義するクラスの名前です。


例の使用法
次の例の Car クラスは Vehicle クラスを拡張しているので、Vehicle クラスのすべてのメソッド、プロパティ、および関数を継承します。スクリプトで Car オブジェクトをインスタンス化すると、Car クラスのメソッドと Vehicle クラスのメソッドの両方を使用できます。

次の例では、Vehicle クラスを定義している "Vehicle.as" ファイルの内容を示します。

package {
    class Vehicle { 
        var numDoors:Number; 
        var color:String; 
        public function Vehicle(param_numDoors:Number = 2, param_color:String = null) { 
            numDoors = param_numDoors; 
            color = param_color; 
        } 
        public function start():void { 
            trace("[Vehicle] start"); 
        } 
        public function stop():void { 
            trace("[Vehicle] stop"); 
        } 
        public function reverse():void { 
            trace("[Vehicle] reverse"); 
        } 
    }    
}
次の例では、同じディレクトリ内にある 2 番目の ActionScript ファイル "Car.as" の内容を示します。このクラスは Vehicle クラスを拡張したクラスで、次のような 3 つの変更を行っています。Car クラスでは、最初に車オブジェクトにフルサイズのスペアタイヤが装着されているかどうかを追跡するための変数 fullSizeSpare を追加しています。2 番目に、車の盗難防止アラームをアクティブにする activateCarAlarm() を車に固有の新しいメソッドとして追加しています。3 番目に、Car クラスでは停車の際にアンチロックブレーキシステムを使用することを示すために、stop() 関数が上書きされています。
package {

    public class Car extends Vehicle { 
        var fullSizeSpare:Boolean; 
        public function Car(param_numDoors:Number, param_color:String, param_fullSizeSpare:Boolean) { 
            numDoors = param_numDoors; 
            color = param_color; 
            fullSizeSpare = param_fullSizeSpare; 
        } 
        public function activateCarAlarm():void { 
            trace("[Car] activateCarAlarm"); 
        } 
        public override function stop():void { 
            trace("[Car] stop with antilock brakes"); 
        } 
    }
}
次の例では、Car オブジェクトをインスタンス化し、Vehicle クラスに定義されているメソッド (start()) を呼び出します。次に Car クラスでオーバーライドされたメソッド (stop()) を呼び出し、最後に Car クラスのメソッド (activateCarAlarm()) を呼び出します。
var myNewCar:Car = new Car(2, "Red", true); 
myNewCar.start(); // 出力 : [Vehicle] start 
myNewCar.stop(); // 出力 : [Car] stop with anti-lock brakes 
myNewCar.activateCarAlarm(); // 出力 : [Car] activateCarAlarm

サブクラスがスーパークラスのコンストラクタへのアクセスに使用する super ステートメントを使用して、Vehicle クラスのサブクラスを記述することもできます。次の例では、同じディレクトリ内にある 3 番目の ActionScript ファイル "Truck.as" の内容を示します。Truck クラスは、コンストラクタおよびオーバーライドされた reverse() メソッドで super を使用します。

package {
    class Truck extends Vehicle {
        var numWheels:Number;
        public function Truck(param_numDoors:Number, param_color:String, param_numWheels:Number) { 
            super(param_numDoors, param_color); 
            numWheels = param_numWheels; 
        } 
        public override function reverse():void { 
            beep();
            super.reverse();
        } 
        public function beep():void { 
            trace("[Truck] make beeping sound"); 
        } 
    }
}
次の例では、Truck オブジェクトをインスタンス化し、Truck クラスでオーバーライドされたメソッド (reverse()) を呼び出してから、Vehicle クラスで定義されているメソッド (stop()) を呼び出しています。
var myTruck:Truck = new Truck(2, "White", 18); 
myTruck.reverse(); // 出力 : [Truck] make beeping sound [Vehicle] reverse 
myTruck.stop(); // 出力 : [Vehicle] stop

関連項目

falseプライマリ式キーワード 
シンタックス
false

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

false を表すブール値です。ブール値は true または false のいずれかです。false の反対は true です。

自動的な型指定により false を数値に変換すると、その結果は 0 となります。false をストリングに変換すると、その結果は "false" となります。

メモ : ストリング "false" はブール値 true に変換されます。



例の使用法
次の例では、自動的な型指定によって false がどのような数値やストリングに変換されるかを示します。
var bool1:Boolean = Boolean(false);

// 数値 0 に変換します。
trace(1 + bool1); // 出力 1

// ストリングに変換します。
trace("String: " + bool1); // ストリングを出力します : false

次の例では、ストリング "false" がブール値 true に変換されることを示します。

trace(Boolean("false")); // 出力 : true

if ("false") {
    trace("condition expression evaluated to true");
}
else {
    trace("condition expression evaluated to false");
}
// 出力 :  condition expression evaluated to true

関連項目

final属性キーワード 
シンタックス
final function methodName() { 
	// ここにステートメントを記述
}
final class className {}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

メソッドのオーバーライドまたはクラスの拡張を制限します。final と指定されたメソッドのオーバーライドや、クラスの拡張を試行すると、結果はエラーとなります。

パラメータ
methodName:Function — オーバーライドを制限するメソッドの名前です。
className:Class — 拡張を制限するクラスの名前です。

関連項目

flash_proxy名前空間 

Proxy クラスのメソッドを定義します。Proxy クラスメソッドは自身の名前空間内にあり、Proxy クラスメソッド名と一致するインスタンスメソッド名が Proxy サブクラスに含まれる場合に、名前が競合しないようになっています。

関連項目

forステートメント 
シンタックス
for ([init]; [condition]; [next]) { 
	// ステートメント
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

init (初期化) 式を 1 回だけ評価してから、ループシーケンスを開始します。ループシーケンスは、condition 式を評価することで開始されます。condition 式の評価結果が true の場合は、statement が実行され、next が評価されます。その後、condition 式の評価からループシーケンスが再び開始されます。

実行するステートメントが 1 つしかない場合、for ステートメントで実行するステートメントブロックを囲む中括弧 ({}) は必要ありません。

パラメータ
init — ループの開始前に評価される任意の式です。通常は代入式です。このパラメータに対して、var ステートメントを実行することもできます。
condition — ループの開始前に評価される任意の式です。通常は比較式です。式の評価結果が true の場合、for ステートメントに関連付けられているステートメントが実行されます。
next — ループシーケンスの後に評価される任意の式です。通常はインクリメント式またはデクリメント式です。


例の使用法
次の例では、for を使用して配列のエレメントを追加します。
var my_array:Array = new Array(); 
for (var i:Number = 0; i < 10; i++) { 
    my_array[i] = (i + 5) * 10;  
} 
trace(my_array); // 出力 :  50,60,70,80,90,100,110,120,130,140 
次の例では、for を使用して同じアクションを繰り返し実行します。次のコードでは、for ループにより 1 から 100 の数値を加算します。
var sum:Number = 0; 
for (var i:Number = 1; i <= 100; i++) { 
    sum += i; 
} 
trace(sum); // 出力 :  5050
次の例では、実行するステートメントが 1 つしかない場合は、中括弧 ({}) を付ける必要がないことを示しています。
var sum:Number = 0; 
for (var i:Number = 1; i <= 100; i++) 
    sum += i; 
trace(sum); // 出力 :  5050

関連項目

for..inステートメント 
シンタックス
for (variableIterant:String in object){ 
	// ステートメント
} 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

オブジェクトの動的プロパティまたは配列のエレメントに対して反復処理を行い、各プロパティまたはエレメントに対して statement を実行します。オブジェクトのプロパティは特定の順序で保持されないため、プロパティは外見上ランダムな順序で表示されます。for..in ステートメントでは、クラスに定義された変数やメソッドなどの固定プロパティは列挙されません。固定プロパティのリストを取得するには、flash.utils パッケージにある describeType() 関数を使用します。

パラメータ
variableIterant:String — 反復子として動作し、オブジェクトのプロパティまたは配列内のエレメントを参照する変数の名前です。


例の使用法
次の例では、for..in を使用してオブジェクトのプロパティに対して反復処理を行います。
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for (var prop in myObject) { 
    trace("myObject."+prop+" = "+myObject[prop]); 
} 
/* output:
myObject.firstName = Tara 
myObject.age = 27 
myObject.city = San Francisco
*/
次の例では、for..intypeof 演算子を使用して、特定の型の子に対して反復処理を行います。
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for (var name in myObject) { 
    if (typeof (myObject[name]) == "string") { 
        trace("I have a string property named "+name); 
    } 
}
/* output:
I have a string property named city
I have a string property named firstName
*/

関連項目

for each..inステートメント 
シンタックス
for each (variableIterant in object){ 
	// ステートメント
} 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

コレクションのアイテムに対して反復処理を行い、各アイテムに対して statement を実行します。E4X の言語拡張の一部として導入された for each..in ステートメントは、XML オブジェクトだけでなくオブジェクトや配列にも使用できます。for each..in ステートメントは、固定プロパティではなくオブジェクトの動的プロパティを介してのみ反復処理を行います。固定プロパティは、クラス定義の一部として定義されるプロパティです。ユーザー定義クラスのインスタンスで for each..in ステートメントを使用するには、クラスの属性を dynamic と宣言する必要があります。

for..in ステートメントと異なり、for each..in ステートメントは、プロパティ名ではなくオブジェクトのプロパティの値に対して反復処理を行います。

パラメータ
variableIterant:* — 反復子として動作し、コレクションのアイテムを参照する変数の名前です。
object:Object — 反復処理を行うコレクションの名前です。コレクションは、XML オブジェクト、汎用オブジェクト、または配列とすることができます。


例の使用法
次の例では、for each..in を使用して、オブジェクトのプロパティで保持される値に対して反復処理を行います。
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for each (var item in myObject) { 
    trace(item); 
} 
/* output:
Tara
27
San Francisco
*/
次の例では、for each..in を使用して、配列のエレメントに対して反復処理を行います。
var myArray:Array = new Array("one", "two", "three"); 
for each(var item in myArray) 
    trace(item); 
/* output: 
one
two
three
*/
次の例では、for each..inis 演算子を使用して、特定の型の子に対して反復処理を行います。
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for each (var item in myObject) { 
    if (item is String) {  
        trace("I have a string property with value " + item); 
    } 
}

/* output:
I have a string property with value Tara
I have a string property with value San Francisco
*/
次の例では、for each..in を使用して、XMLList オブジェクトのプロパティ (doc.p) に対して反復処理を行います。
var doc:XML = 
        <body>
            <p>Hello</p>
            <p>Hola</p>
            <hr />
            <p>Bonjour</p>
        </body>;
for each (var item in doc.p) {
    trace(item);
}

/* output:
Hello
Hola
Bonjour
*/

関連項目

function定義キーワード 
シンタックス
function functionName([parameter0, parameter1,...parameterN]) : returnType{ 
	// ステートメント
} 
var functionName:Function = function ([parameter0, parameter1,...parameterN]) : returnType{ 
	// ステートメント
} 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

特定のタスクを実行するよう定義した一連のステートメントで構成されます。ある位置で関数を定義し、SWF ファイルの異なるスクリプトからその関数を呼び出すことができます。関数を定義する場合、その関数のパラメータも指定できます。パラメータは、関数が処理する値のプレースホルダです。関数を呼び出すたびに異なるパラメータを渡すことができます。これにより、1 つの関数を異なる状況で再利用できます。

関数で値を生成する、つまり値を返すには、関数の statement(s) ブロックで return ステートメントを使用します。

シンタックス 1: function キーワードを使用して、関数名、パラメータ、およびステートメントを指定した関数を定義できます。スクリプトによって関数が呼び出されると、関数定義内のステートメントが実行されます。関数は前方参照が許されます。つまり、同じスクリプト内では、関数を呼び出す箇所よりも後に関数を宣言できます。関数定義は、同じ関数の以前の定義を置き換えます。ステートメントが許されている場所であれば、どこでもこのシンタックスを使用できます。

シンタックス 2: function を使用して、匿名関数を作成し、この関数への参照を返すこともできます。このシンタックスは式の中で使用され、特にオブジェクト内にメソッドを組み込む場合に便利です。

さらに、関数定義内で arguments オブジェクトを使用することができます。一般に、arguments オブジェクトは、可変数のパラメータを受け取る関数や再帰的な匿名関数を作成する場合に使用します。

パラメータ
functionName:Function — 新しい関数の名前です。
returnType:* — 戻り値のデータ型です。


例の使用法
次の例では、平方数の値を返す関数 sqr を定義します。
function sqr(xNum:Number) { 
    return Math.pow(xNum, 2); 
} 
var yNum:Number = sqr(3); 
trace(yNum); // 出力 :  9
同じスクリプト内で関数を定義して使用する場合は、関数の使用箇所の後に関数定義を記述することができます。
var yNum:Number = sqr(3); 
trace(yNum); // 出力 :  9 
function sqr(xNum:Number) { 
    return Math.pow(xNum, 2); 
}

関連項目

get定義キーワード 
シンタックス
function get property() : returnType{ 
	// ここにステートメントを記述
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

プロパティと同じように読み取り可能なメソッドである getter を定義します。getter は特別な関数で、var または const キーワードで宣言されたプロパティの値を返します。他のメソッドとは異なり、getter の呼び出しには括弧 (()) を使用しないため、変数のように見えます。

getter では、プライベートプロパティにパブリックインターフェイスを作成して、非表示の情報の規則を適用できます。情報を非表示にすると、基になるプライベートプロパティの実装が変更された場合でも、パブリックインターフェイスを変更する必要がないというメリットがあります。

getter には、サブクラス内でオーバーライドできるというメリットもあります。var または const で宣言されたプロパティはオーバーライドできません。

getter は、setter と組み合わせて、読み取り / 書き込み可能なプロパティを作成できます。読み取り専用プロパティを作成するには、対応する setter なしで getter を作成します。書き込み専用プロパティを作成するには、対応する getter なしで setter を作成します。

メモ : このキーワードを使用するには、FLA ファイルの [パブリッシュ設定] ダイアログボックスの [Flash] タブで、ActionScript 2.0 および Flash Player 6 以降を指定する必要があります。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。

パラメータ
property:*get がアクセスするプロパティの識別子です。この値は対応する set コマンドで使用される値と同じである必要があります。
returnType:* — 戻り値のデータ型です。


例の使用法
次の例では、Team クラスを定義しています。Team クラスには、クラス内のプロパティを取得および設定するための getter および setter メソッドがあります。
package {
    public class Team { 
        var teamName:String; 
        var teamCode:String; 
        var teamPlayers:Array = new Array(); 
        public function Team(param_name:String, param_code:String) { 
            teamName = param_name; 
            teamCode = param_code; 
        } 
        public function get name():String { 
            return teamName; 
        } 
        public function set name(param_name:String):void { 
            teamName = param_name; 
        }
    } 
}
スクリプトに次のコードを入力します。
var giants:Team = new Team("San Fran", "SFO"); 
trace(giants.name); 
giants.name = "San Francisco"; 
trace(giants.name); 
/* output: 
San Fran San Francisco */

giants.name をトレースする際に、getter メソッドを使用してプロパティの値を返しています。

関連項目

ifステートメント 
シンタックス
if (condition) {
	// ステートメント
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

条件を評価して、次のステートメントを実行するかどうかを判定します。条件が true の場合は、条件に続く中括弧 ({}) 内のステートメントが実行されます。条件が false の場合は、中括弧内のステートメントをスキップし、中括弧の後のステートメントが実行されます。スクリプト内に分岐処理を作成するには、if ステートメントと else ステートメントを組み合わせます。

実行するステートメントが 1 つしかない場合、if ステートメントで実行するステートメントを囲む中括弧 ({}) は必要ありません。

パラメータ
condition:Boolean — 評価結果が true または false になる式です。

関連項目

implements定義キーワード 
シンタックス
myClass implements interface01 [, interface02 , ...] 

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

クラスでインターフェイスを実装するかどうかを指定します。クラスでインターフェイスを実装する場合、インターフェイスで宣言されているすべてのメソッドをクラスで定義する必要があります。インターフェイスを実装するクラスのインスタンスは、インターフェイスが定義するデータ型のメンバーと見なされます。このため、is 演算子は、最初のオペランドがクラスインスタンスで、次のオペランドがインターフェイスとなっており、さらに、データ型の強制型変換がインターフェイス操作で定義されている場合に true を返します。

メモ : このキーワードを使用するには、FLA ファイルの [パブリッシュ設定] ダイアログボックスの [Flash] タブで、ActionScript 2.0 および Flash Player 6 以降を指定する必要があります。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。

関連項目

importディレクティブ 
シンタックス
import packageName.className 
import packageName.*

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

外部で定義されたクラスおよびパッケージをコードで使用できるようにします。たとえば、スクリプトで flash.display.Sprite クラスを使用する場合は、これを読み込む必要があります。import ディレクティブはオプションだったため、この要件は以前のバージョンの ActionScript とは異なります。

import ディレクティブを使用した後は、パッケージ名を含む完全なクラス名かクラス名のみのいずれかを使用できます。

 
import flash.display.Sprite; 

// クラス名のみ
var mySprite:Sprite = new Sprite();

// 完全なクラス名
var mySprite:flash.display.Sprite = new flash.display.Sprite();

アクセス対象のクラスがパッケージ内に複数存在する場合は、次の例に示すように、1 つのステートメントですべてのクラスを読み込むことができます。

import flash.display.*;

import ディレクティブは、読み込んだパッケージの最上位レベルにあるクラス、関数、および変数のみを読み込みます。ネストされたパッケージは明示的に読み込む必要があります。

読み込んだクラスをスクリプト内で使用しない場合、そのクラスは SWF ファイルには出力されません。したがって、SWF ファイルのサイズを気にすることなく、大きなパッケージを読み込むことができます。クラスに関連付けられたバイトコードは、実際に使用された場合のみ、SWF ファイルに含められます。必要のないクラスを読み込むと、名前の競合が起こりやすくなるというデメリットがあります。

import ディレクティブは、それを呼び出している現在のスクリプト (フレームまたはオブジェクト) にのみ適用されます。たとえば、adobe.example パッケージのすべてのクラスを Flash ドキュメントのフレーム 1 に読み込んだと仮定します。そのフレームでは、そのパッケージ内のクラスを簡単な名前で参照できます。

// FLA のフレーム 1 で次を実行します : 
import adobe.example.*; 
var myFoo:foo = new foo();

ただし、他のフレームのスクリプトでは、そのパッケージのクラスを完全修飾名 (var myFoo:foo = new adobe.example.foo();) で参照するか、そのパッケージのクラスを読み込む他のフレームに import ディレクティブを追加する必要があります。

パラメータ
packageName:* — 別のクラスファイルで定義したパッケージの名前です。
className:Class — 別のクラスファイルで定義したクラスの名前です。

関連項目

includeディレクティブ 
シンタックス
include "[path]filename.as"

指定したファイル内のコマンドを呼び出し元のスクリプトにインクルードし、そのスクリプトの一部であるかのように扱います。include ディレクティブは、コンパイル時に呼び出されます。このため、インクルードファイルに何らかの変更を行った場合は、ファイルを保存し、ファイルを使用する SWF ファイルを再コンパイルする必要があります。

関連項目

interface定義キーワード 
シンタックス
 interface InterfaceName [extends InterfaceName ] {}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

インターフェイスを定義します。インターフェイスとは、メソッドのセットを定義するデータ型です。このメソッドは、インターフェイスを実装するすべてのクラスで定義される必要があります。

インターフェイスはクラスに似ていますが、次に示す重要な違いがあります。

ActionScript 2.0 とは異なり、ActionScript 3.0 ではインターフェイス定義で getter および setter メソッドを使用できます。

メモ : このキーワードを使用するには、FLA ファイルの [パブリッシュ設定] ダイアログボックスの [Flash] タブで、ActionScript 2.0 および Flash Player 6 以降を指定する必要があります。このキーワードは、外部スクリプトファイルで使用する場合にのみサポートされ、[アクション] パネルに記述するスクリプトではサポートされません。

関連項目

internal属性キーワード 
シンタックス
[internal] var varName
[internal] const kName
[internal] function functionName()  { 
	// ここにステートメントを記述
}
[internal] class className{
	// ここにステートメントを記述
}
[internal] namespace nsName

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

クラス、変数、定数、または関数に同じパッケージ内のすべての呼び出し元からアクセスできるよう指定します。デフォルトでは、クラス、プロパティ、およびメソッドは internal 名前空間に属します。

パラメータ
className:Class — internal として指定するクラスの名前です。
varName:* — internal として指定する変数の名前です。internal 属性は、変数がクラスの一部かどうかに関わらず適用できます。
kName:* — internal として指定する定数の名前です。internal 属性は、定数がクラスの一部かどうかに関わらず適用できます。
functionName:Function — internal として指定する関数またはメソッドの名前です。internal 属性は、関数がクラスの一部かどうかに関わらず適用できます。
nsName:Namespace — internal として指定する名前空間の名前です。internal 属性は、名前空間がクラスの一部かどうかに関わらず適用できます。

関連項目

labelステートメント 
シンタックス
label: statement
label: {
statements
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

ステートメントを break または continue で参照可能な識別子と関連付けます。ネストされたループでは、ラベルを参照しない break または continue ステートメントは、そのループの残りの部分のみスキップし、一連のループはスキップしません。ただし、一連のループを定義するステートメントに関連付けられたラベルがある場合、break または continue ステートメントはこのラベルを参照することにより、一連のループをスキップできます。

また、ラベルによりブロックステートメントを終了することもできます。ブロックステートメントがループの一部である場合以外は、ラベルを参照しない break ステートメントをブロックステートメント内に配置することはできません。ブロックステートメントに関連付けられたラベルがある場合は、このラベルを参照する break ステートメントをブロックステートメント内に配置できます。

パラメータ
label:* — ステートメントに関連付ける有効な識別子です。
statements:* — ラベルに関連付けるステートメントです。


例の使用法
次の例では、ネストされたループでラベルを使用して、一連のループを終了する方法を示します。コードは、ネストされたループを使用して、0 から 99 までの数値のリストを生成します。break ステートメントはカウントが 80 に到達する直前で発生します。break ステートメントで outerLoop ラベルが使用されなかった場合は、そのループの残りの部分のみスキップし、引き続き 90 から 99 までの数値を出力します。ただし、outerLoop ラベルが使用された場合、break ステートメントは一連のループをスキップし、最後に出力される数値は 79 になります。
outerLoop: for (var i:int = 0; i < 10; i++) {
    for (var j:int = 0; j < 10; j++) {
        if ( (i == 8) && (j == 0)) {
            break outerLoop;
        }
        trace(10 * i + j);
    }
}
/* output:
1
2
...
79
*/

次の例では、ブロックステートメントでのラベルの使用方法を示します。ブロックステートメントには foo ラベルが付けられ、break ステートメントはブロック内の最後のステートメントをスキップできます。

foo: {
    trace("a");
    break foo;
    trace("b");
}
// 出力 :  a

関連項目

namespace定義キーワード 
シンタックス
namespace name [= uri]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

定義の可視性を制御できます。定義済みの名前空間には、publicprivateprotected および internal があります (これらの特定の名前空間は、"アクセス制御指定子" とも呼ばれ、「クラスプロパティの属性」でも説明しています)。定義済みの名前空間が用途に合わない場合は、独自の名前空間を定義することができます。

次に、独自の名前空間を作成、適用、参照する手順を示します。

パラメータ
name:Namespace — 名前空間の名前です。有効な識別子を使用できます。
uri:String — 名前空間の URI です。このパラメータはオプションです。

関連項目

native属性キーワード 
シンタックス
native function functionName();
class className { 
	native function methodName();
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

Flash Player がネイティブコードで関数またはメソッドを実装するよう指定します。Flash Player では、native キーワードを内部的に使用して、ActionScript アプリケーションプログラミングインターフェイス (API) で関数およびメソッドを宣言します。このキーワードは、独自に作成するコードでは使用できません。  

nullプライマリ式キーワード 
シンタックス
ヌル (null)

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

変数に割り当てることができる特別な値、またはデータがない場合に関数から返される特殊な値です。null は、存在しない、または定義されていないデータ型を表す値として使用されます。

null 値は特殊な値 undefined と混同しないようにしてください。nullundefined を等価演算子 (==) で比較すると、結果は true になります。ただし、nullundefined を厳密な等価演算子 (===) で比較すると、結果は false になります。



例の使用法
次の例では、インデックスの付いた配列の最初の 6 つの値をチェックし、値が指定されていない (value == null) 場合は、メッセージを出力します。

var testArray:Array = new Array();
testArray[0] = "fee";
testArray[1] = "fi";
testArray[4] = "foo";

for (i = 0; i < 6; i++) {
    if (testArray[i] == null) {
        trace("testArray[" + i + "] == null");
    }
}

/* output: 
testArray[2] == null
testArray[3] == null
testArray[5] == null
*/

関連項目

object_proxy名前空間 

ObjectProxy クラスのメソッドを定義します。ObjectProxy クラスメソッドは自身の名前空間内にあり、Proxy クラスメソッド名と一致するインスタンスメソッド名が Proxy サブクラスに含まれる場合に、名前が競合しないようになっています。

override属性キーワード 
シンタックス
override function name() { 
	// ここにステートメントを記述
}

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

メソッドで継承したメソッドを置き換えるよう指定します。継承したメソッドをオーバーライドするには、override 属性を使用する必要があります。名前、数値、パラメータの型、および戻り値の型は完全に一致する必要があります。override 属性を使用せずにメソッドをオーバーライドしようとするとエラーが発生します。同様に、メソッドに一致する継承されたメソッドがない場合に、override 属性を使用するとエラーが発生します。

次の場所で override 属性を使用することはできません。

var または const で宣言されたプロパティを