記号演算子は式の値の組み合わせ、比較、または修正の方法を指定する文字です。


  算術演算
 +addition数値式を加算します。
 --decrementオペランドから 1 を減算します。
 /divisionexpression1expression2 で除算します。
 ++increment式に 1 を加算します。
 %moduloexpression1expression2 で割ったときの剰余を計算します。
 *multiplication2 つの数値や式を乗算します。
 -subtraction符号反転や減算に使用します。
  算術複合代入
 +=addition assignmentexpression1expression1 + expression2 の値を代入します。
 /=division assignmentexpression1expression1 / expression2 の値を割り当てます。
 %=modulo assignmentexpression1expression1 % expression2 の値を代入します。
 *=multiplication assignmentexpression1expression1 * expression2 の値を代入します。
 -=subtraction assignmentexpression1expression1 - expression2 の値を代入します。
  代入
 =assignmentexpression2 の値 (右側のオペランド) を expression1 の変数、配列エレメント、またはプロパティに割り当てます。
  ビット単位
 &bitwise ANDexpression1expression2 を 32 ビット符号なし整数に変換し、整数パラメータをビット単位で論理積 (AND) 演算します。
 <<bitwise left shiftexpression1shiftCount を 32 ビット整数に変換し、shiftCount の変換により生成された整数で指定される桁数だけ expression1 内のすべてのビットを左にシフトします。
 ~bitwise NOTexpression を 32 ビット符号付き整数に変更し、ビット単位で 1 の補数を適用します。
 |bitwise ORexpression1expression2 を 32 ビット符号なし整数に変換し、expression1expression2 の対応ビットの少なくとも一方が 1 である各ビット位置に 1 を設定します。
 >>bitwise right shiftexpressionshiftCount を 32 ビット整数に変換し、shiftCount の変換により生成された整数で指定される桁数だけ expression 内のすべてのビットを右にシフトします。
 >>>bitwise unsigned right shift左側のビットは常に 0 で埋められるため、元の式の符号が保持されないという点を除いて、ビット単位の右シフト (>>) 演算子と同じです。
 ^bitwise XORexpression1expression2 を 32 ビット符号なし整数に変換し、expression1expression2 の対応ビットのいずれか一方のみが 1 である各ビット位置に 1 を設定します。
  ビット単位複合代入
 &=bitwise AND assignmentexpression1expression1 & expression2 の値を代入します。
 <<=bitwise left shift and assignmentビット単位の左シフト (<<=) 演算を行い、その内容を結果として expression1 に格納します。
 |=bitwise OR assignmentexpression1expression1 | expression2 の値を代入します。
 >>=bitwise right shift and assignmentビット単位の右シフト演算を行い、結果を expression に格納します。
 >>>=bitwise unsigned right shift and assignmentビット単位の符号なし右シフト演算を行い、結果を expression に格納します。
 ^=bitwise XOR assignmentexpression1expression1 ^ expression2 の値を代入します。
  コメント
 /*..*/block comment delimiterスクリプトコメントのブロックを区切ります。
 //line comment delimiterスクリプトコメントの先頭を示します。
  比較
 ==equality2 つの式の等価性をテストします。
 >greater than2 つの式を比較し、expression1expression2 より大きいかどうかを判定します。大きい場合、結果は true になります。
 >=greater than or equal to2 つの式を比較し、expression1expression2 より大きいか等しい場合は trueexpression1expression2 より小さい場合は false と判定します。
 !=inequality等価 (==) 演算子の正反対が真であるかどうかをテストします。
 <less than2 つの式を比較し、expression1expression2 より小さいかどうかを判定します。小さい場合、結果は true になります。
 <=less than or equal to2 つの式を比較し、expression1expression2 より小さいまたは等しいかどうかを判定します。小さいか等しい場合、結果は true になります。
 ===strict equality自動データ変換を行わずに、2 つの式が等しいかどうかをテストします。
 !==strict inequality厳密な等価 (===) 演算子の正反対が真であるかどうかをテストします。
  論理
 &&logical ANDfalse である場合または false に変換できる場合は expression1 を返し、そうでない場合は expression2 を返します。
 &&=logical AND assignmentexpression1expression1 && expression2 の値を代入します。
 !logical NOT変数や式のブール値を反転します。
 ||logical ORtrue である場合または true に変換できる場合は expression1 を返し、そうでない場合は expression2 を返します。
 ||=logical OR assignmentexpression1expression1 || expression2 の値を代入します。
  その他
 []array access指定されたエレメント (a0 など) で新しい配列または多次元配列を初期化するか、配列内のエレメントにアクセスします。
  as最初のオペランドで指定された式が、2 番目のオペランドで指定されたデータ型のメンバーであるかどうかを評価します。
 ,commaexpression1、式 expression2、... の順に評価します。
 ?:conditionalexpression1 を評価し、expression1 の値が true である場合、結果は expression2 の値となり、そうでない場合は expression3 の値となります。
  deletereference によって指定されたオブジェクトプロパティを破棄します。処理後にプロパティが存在しない場合、結果は true になり、存在する場合は false になります。
 .dotクラス変数およびメソッドにアクセスし、オブジェクトプロパティの取得および設定を行い、読み込まれたパッケージまたはクラスを区切ります。
  inプロパティが特定のオブジェクトの一部であるかどうかを評価します。
  instanceof式のプロトタイプチェーンに function のプロトタイプオブジェクトが含まれるかどうかを評価します。
  isオブジェクトに特定のデータ型、クラス、またはインターフェイスと互換性があるかどうかを評価します。
 ::name qualifierプロパティ、メソッド、XML プロパティ、または XML 属性の名前空間を識別します。
  newクラスインスタンスをインスタンス化します。
 {}object initializer新しいオブジェクトを作成し、指定された namevalue のプロパティペアで初期化します。
 ()parenthesesパラメータに対してグループ化演算を実行するか、複数の式を順番に評価します。または、パラメータを囲み、引数として括弧の前の関数に渡します。
 /RegExp delimiter文字の前後を囲んで使用する場合、囲まれた文字はリテラル値を表し、変数やストリング、その他の ActionScript エレメントではなく、正規表現 (RegExp) と見なされます。
 :typeデータ型を割り当てるために使用します。この演算子は、変数の型、関数の戻り値の型、または関数パラメータの型を指定します。
  typeofexpression を評価し、式のデータ型を表すストリングを返します。
  void式を評価した後、その値を破棄して、undefined を返します。
  ストリング
 +concatenationストリングを連結 (結合) します。
 +=concatenation assignmentexpression1expression1 + expression2 の値を代入します。
 "string delimiter文字の前後を囲んで使用する場合、囲まれた文字はリテラル値を表し、変数や数値、その他の ActionScript エレメントではなく、ストリングと見なされます。
  XML
 @attribute identifierXML または XMLList オブジェクトの属性を識別します。
 { }braces (XML)XML または XMLList 初期化子で使用されている式を評価します。
 [ ]brackets (XML)XML または XMLList オブジェクトのプロパティまたは属性にアクセスします。
 +concatenation (XMLList)XML または XMLList 値を XMLList オブジェクトに連結 (結合) します。
 +=concatenation assignment (XMLList)XMLList オブジェクトの expression1expression1 + expression2 の値を割り当てます。
  delete (XML)reference で指定された XML エレメントまたは属性を削除します。
 ..descendant accessorXML または XMLList オブジェクトの子孫エレメントに移動します。@ 演算子と共に使用した場合は、一致する子孫の属性を検索します。
 .dot (XML)XML または XMLList オブジェクトの子エレメントに移動します。@ 演算子と共に使用した場合は、XML または XMLList オブジェクトの属性を返します。
 ( )parentheses (XML)E4X XML 構造内の式を評価します。
 < >XML literal tag delimiterXML リテラル内の XML タグを定義します。
