記号演算子は式の値の組み合わせ、比較、または修正の方法を指定する文字です。
シンタックス
| expression1 + expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
数値式を加算します。両方の式が整数の場合、合計は整数になります。いずれかの式または両方の式が浮動小数点数の場合、合計は浮動小数点数になります。
1 つの式がストリングの場合、他の式はすべてストリングに変換され、加算の代わりに連結されます。式がストリングでも数値でもない場合は、Flash® Player により数値に変換されます。
オペランド
結果
例
例の使用法
このステートメントは、整数の 2 と 3 を加算します。
次のステートメントは、浮動小数点数の 2.5 と 3.25 を加算します。
trace(2.5 + 3.25); // 5.75
次の例は、1 つの式がストリングの場合、その他のすべての式がストリングに変換され、連結されることを示しています。
trace("Number " + 8 + 0); // Number 80
動的フィールドおよびテキスト入力フィールドに関連付けられた変数のデータ型は String です。次の例では、変数 deposit はステージのテキスト入力フィールドです。ユーザーが預金額を入力すると、スクリプトは deposit を oldBalance に加算しようとします。ただし、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);
関連項目
シンタックス
| expression1 += expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 に expression1 + expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じ結果になります。
x += y;
x = x + y;
加算 (+) 演算子のすべての規則が、加算後代入 (
+=) 演算子に適用されます。
オペランド
結果
例
例の使用法
次に、数値に対して加算後代入 (
+=) 演算子を使用する例を示します。
var x:Number = 5;
var y:Number = 10;
x += y;
trace(x); // 15
関連項目
シンタックス
| 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 番目のエレメントを追加できます。
角括弧を使用して多次元配列のエレメントにアクセスできます。最初の角括弧のセットは元の配列のエレメントを示します。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 */
関連項目
シンタックス
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
最初のオペランドで指定された式が、2 番目のオペランドで指定されたデータ型のメンバーであるかどうかを評価します。最初のオペランドがそのデータ型のメンバーである場合、結果は最初のオペランドになります。それ以外の場合、結果の値は null です。
2 番目のオペランドで使用される式は、評価結果がデータ型となる必要があります。
オペランド
| expression:* —
指定されたデータ型に対してチェックする値。
|
| datatype:Class —
expression オペランドの評価に使用されるデータ型。型指定がないことを表す特殊な * 型は使用できません。
|
結果
| Object — expression が datatype で指定されたデータ型のメンバーである場合、結果は 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
関連項目
シンタックス
| 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 に割り当てています。
次の例では、値による代入を使用して、値 "
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
関連項目
シンタックス
| 言語バージョン : | 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() メソッドを使用します。
オペランド
例
例の使用法
最初の例では、
@ (アットマーク) 演算子を使用して、エレメントの属性を識別しています。
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"));
関連項目
シンタックス
| expression1 & expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 と expression2 を 32 ビット符号なし整数に変換し、整数パラメータをビット単位で論理積 (AND) 演算します。浮動小数点数は、小数点以下が切り捨てられて整数に変換されます。結果は、新しい 32 ビット整数です。
正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。
結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。
オペランド
| expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果
例
例の使用法
次の例では、数値のビット表現を比較して、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
関連項目
シンタックス
| expression1 &= expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 に expression1 & expression2 の値を代入します。たとえば、次の 2 つの式は同じです。
x &= y;
x = x & y;
オペランド
| expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果
| int — expression1 & expression2 の値。 |
例
例の使用法
次の例では、
x に値 9 が割り当てられます。
var x:Number = 15;
var y:Number = 9;
trace(x &= y); // 9
関連項目
シンタックス
| expression1 << shiftCount |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 と shiftCount を 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 の整数に変換される数値または式。
|
結果
例
例の使用法
次の例では、整数 1 を左に 10 ビットシフトします。
ビット単位の左シフト演算子の結果は 1024 となります。これは、10 進数の 1 が 2 進数の 1 に等しく、2 進数の 1 を左に 10 ビットシフトすると 10000000000 となり、これを 10 進数で表すと 1024 になるためです。
00000000001 binary
<< 10 decimal
--------------
10000000000 binary equals 1024 decimal
次の例では、整数 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
関連項目
シンタックス
| expression1 <<= expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビット単位の左シフト (<<=) 演算を行い、その内容を結果として expression1 に格納します。次の 2 つの式は等価です。
A <<= B
A = (A << B)
オペランド
| expression1:Number —
左にシフトされる数値または式。
|
| expression2:Number —
0 ~ 31 の整数に変換される数値または式。
|
結果
例
例の使用法
次の例では、ビット単位の左シフト後代入 (<<=) 演算子を使用して、すべてのビットを 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
関連項目
シンタックス
| 言語バージョン : | 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 の範囲の整数になります。
オペランド
結果
例
例の使用法
次に、フラグビットでビット単位の否定 (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
関連項目
シンタックス
| expression1 | expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 と expression2 を 32 ビット符号なし整数に変換し、expression1 と expression2 の対応ビットの少なくとも一方が 1 である各ビット位置に 1 を設定します。
浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。
結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。
オペランド
結果
例
例の使用法
次に、ビット単位の論理和 (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)
ビット単位の論理和 (
|) と通常の論理和 (
||) を混同しないようにしてください。
関連項目
シンタックス
| expression1 |= expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 に expression1 | expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じです。
x |= y;
x = x | y;
オペランド
結果
例
例の使用法
次にビット単位の排他的論理和 (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)
関連項目
シンタックス
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression と shiftCount を 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 の整数に変換される数値または式。
|
結果
例
例の使用法
次の例では、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)
関連項目
シンタックス
| expression >>= shiftCount |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビット単位の右シフト演算を行い、結果を expression に格納します。
次の 2 つのステートメントは等価です。
A >>= B;
A = (A >> B);
オペランド
| expression:Number —
右にシフトされる数値または式。
|
| shiftCount:Number —
0 ~ 31 の整数に変換される数値または式。
|
結果
例
例の使用法
次のコードは、ビット単位の右シフト後代入 (
>>=) 演算子の使用例です。
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.
関連項目
シンタックス
| 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 の整数に変換される数値または式。
|
結果
例
例の使用法
次の例では、-1 を 32 ビット整数に変換し、右側に 1 ビットシフトします。
var a:Number = -1 >>> 1;
trace(a); // 2147483647
これは、10 進数の -1 が 2 進数の 11111111111111111111111111111111 (1 が 32 個) であり、右に符号なしで 1 ビットシフトすると最下位 (右端) ビットが切り捨てられ、最上位 (左端) ビットが 0 で埋められるためです。結果は 2 進数の 01111111111111111111111111111111 で、32 ビット整数の 2147483647 になります。
関連項目
シンタックス
| expression >>>= shiftCount |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビット単位の符号なし右シフト演算を行い、結果を expression に格納します。次の 2 つのステートメントは等価です。
A >>>= B;
A = (A >>> B);
オペランド
| expression:Number —
右にシフトされる数値または式。
|
| shiftCount:Number —
0 ~ 31 の整数に変換される数値または式。
|
結果
例
例の使用法
次の例では、-1 を 32 ビット整数に変換し、右側に 1 ビットシフトします。
var a:Number = -1;
a >>>= 1;
trace(a); // 2147483647
これは、10 進数の -1 が 2 進数の 11111111111111111111111111111111 (1 が 32 個) であり、右に符号なしで 1 ビットシフトすると最下位 (右端) ビットが切り捨てられ、最上位 (左端) ビットが 0 で埋められるためです。結果は 2 進数の 01111111111111111111111111111111 で、32 ビット整数の 2147483647 になります。
関連項目
シンタックス
| expression1 ^ expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 と expression2 を 32 ビット符号なし整数に変換し、expression1 と expression2 の対応ビットのいずれか一方のみが 1 である各ビット位置に 1 を設定します。
浮動小数点数は、小数点以下が切り捨てられ、整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進数に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進数に変換されます。最小値より小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。
結果は 32 ビットの 2 の補数として解釈されるため、-2147483648 ~ 2147483647 の範囲の整数になります。
オペランド
| expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果
例
例の使用法
次の例では、ビット単位の排他的論理和 (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)
関連項目
シンタックス
| expression1 ^= expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 に expression1 ^ expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じです。
x ^= y
x = x ^ y
オペランド
| expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果
例
例の使用法
次の例は、ビット単位の排他的論理和 (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)
関連項目
シンタックス
| /* コメント */ /* コメント コメント */ |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
スクリプトコメントのブロックを区切ります。開始区切り記号 (/*) と終了区切り記号 (*/) の間の文字はコメントと解釈され、ActionScript コンパイラでは無視されます。コメントが連続した複数行の場合はこれらの区切り記号を使用し、1 行の場合は // の区切り記号を使用します。
終了ブロックコメント区切り記号 (*/) が抜けている場合や、コメントをネストしようとした場合は、エラーメッセージが表示されます。開始区切り記号 (/*) の後に開始区切り記号が何個ある場合でも、最初の終了区切り記号 (*/) でコメントの終わりと見なされます。
オペランド
例
例の使用法
次のスクリプトでは、スクリプトの先頭にブロックコメント区切り記号を使用しています。
/* 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 */
関連項目
シンタックス
| myXML = <{tagName} {attributeName} = {attributeValue}>{content}</{tagName}> |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
XML または XMLList 初期化子で使用されている式を評価します。XML または XMLList 初期化子は、XML または XMLList 型の変数に割り当てられるリテラル値です。XML { および } 演算子で区切られる式は、XML または XMLList 初期化子でリテラルの名前または値の代わりに使用できます。式は、tagName、attributeName、attributeValue、および 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>
関連項目
シンタックス
| 言語バージョン : | 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"]);
関連項目
シンタックス
| (expression1, expression2[, expressionN... ]) |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
式 expression1、式 expression2、... の順に評価します。通常、この演算子は for ループステートメントで使用します。括弧 () 演算子と組み合わせて使用することもあります。
オペランド
| expression1:* —
評価される式。
|
| expression2:* —
評価される式。
|
| expressionN:* —
上記に加えて評価される任意の個数の式。
|
結果
例
例の使用法
次の例では、
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
関連項目
シンタックス
| expression1 + expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ストリングを連結 (結合) します。ある式がストリングの場合、他の式はすべてストリングに変換され、連結されます。
両方の式が数値である場合、この演算子は加算演算子として動作します。
オペランド
| expression1:String —
連結されるストリング。
|
| expression2: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
関連項目
シンタックス
| expression1 + expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
XML または XMLList 値を XMLList オブジェクトに連結 (結合) します。両方のオペランドが XML または XMLList 値の場合のみ、結果が XMLList オブジェクトになります。
オペランド
| expression1:* —
XML または XMLList 値。
|
| expression2:* —
XML または 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>
関連項目
シンタックス
| expression1 += expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
expression1 に expression1 + expression2 の値を代入します。たとえば、次の 2 つのステートメントは同じ結果になります。
x += y;
x = x + y;
連結 (
+) 演算子のすべての規則が、連結後代入 (
+=) 演算子に適用されます。大量の内容が含まれる
TextField の場合は特に、
TextField の
text プロパティに連結後代入を使用する (つまり
someTextField.text += moreText) よりも、
TextField.appendText() を使用する方がはるかに効率的です。
オペランド
結果
例
例の使用法
次の例では、
+= 演算子をストリング式で使用しています。
var x1:String = "My name is ";
x1 += "Gilbert";
trace(x1); // My name is Gilbert
関連項目
シンタックス
| expression1 += expression2 |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
XMLList オブジェクトの expression1 に expression1 + expression2 の値を割り当てます。たとえば、次の 2 つのステートメントは同じ結果になります。
x += y;
x = x + y;
XMLList 連結 (
+) 演算子のすべての規則が、XMLList 連結後代入 (
+=) 演算子に適用されます。
オペランド
| expression1:XMLList —
新しい値を加算する XMLList オブジェクト。
|
| expression2:* —
XML または XMLList 値。
|