演算子の詳細
+ addition 演算子
シンタックス
expression1 + expression2

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

数値式を加算します。両方の式が整数の場合、合計は整数になります。いずれかの式または両方の式が浮動小数点数の場合、合計は浮動小数点数になります。

1 つの式がストリングの場合、他の式はすべてストリングに変換され、加算の代わりに連結されます。式がストリングでも数値でもない場合は、Flash® Player により数値に変換されます。

オペランド
expression1:Number — 加算される値。
expression2:Number — 加算される値。

結果
Number — 整数または浮動小数点数。


例の使用法
このステートメントは、整数の 2 と 3 を加算します。
trace(2 + 3); // 5
次のステートメントは、浮動小数点数の 2.5 と 3.25 を加算します。
trace(2.5 + 3.25); // 5.75
次の例は、1 つの式がストリングの場合、その他のすべての式がストリングに変換され、連結されることを示しています。
trace("Number " + 8 + 0); // Number 80
動的フィールドおよびテキスト入力フィールドに関連付けられた変数のデータ型は String です。次の例では、変数 deposit はステージのテキスト入力フィールドです。ユーザーが預金額を入力すると、スクリプトは depositoldBalance に加算しようとします。ただし、deposit は String 型であるため、スクリプトは変数の値を合計せずに値を連結 (結合して 1 つのストリングを構成) します。
var oldBalance:Number = 1345.23; 
var currentBalance = deposit_txt.text + oldBalance; 
trace(currentBalance); 
たとえば、ユーザーが預金テキストフィールドに「475」と入力すると、trace() ステートメントは値 4751345.23 を [出力] パネルに表示します。これを修正するには、次に示すように Number() 関数を使用してストリングを数値に変換します。
var oldBalance:Number = 1345.23; 
var currentBalance:Number = Number(deposit_txt.text) + oldBalance;
trace(currentBalance);

関連項目

+= addition assignment 演算子  
シンタックス
expression1 += expression2

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

expression1expression1 + expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じ結果になります。

x += y; 
x = x + y; 
加算 (+) 演算子のすべての規則が、加算後代入 (+=) 演算子に適用されます。

オペランド
expression1:Number — 数値。
expression2:Number — 数値。

結果
Number — 加算した結果。


例の使用法
次に、数値に対して加算後代入 (+=) 演算子を使用する例を示します。
var x:Number = 5; 
var y:Number = 10; 
x += y; 
trace(x); // 15 

関連項目

[] array access 演算子  
シンタックス
myArray = [a0, a1,...aN]
myArray[i] = value 
myObject[propertyName]

Player のバージョン : Flash Player 9

指定されたエレメント (a0 など) で新しい配列または多次元配列を初期化するか、配列内のエレメントにアクセスします。配列アクセス演算子を使用すると、インスタンス、変数、およびオブジェクト名を動的に設定および取得できます。この演算子を使用してオブジェクトのプロパティにアクセスすることもできます。

シンタックス 1: 配列は、エレメントと呼ばれるプロパティを持つオブジェクトです。各エレメントはインデックスと呼ばれる番号で識別されます。配列を作成する場合は、エレメントを配列アクセス演算子 ([]) (角括弧) で囲みます。配列には、さまざまなタイプのエレメントを格納できます。たとえば、次の配列 employee には 3 つのエレメントがあります。最初のエレメントは数値、2 番目と 3 番目のエレメントはストリング (引用符内) です。

var employee:Array = [15, "Barbara", "Jay"]; 
括弧をネストすると、多次元配列をシミュレートできます。ネスト可能な配列の深さは、256 レベルまでです。次のコードでは、3 つのエレメントで構成される配列 ticTacToe を作成します。各エレメントはそれぞれが 3 つのエレメントで構成される配列になっています。
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; 
			
/* Select Debug > List Variables in test mode 
to see a list of the array elements.*/ 
シンタックス 2: 各エレメントに直接アクセスするには、エレメントのインデックスを [] (角括弧) で囲みます。また、配列に新しいエレメントを追加したり、既存のエレメントの値を変更または取得することもできます。次の例に示すように、配列の最初のインデックスは常に 0 です。
var my_array:Array = new Array(); 
my_array[0] = 15; 
my_array[1] = "Hello"; 
my_array[2] = true; 
次の例のように角括弧を使用して 4 番目のエレメントを追加できます。
my_array[3] = "George"; 
角括弧を使用して多次元配列のエレメントにアクセスできます。最初の角括弧のセットは元の配列のエレメントを示します。2 番目のセットはネストされた配列のエレメントを示します。次の trace() ステートメントでは、2 番目の配列 (インデックス 1) の 3 番目のエレメント (インデックス 2) を検索しています。
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; 
trace(ticTacToe[1][2]); // 6 
シンタックス 3: 配列アクセス演算子を使用して、オブジェクトのプロパティの値を動的に設定および取得できます。
var obj:Object = new Object();
obj.prop1 = "foo";
trace(obj["prop" + 1]); // foo
obj.prop2 = "bar";
for (j in obj) {
	trace(obj[j]);
} 
/* Output of for loop: 
foo
bar */

オペランド
myArray:Object — 配列の名前。
a0, a1,...aN:Object — 配列のエレメント。ネストされた配列を含む、すべてのネイティブタイプまたはオブジェクトインスタンスです。
i:Number — 0 以上の整数インデックス。
myObject:Object — オブジェクトの名前。
propertyName:String — オブジェクトのプロパティを指定するストリング。

結果
Object

シンタックス 1: 配列への参照。

シンタックス 2: 配列の値。ネイティブタイプまたはオブジェクトインスタンス (Array インスタンスを含む)。

シンタックス 3: オブジェクトのいずれかのプロパティ。ネイティブタイプまたはオブジェクトインスタンス (Array インスタンスを含む)。



例の使用法
次の例では、新しい空の Array オブジェクトを作成する 2 つの方法を示しています。最初の行で角括弧を使用しています。
var my_array:Array = []; 
var my_array:Array = new Array(); 

次の例では、3 つのエレメントを持つ employee_array という名前の配列を作成し、配列の 3 番目のエレメントを変更しています。

var employee_array = ["Barbara", "George", "Mary"]; 
trace(employee_array); // Barbara,George,Mary 
employee_array[2] = "Sam"; 
trace(employee_array); // Barbara,George,Sam 
次のコードでは、角括弧内の式を評価し、その結果を obj オブジェクトから取得する変数名として使用します。
var obj:Object = new Object();
obj.prop1 = "foo";
obj.prop2 = "bar";

for (var i:int = 1;i < 3;i++) {
    trace(obj["prop"+i]);
}
/* Output of for loop:
foo
bar */ 

関連項目

as 演算子  
シンタックス
expression as datatype

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

最初のオペランドで指定された式が、2 番目のオペランドで指定されたデータ型のメンバーであるかどうかを評価します。最初のオペランドがそのデータ型のメンバーである場合、結果は最初のオペランドになります。それ以外の場合、結果の値は null です。

2 番目のオペランドで使用される式は、評価結果がデータ型となる必要があります。

オペランド
expression:* — 指定されたデータ型に対してチェックする値。
datatype:Classexpression オペランドの評価に使用されるデータ型。型指定がないことを表す特殊な * 型は使用できません。

結果
Objectexpressiondatatype で指定されたデータ型のメンバーである場合、結果は expression になります。それ以外の場合、結果の値は null です。


例の使用法
次の例では、myArray という名前の簡単な配列を作成し、as 演算子をさまざまなデータ型で使用しています。
public var myArray:Array = ["one", "two", "three"];
trace(myArray as Array);  // one,two,three
trace(myArray as Number); // null
trace(myArray as int);    // null

関連項目

= assignment 演算子  
シンタックス
expression1 = expression2

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

expression2 の値 (右側のオペランド) を expression1 の変数、配列エレメント、またはプロパティに割り当てます。値による代入と、参照による代入があります。値による割り当てでは、expression2 の実際の値がコピーされ、expression1 に格納されます。値による割り当ては、expression2 がプリミティブな値、つまりデータ型が Boolean、Number、int、uint、または String のいずれかである場合に使用されます。参照による割り当てでは、expression2 への参照が expression1 に格納されます。一般に、参照による割り当ては new 演算子と組み合わせて使用されます。new 演算子ではメモリ内にオブジェクトが作成され、そのオブジェクトが格納されたメモリ位置への参照が変数に割り当てられます。

メモ : ActionScript 3.0 では、プリミティブな値を含むすべての値がオブジェクトであり、すべての割り当ては参照によって行われますが、プリミティブなオブジェクトには特別な演算子があり、値による割り当てと同様の動作をします。

オペランド
expression1:* — 変数、配列のエレメント、またはオブジェクトのプロパティ。
expression2:* — 任意の型の値。

結果
Object — 割り当てられた値、expression2


例の使用法
次の例では、値による割り当てを使用して、値 5 を変数 z に割り当てています。
var z:Number = 5;
次の例では、値による代入を使用して、値 "hello" を変数 z に代入しています。
var x:String;
x = "hello";
次の例では、参照による割り当てを使用して、moonsOfJupiter 変数を作成しています。この変数には、新たに作成された Array オブジェクトへの参照が格納されます。次に値による代入を使用し、"Callisto" という値を、変数 moonsOfJupiter で参照される配列の最初のエレメントにコピーしています。
var moonsOfJupiter:Array = new Array();
moonsOfJupiter[0] = "Callisto";
次の例では、参照による割り当てを使用して新しいオブジェクトを作成し、変数 mercury にこのオブジェクトへの参照を格納しています。次に、値による割り当てを使用して、mercury オブジェクトの diameter プロパティに値 3030 を割り当てています。
var mercury:Object = new Object();
mercury.diameter = 3030; // in miles
trace(mercury.diameter); // 3030
次の例は、上記の例の続きです。merkur ("mercury" のドイツ語) という変数を作成し、その変数に mercury の値を割り当てています。これにより、メモリ内の同じオブジェクトを参照する 2 つの変数が作成されました。同じオブジェクトを参照しているので、どちらの変数を使用しても、このオブジェクトのプロパティにアクセスできます。次に、マイルの代わりにキロメートルを使用するように、diameter プロパティを変更することもできます。
var merkur:Object = mercury;
merkur.diameter = 4878;  // in kilometers
trace(mercury.diameter); // 4878

関連項目

@ attribute identifier 演算子  
シンタックス
 myXML.@attributeName 

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

XML または XMLList オブジェクトの属性を識別します。たとえば、myXML.@id では、myXML XML オブジェクトの id という名前の属性が識別されます。属性にアクセスするには、myXML.attribute("id")myXML["@id"]、および myXML.@["id"] シンタックスを使用することもできます。推奨されるシンタックスは myXML.@id です。すべての属性名の XMLList オブジェクトを返すには、@* を使用します。ActionScript の予約語と名前が一致する属性を返すには、@ 演算子の代わりに attribute() メソッドを使用します。

オペランド
attributeName:* — 属性の名前。


例の使用法
最初の例では、@ (アットマーク) 演算子を使用して、エレメントの属性を識別しています。
var myXML:XML = 
    <item id = "42">
        <catalogName>Presta tube</catalogName>
        <price>3.99</price>
    </item>;

trace(myXML.@id); // 42
次の例では、すべての属性名を返しています。
var xml:XML =<example id='123' color='blue'/>
 var xml2:XMLList = xml.@*;
 trace(xml2 is XMLList); // true
 trace(xml2.length());  // 2
 for (var i:int = 0; i < xml2.length(); i++)
 { 
    trace(typeof(xml2[i]));    // xml
    trace(xml2[i].nodeKind()); // attribute
    trace(xml2[i].name());     // id and color
 } 
次の例では、ActionScript の予約語と名前が一致する属性を返しています。class は、ActionScript の予約語であるため、シンタックス xml.@class は使用できません。この場合は、シンタックス xml.attribute("class") を使用します。
var xml:XML = <example class='123'/>
trace(xml.attribute("class"));

関連項目

& bitwise AND 演算子  
シンタックス
expression1 & expression2

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

expression1expression2 を 32 ビット符号なし整数に変換し、整数パラメータをビット単位で論理積 (AND) 演算します。浮動小数点数は、小数点以下が切り捨てられて整数に変換されます。結果は、新しい 32 ビット整数です。

正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。

オペランド
expression1:Number — 数値、または評価結果が数値になる式。
expression2:Number — 数値、または評価結果が数値になる式。

結果
int — ビット演算の結果。


例の使用法
次の例では、数値のビット表現を比較して、13 (2 進数の 1101) および 11 (2 進数の 1011) をビット単位で論理積 (AND) 演算しています。結果の整数はビット列で構成されます。ビット列の値は、同じ位置にある両方のオペランドのビットが 1 である場合にのみ 1 となります。
var insert:Number = 13; 
var update:Number = 11; 
trace(insert & update); // 9 (or 1001 binary) 
13 (2 進数の 1101) および 11 (2 進数の 1011) のビット単位の論理積 (AND) は、最初と最後のビットだけが両方とも 1 であるため、9 となります。
  1101
& 1011
  ----
  1001

次の例は、戻り値の変換の動作を示しています。

trace(0xFFFFFFFF); // 4294967295 
trace(0xFFFFFFFF & 0xFFFFFFFF); // -1 
trace(0xFFFFFFFF & -1); // -1 
trace(4294967295 & -1); // -1 
trace(4294967295 & 4294967295); // -1 

関連項目

&= bitwise AND assignment 演算子  
シンタックス
expression1 &= expression2

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

expression1expression1 & expression2 の値を代入します。たとえば、次の 2 つの式は同じです。

x &= y; 
x = x & y; 

オペランド
expression1:Number — 数値、または評価結果が数値になる式。
expression2:Number — 数値、または評価結果が数値になる式。

結果
intexpression1 & expression2 の値。


例の使用法
次の例では、x に値 9 が割り当てられます。
var x:Number = 15; 
var y:Number = 9; 
trace(x &= y); // 9 

関連項目

<< bitwise left shift 演算子  
シンタックス
expression1 << shiftCount

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

expression1shiftCount を 32 ビット整数に変換し、shiftCount の変換により生成された整数で指定される桁数だけ expression1 内のすべてのビットを左にシフトします。この演算の結果として空にされるビット位置には、0 が埋められます。シフト後、左端のビットは破棄されます。値を 1 桁左にシフトすることは、2 を掛けることと同じ意味になります。

浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。

結果が負の整数である場合、結果を uint 型の変数に割り当てようとすると、ランタイムエラーが発生します。ActionScript には "符号なしビット単位の左シフト" 演算子はありませんが、uint(expression1 << shiftCount) を使用して同様の結果を実現し、ランタイムエラーを回避できます。

var num1:uint = 0xFF;
var num2:uint = uint(num1 << 24); // uint() prevents runtime error

オペランド
expression1:Number — 左にシフトされる数値または式。
shiftCount:Number — 0 ~ 31 の整数に変換される数値または式。

結果
int — ビット演算の結果。


例の使用法
次の例では、整数 1 を左に 10 ビットシフトします。
x = 1 << 10
ビット単位の左シフト演算子の結果は 1024 となります。これは、10 進数の 1 が 2 進数の 1 に等しく、2 進数の 1 を左に 10 ビットシフトすると 10000000000 となり、これを 10 進数で表すと 1024 になるためです。
00000000001 binary 
<<          10 decimal
--------------
10000000000 binary equals 1024 decimal 

次の例では、整数 7 を左に 8 ビットシフトします。

x = 7 << 8
ビット単位の左シフト演算子の結果は 1792 となります。これは、10 進数の 7 が 2 進数の 111 に等しく、2 進数の 111 を左に 10 ビットシフトすると 11100000000 となり、これを 10 進数で表すと 1792 になるためです。
00000000111 binary 
<<           8 decimal
--------------
11100000000 binary equals 1792 decimal 

次の trace ステートメントでは、ビットを左に 3 ビットシフトしています。

// 1 binary == 0001 
// 8 binary == 1000 
trace(1 << 3); // 8 

関連項目

<<= bitwise left shift and assignment 演算子  
シンタックス
expression1 <<= expression2

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

ビット単位の左シフト (<<=) 演算を行い、その内容を結果として expression1 に格納します。次の 2 つの式は等価です。

A <<= B
A = (A << B)

オペランド
expression1:Number — 左にシフトされる数値または式。
expression2:Number — 0 ~ 31 の整数に変換される数値または式。

結果
int — ビット演算の結果。


例の使用法
次の例では、ビット単位の左シフト後代入 (<<=) 演算子を使用して、すべてのビットを 1 桁ずつ左にシフトしています。
var x:Number = 4; 
// Shift all bits one slot to the left. 
x <<= 1; 
trace(x); // 8 
// 4 decimal = 0100 binary 
// 8 decimal = 1000 binary 

関連項目

~ bitwise NOT 演算子  
シンタックス
~expression

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

expression を 32 ビット符号付き整数に変更し、ビット単位で 1 の補数を適用します。つまり、0 を保持するすべてのビットは 1 に設定され、1 を保持するすべてのビットは 0 に設定されます。結果は、符号付き 32 ビット整数です。この演算子は、1 の補数演算子またはビット単位の補数演算子とも呼ばれます。

たとえば、0x7777 という 16 進数値は、2 進数では次のように表現されます。

0111011101110111

この 16 進値をビット単位で符号反転 (~0x7777) すると、次の 2 進数になります。

1000100010001000

これは、16 進数の 0x8888 に相当します。したがって、~0x7777 は 0x8888 となります。

ビット単位演算子は、フラグビットを表現する場合に最もよく使用されます (ブール値をそれぞれ 1 ビットにパックすることができます)。

浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。

オペランド
expression:Number — 変換される数値。

結果
int — ビット演算の結果。


例の使用法
次に、フラグビットでビット単位の否定 (NOT) (~) 演算子を使用する例を示します。
var ReadOnlyFlag:int = 0x0001; // defines bit 0 as the read-only flag 
var flags:int = 0; 
trace(flags); 
/* To set the read-only flag in the flags variable, 
   the following code uses the bitwise OR: 
*/
flags |= ReadOnlyFlag; 
trace(flags); 
/* To clear the read-only flag in the flags variable, 
   first construct a mask by using bitwise NOT on ReadOnlyFlag. 
   In the mask, every bit is a 1 except for the read-only flag. 
   Then, use bitwise AND with the mask to clear the read-only flag. 
   The following code constructs the mask and performs the bitwise AND: 
*/ 
flags &= ~ReadOnlyFlag; 
trace(flags); 
// 0 1 0 

関連項目

| bitwise OR 演算子  
シンタックス
expression1 | expression2

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

expression1expression2 を 32 ビット符号なし整数に変換し、expression1expression2 の対応ビットの少なくとも一方が 1 である各ビット位置に 1 を設定します。

浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。

オペランド
expression1:Number — 数値。
expression2:Number — 数値。

結果
int — ビット演算の結果。


例の使用法
次に、ビット単位の論理和 (OR) (|) 演算の例を示します。
// 15 decimal = 1111 binary 
var a:Number = 15; 
// 9 decimal = 1001 binary 
var b:Number = 9; 
// 1111 | 1001 = 1111 
trace(a | b); // returns 15 decimal (1111 binary) 
ビット単位の論理和 (|) と通常の論理和 (||) を混同しないようにしてください。

関連項目

|= bitwise OR assignment 演算子  
シンタックス
expression1 |= expression2

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

expression1expression1 | expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じです。

x |= y; 
x = x | y; 

オペランド
expression1:Number — 変換される数値。
expression2:Number — 変換される数値。

結果
int — ビット演算の結果。


例の使用法
次にビット単位の排他的論理和 (OR) 代入 (|=) 演算子の使用例を示します。
// 15 decimal = 1111 binary 
var a:Number = 15; 
// 9 decimal = 1001 binary 
var b:Number = 9; 
// 1111 |= 1001 = 1111 
trace(a |= b); // returns 15 decimal (1111 binary) 

関連項目

>> bitwise right shift 演算子  
シンタックス
expression >> shiftCount

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

expressionshiftCount を 32 ビット整数に変換し、shiftCount の変換により生成された整数で指定される桁数だけ expression 内のすべてのビットを右にシフトします。シフト後、右端のビットは破棄されます。元の式の符号を保持するには、expression の最上位ビット (左端のビット) が 0 である場合は左側のビットに 0 を置き、最上位ビットが 1 である場合は 1 を置きます。値を右に 1 つシフトすることは、2 で割って剰余を切り捨てることと同じです。

浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。

オペランド
expression:Number — 右にシフトされる数値または式。
shiftCount:Number — 0 ~ 31 の整数に変換される数値または式。

結果
int — ビット演算の結果。


例の使用法
次の例では、65535 を 32 ビット整数に変換し、右側に 8 ビットシフトします。結果は 10 進数の 255 です。
var a:Number = 65535 >> 8; 
trace(a); // 255
これは、10 進数の 65535 が 2 進数の 00000000000000001111111111111111 (16 個の 0 と 16 個の 1) に等しく、右に 8 ビットシフトすると、最下位の 8 ビット (右端のビット) が切り捨てられるためです。65535 は正であるため、シフトによって空いたビット位置 (左端の 8 ビット) は 0 で埋められます。結果は 2 進数の 00000000000000000000000011111111 (24 個の 0 と 8 個の 1) で、32 ビットの整数 255 になります。
00000000000000001111111111111111 binary (65535 decimal)
>>                                 8 decimal
--------------------
00000000000000000000000011111111 binary (255 decimal)
次の例では、-8 を 32 ビット整数に変換し、右側に 1 ビットシフトしています。結果は 10 進数の -4 です。
var a:Number = -8 >> 1;
trace(a); // -4
これは、10 進数の -8 が 2 進数の 11111111111111111111111111111000 (29 個の 1 と 3 個の 0) に等しく、右に 1 ビットシフトすると、最下位のビット (右端のビット) が切り捨てられるためです。-8 は負であるため、シフトによって空いたビット位置 (左端の 1 ビット) は 1 で埋められます。結果は 2 進数の 11111111111111111111111111111100 (30 個の 1 と 2 個の 0) で、32 ビットの整数 -4 になります。
11111111111111111111111111111000 binary (-8 decimal)
>>                                1 decimal
--------------------
11111111111111111111111111111100 binary (-4 decimal)

関連項目

>>= bitwise right shift and assignment 演算子  
シンタックス
expression >>= shiftCount

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

ビット単位の右シフト演算を行い、結果を expression に格納します。

次の 2 つのステートメントは等価です。

A >>= B; 
A = (A >> B);

オペランド
expression:Number — 右にシフトされる数値または式。
shiftCount:Number — 0 ~ 31 の整数に変換される数値または式。

結果
int — ビット演算の結果。


例の使用法
次のコードは、ビット単位の右シフト後代入 (>>=) 演算子の使用例です。
function convertToBinary(numberToConvert:Number):String { 
    var result:String = ""; 
    for (var i = 0; i < 32; i++) { 
        // Extract least significant bit using bitwise AND. 
        var lsb:Number = numberToConvert & 1; 
        // Add this bit to the result.
        result = (lsb ? "1" : "0")+result; 
        // Shift numberToConvert right by one bit, to see next bit. 
        numberToConvert >>= 1; 
    } 
    return result; 
} 
trace(convertToBinary(479)); 
// Returns the string 00000000000000000000000111011111. 
// This string is the binary representation of the decimal number 479.

関連項目

>>> bitwise unsigned right shift 演算子  
シンタックス
expression >>> shiftCount

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

左側のビットは常に 0 で埋められるため、元の式の符号が保持されないという点を除いて、ビット単位の右シフト (>>) 演算子と同じです。

浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

結果は 32 ビットの符号なし整数として解釈されるため、0 ~ 4294967295 の範囲の整数になります。

メモ : ActionScript には補完的な "ビット単位の符号なし左シフト" 演算子はありませんが、uint(expression << shiftCount) を使用して同様の結果を実現することができます。

オペランド
expression:Number — 右にシフトされる数値または式。
shiftCount:Number — 0 ~ 31 の整数に変換される数値または式。

結果
uint — ビット演算の結果。


例の使用法
次の例では、-1 を 32 ビット整数に変換し、右側に 1 ビットシフトします。
var a:Number = -1 >>> 1; 
trace(a); // 2147483647 
これは、10 進数の -1 が 2 進数の 11111111111111111111111111111111 (1 が 32 個) であり、右に符号なしで 1 ビットシフトすると最下位 (右端) ビットが切り捨てられ、最上位 (左端) ビットが 0 で埋められるためです。結果は 2 進数の 01111111111111111111111111111111 で、32 ビット整数の 2147483647 になります。

関連項目

>>>= bitwise unsigned right shift and assignment 演算子  
シンタックス
expression >>>= shiftCount

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

ビット単位の符号なし右シフト演算を行い、結果を expression に格納します。次の 2 つのステートメントは等価です。

A >>>= B; 
A = (A >>> B); 

オペランド
expression:Number — 右にシフトされる数値または式。
shiftCount:Number — 0 ~ 31 の整数に変換される数値または式。

結果
uint — ビット演算の結果。


例の使用法
次の例では、-1 を 32 ビット整数に変換し、右側に 1 ビットシフトします。
var a:Number = -1;
a >>>= 1; 
trace(a); // 2147483647 
これは、10 進数の -1 が 2 進数の 11111111111111111111111111111111 (1 が 32 個) であり、右に符号なしで 1 ビットシフトすると最下位 (右端) ビットが切り捨てられ、最上位 (左端) ビットが 0 で埋められるためです。結果は 2 進数の 01111111111111111111111111111111 で、32 ビット整数の 2147483647 になります。

関連項目

^ bitwise XOR 演算子  
シンタックス
expression1 ^ expression2

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

expression1expression2 を 32 ビット符号なし整数に変換し、expression1expression2 の対応ビットのいずれか一方のみが 1 である各ビット位置に 1 を設定します。

浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。

オペランド
expression1:Number — 数値、または評価結果が数値になる式。
expression2:Number — 数値、または評価結果が数値になる式。

結果
int — ビット演算の結果。


例の使用法
次の例では、ビット単位の排他的論理和 (XOR) 演算子を 10 進数である 15 および 9 に適用し、その結果を変数 a に割り当てます。
// 15 decimal = 1111 binary 
// 9 decimal = 1001 binary 
var a:Number = 15 ^ 9; 
trace(a); 
// 1111 ^ 1001 = 0110 
// returns 6 decimal (0110 binary) 

関連項目

^= bitwise XOR assignment 演算子  
シンタックス
expression1 ^= expression2

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

expression1expression1 ^ expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じです。

x ^= y 
x = x ^ y 

オペランド
expression1:Number — 数値、または評価結果が数値になる式。
expression2:Number — 数値、または評価結果が数値になる式。

結果
int — ビット演算の結果。


例の使用法
次の例は、ビット単位の排他的論理和 (XOR) (^=) 演算です。
// 15 decimal = 1111 binary 
var a:Number = 15; 
// 9 decimal = 1001 binary 
var b:Number = 9; 
trace(a ^= b); // returns 6 decimal (0110 binary) 

関連項目

/*..*/ block comment delimiter 演算子  
シンタックス
/* コメント */
/* コメント
   コメント */

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

スクリプトコメントのブロックを区切ります。開始区切り記号 (/*) と終了区切り記号 (*/) の間の文字はコメントと解釈され、ActionScript コンパイラでは無視されます。コメントが連続した複数行の場合はこれらの区切り記号を使用し、1 行の場合は // の区切り記号を使用します。

終了ブロックコメント区切り記号 (*/) が抜けている場合や、コメントをネストしようとした場合は、エラーメッセージが表示されます。開始区切り記号 (/*) の後に開始区切り記号が何個ある場合でも、最初の終了区切り記号 (*/) でコメントの終わりと見なされます。

オペランド
comment:* — 任意の文字。


例の使用法
次のスクリプトでは、スクリプトの先頭にブロックコメント区切り記号を使用しています。
/* records the X and Y positions of 
the ball and bat movie clips */ 
var ballX:Number = ball_mc._x; 
var ballY:Number = ball_mc._y; 
var batX:Number = bat_mc._x; 
var batY:Number = bat_mc._y; 
次のように、コメントをネストしようとすると、エラーメッセージが表示されます。
/* This is an attempt to nest comments. 
/* But the first closing tag will be paired 
with the first opening tag */ 
and this text will not be interpreted as a comment */ 

関連項目

{ } braces (XML) 演算子  
シンタックス
 myXML = <{tagName} {attributeName} = {attributeValue}>{content}</{tagName}>

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

XML または XMLList 初期化子で使用されている式を評価します。XML または XMLList 初期化子は、XML または XMLList 型の変数に割り当てられるリテラル値です。XML { および } 演算子で区切られる式は、XML または XMLList 初期化子でリテラルの名前または値の代わりに使用できます。式は、tagNameattributeNameattributeValue、および content の代わりに使用できます。

オペランド
myXML:* — XML または XMLList オブジェクト。
tagName:* — 評価結果が XML タグの名前になる式。
attributeName:* — 評価結果が XML 属性の名前になる式。
attributeValue:* — 評価結果が XML 属性の値になる式。
content:* — 評価結果が XML タグの内容になる式。


例の使用法
次の例では、XML リテラルの定義に { および } 演算子を使用しています。
var tagname:String = "item"; 
var attributename:String = "id"; 
var attributevalue:String = "5"; 
var content:String = "Chicken"; 
var x:XML = <{tagname} {attributename}={attributevalue}>{content}</{tagname}>; 
trace(x.toXMLString()); // <item id="5">Chicken</item>

関連項目

[ ] brackets (XML) 演算子  
シンタックス
 myXML[expression]

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

XML または XMLList オブジェクトのプロパティまたは属性にアクセスします。括弧演算子を使用すると、ドット (.) 演算子でアクセスできないプロパティ名にアクセスできます。

オペランド
myXML:* — XML または XMLList オブジェクト。
expression:* — 評価結果が XML タグまたは属性の名前になる式。


例の使用法
次の例では、[ および ] 演算子を使用して、XML プロパティにアクセスしています。 これらのプロパティは、タグ名にハイフンが含まれているため、ドット演算子ではアクセスできません。
var myXML:XML = <a><foo-bar>44</foo-bar></a>;
trace(myXML["foo-bar"]);

関連項目

, comma 演算子  
シンタックス
(expression1, expression2[, expressionN... ])

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

expression1、式 expression2、... の順に評価します。通常、この演算子は for ループステートメントで使用します。括弧 () 演算子と組み合わせて使用することもあります。

オペランド
expression1:* — 評価される式。
expression2:* — 評価される式。
expressionN:* — 上記に加えて評価される任意の個数の式。

結果
Object — 評価される式の値。


例の使用法
次の例では、for ループでカンマ (,) 演算子を使用しています。
for (i = 0, j = 0; i < 3 && j < 3; i++, j+=2) { 
    trace("i = " + i + ", j = " + j); 
} 
// output: 
// i = 0, j = 0 
// i = 1, j = 2
次の例では、カンマ演算子を括弧演算子なしで使用し、カンマ演算子が代入 (=) 演算子より優先順位が低いことを示しています。
var v:Number = 0; 
v = 4, 5, 6; 
trace(v); // 4 
次の例では、カンマ演算子を括弧と共に使用し、カンマ演算子が最後の式の値を返すことを示しています。
var v:Number = 0; 
v = (4, 5, 6); 
trace(v); // 6 
次の例では、カンマ演算子を括弧なしで使用し、カンマ演算子によりすべての式が順番に評価されることを示しています。代入 (=) 演算子はカンマ演算子より優先順位が高いため、最初の式 v + 4 は変数 v に割り当てられます。2 番目の式 z++ では、z に 1 を加えています。
var v:Number = 0; 
var z:Number = 0; 
v = v + 4 , z++, v + 6; 
trace(v); // 4 
trace(z); // 1 
次の例は、括弧が追加されている以外は前の例と同じです。括弧の追加により演算の順序が変わり、カンマ演算子が代入 (=) 演算子より先に評価されます。
var v:Number = 0; 
var z:Number = 0; 
v = (v + 4, z++, v + 6); 
trace(v); // 6 
trace(z); // 1 

関連項目

+ concatenation 演算子  
シンタックス
expression1 + expression2

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

ストリングを連結 (結合) します。ある式がストリングの場合、他の式はすべてストリングに変換され、連結されます。

両方の式が数値である場合、この演算子は加算演算子として動作します。

オペランド
expression1:String — 連結されるストリング。
expression2:String — 連結されるストリング。

結果
String — 連結されたストリング。


例の使用法
次の例では、2 つのストリングを連結します。
var lastName:String = "Cola"; 
var instrument:String = "Drums"; 
trace(lastName + " plays " + instrument); // Cola plays Drums 
次の例は、1 つの式がストリングの場合、その他のすべての式がストリングに変換され、連結されることを示しています。
trace("Number " + 8 + 0); // Number 80
次の例は、ストリング式の右側にある数値がストリングに変換されるため、数値の合計が計算されないことを示しています。
var a:String = 3 + 10 + "asdf"; 
trace(a); // 13asdf 
var b:String = "asdf" + 3 + 10; 
trace(b); // asdf310 

関連項目

+ concatenation (XMLList) 演算子  
シンタックス
expression1 + expression2

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

XML または XMLList 値を XMLList オブジェクトに連結 (結合) します。両方のオペランドが XML または XMLList 値の場合のみ、結果が XMLList オブジェクトになります。

オペランド
expression1:* — XML または XMLList 値。
expression2:* — XML または XMLList 値。

結果
XMLList — 連結された XMLList オブジェクト。


例の使用法
次に、XMLList (+) (連結) 演算子の使用例を示します。
var x1:XML = 
        <employee id = "42">
            <firstName>Joe</firstName>
            <lastName>Smith</lastName>
        </employee>;

var x2:XML = 
        <employee id = "43">
            <firstName>Susan</firstName>
            <lastName>Jones</lastName>
        </employee>;

var myXMLList:XMLList = x1 + x2;
    
trace(myXMLList.toXMLString()); 

trace ステートメントの出力は次のようになります。

<employee id = "42">
     <firstName>Joe</firstName>
     <lastName>Smith</lastName>
</employee>
<employee id = "43">
     <firstName>Susan</firstName>
     <lastName>Jones</lastName>
</employee>
     

関連項目

+= concatenation assignment 演算子  
シンタックス
expression1 += expression2

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

expression1expression1 + expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じ結果になります。

x += y; 
x = x + y;
連結 (+) 演算子のすべての規則が、連結後代入 (+=) 演算子に適用されます。大量の内容が含まれる TextField の場合は特に、TextFieldtext プロパティに連結後代入を使用する (つまり someTextField.text += moreText) よりも、TextField.appendText() を使用する方がはるかに効率的です。

オペランド
expression1:String — ストリング。
expression2:String — ストリング。

結果
Number — 連結した結果。


例の使用法
次の例では、+= 演算子をストリング式で使用しています。
var x1:String = "My name is "; 
x1 += "Gilbert"; 
trace(x1); // My name is Gilbert 

関連項目

+= concatenation assignment (XMLList) 演算子  
シンタックス
expression1 += expression2

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

XMLList オブジェクトの expression1expression1 + expression2 の値を割り当てます。たとえば、次の 2 つのステートメントは同じ結果になります。

x += y; 
x = x + y; 
XMLList 連結 (+) 演算子のすべての規則が、XMLList 連結後代入 (+=) 演算子に適用されます。

オペランド
expression1:XMLList — 新しい値を加算する XMLList オブジェクト。
expression2:* — XML または XMLList 値。