記号演算子は式の値の組み合わせ、比較、または修正の方法を指定する文字です。
使用方法 | expression1 + expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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]
|
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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)
関連項目
使用方法 | /* comment */ /* comment comment */ |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | 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 |
| ランタイムバージョン: | Flash Player 9 |
XML または XMLList 値を XMLList オブジェクトに連結(結合)します。両方のオペランドが XML または XMLList 値の場合のみ、結果が XMLList オブジェクトになります。
オペランド | expression1:* —
XML または XMLList 値。
|
| expression2:* —
XML または XMLList 値。
|
結果 | XMLList — The concatenated XMLList object. |
例 例の使用法 The following example shows how to use the XMLList (
+) (concatenation) operator:
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());
The trace statement produces the following output:
<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 |
| ランタイムバージョン: | Flash Player 9 |
expression1 に expression1 + expression2 の値を割り当てます。例えば、次の 2 つのステートメントは同じ結果になります。
x += y;
x = x + y;
連結 (
+) 演算子のすべての規則が、連結後代入 (
+=) 演算子に適用されます。
TextField の
text プロパティに連結後代入演算子を使用する(すなわち
someTextField.text += moreText とする)と、
TextField.appendText() よりもはるかに効率が悪くなります。大きなコンテンツが入っている
TextField では特に非効率的です。
オペランド結果例 例の使用法 次の例では、
+= 演算子をストリング式で使用しています。
var x1:String = "My name is ";
x1 += "Gilbert";
trace(x1); // My name is Gilbert
関連項目
使用方法 | expression1 += expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
XMLList オブジェクトの expression1 に expression1 + expression2 の値を割り当てます。例えば、次の 2 つのステートメントは同じ結果になります。
x += y;
x = x + y;
XMLList 連結 (
+) 演算子のすべての規則が、XMLList 連結後代入 (
+=) 演算子に適用されます。
オペランド | expression1:XMLList —
新しい値を加算する XMLList オブジェクト。
|
| expression2:* —
XML または XMLList 値。
|
例 例の使用法 The following example shows how to use the XMLList concatenation assignment (
+=) operator:
var x1:XML = <location>Athens</location>;
var x2:XML = <location>Paris</location>;
myXMLList = x1 + x2;
var x3:XML = <location>Springfield</location>;
myXMLList += x3;
trace(myXMLList.toXMLString());
The trace statement produces the following output:
<location>Athens</location>
<location>Paris</location>
<location>Springfield</location>
関連項目
使用方法 | expression1 ? expression2 : expression3 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 を評価し、expression1 の値が true である場合、結果は expression2 の値となり、そうでない場合は expression3 の値となります。
オペランド | expression1:Boolean —
評価結果がブール値になる式。通常は x < 5 などの比較式です。
|
| expression2:* —
任意の型の値。
|
| expression3:* —
任意の型の値。
|
結果 | * — expression2 または expression3 の値。 |
例 例の使用法 次のステートメントでは、最初の式の評価結果が
true なので、変数
x の値が変数
z に割り当てられます。
var x:Number = 5;
var y:Number = 10;
var z = (x < 6) ? x: y;
trace(z); // returns 5
次に、簡単な条件ステートメントの例を示します。
var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM";
trace(timecode);
次のように、同じ条件ステートメントを、もう少し長く記述することもできます。
if (new Date().getHours() < 11) {
var timecode:String = "AM";
} else {
var timecode:String = "PM";
}
trace(timecode);
関連項目
使用方法 | --expression expression-- |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
オペランドから 1 を減算します。オペランドは、変数、配列のエレメント、またはオブジェクトのプロパティです。プリデクリメント形式の演算子(--expression)は、expression から 1 を減算し、結果を返します。ポストデクリメント形式の演算子(expression--)は、expression から 1 を減算し、expression の初期値(減算前の値)を返します。
オペランド | expression:Number —
数値、または評価結果が数値になる変数。
|
結果例 例の使用法 プリデクリメント形式の演算子は、
x を 2 にデクリメント(
x -
1 = 2)して、結果を
y として返します。
var x:Number = 3;
var y:Number = --x; // y is equal to 2
ポストデクリメント形式の演算子は、
x を 2 にデクリメント(
x -
1 = 2)して、
x の元の値を結果
y として返します。
var x:Number = 3;
var y:Number = x--; // y is equal to 3
次の例は、10 から 1 までループし、各ループでカウンタ変数
i を 1 ずつ減らしています。
for (var i = 10; i > 0; i--) {
trace(i);
}
関連項目
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
reference によって指定されたオブジェクトプロパティを破棄します。処理後にプロパティが存在しない場合、結果は true になり、存在する場合は false になります。存在しないプロパティまたはクラスで定義されていない動的プロパティで呼び出された場合、delete 演算子は true を返します。
reference パラメータを削除できない場合、delete 演算子は処理できないため false を返します。固定プロパティまたは var ステートメントで宣言された変数は削除できません。固定プロパティとは、クラス定義で定義される変数またはメソッドです。
クラスが実行時に追加された動的クラスでない限り、delete 演算子を使用してそのクラスのプロパティを破棄することはできません。sealed クラスのプロパティは、delete を使用して破棄することはできません。代わりに、プロパティを null に設定してください。
メモ:オブジェクトを削除することはできませんが、オブジェクトへのすべての参照を削除して、ガベージコレクションの対象となるオブジェクトを作成できます。最も一般的なオブジェクトへの参照は、オブジェクトを参照する変数です。これらの参照は、変数を null に設定することで削除できます。ガベージコレクションでは、参照を持たないオブジェクトがすべて削除されます。
オペランド | reference:* —
削除するプロパティの名前。
|
結果 | Boolean — 削除に成功した場合、値は true になり、失敗した場合は false になります。 |
例 例の使用法 次の例では、オブジェクトのプロパティを削除します。
// create the new object "account"
var account:Object = new Object();
// assign property name to the account
account.name = "Jon";
// delete the property
delete account.name;
trace(account.name); // undefined
// delete a nonexistent property
var fooDeleted:Boolean = delete account.foo;
trace(fooDeleted); // true
次の例では、配列エレメントの値を削除していますが、length プロパティの値は変更されません。
var my_array:Array = new Array();
my_array[0] = "abc"; // my_array.length == 1
my_array[1] = "def"; // my_array.length == 2
my_array[2] = "ghi"; // my_array.length == 3
// my_array[2] is deleted, but Array.length is not changed
delete my_array[2];
trace(my_array.length); // 3
trace(my_array); // abc,def,
次の例は、delete から返されたブール値を後でコード実行時の条件として使用する方法を示しています。アイテムが既に削除されている場合、そのアイテムで再度 delete を呼び出すと、false が返されます。
var my_array:Array = [ "abc", "def", "ghi" ];
var deleteWasSuccessful:Boolean
deleteWasSuccessful = delete my_array[0];
if(deleteWasSuccessful) delete my_array[1];
deleteWasSuccessful = delete my_array[0];
if(deleteWasSuccessful) delete my_array[2];
trace(my_array) // outputs: undefined,undefined,ghi
関連項目
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
reference で指定された XML エレメントまたは属性を削除します。
XMLList オペランドは、空の場合でも常に有効な XMLList オブジェクトを参照するため、XMLList オペランドと共に使用した場合、delete 演算子の結果は常に true になります。
オペランド | reference:XMLList —
削除する XML エレメントまたは属性を指定する XMLList オブジェクト。
|
結果 | Boolean — 削除に成功した場合、値は true になり、失敗した場合は false になります。 |
例 例の使用法 次の例では、1 つの属性、1 つのエレメント、複数のエレメントを順に削除しています。
var x1:XML = <x1>
<a id = "52">AYY</a>
<a>AYY 2 </a>
<b>BEE</b>
<c>CEE</c>
</x1>;
trace(x1.toXMLString());
trace("___________");
delete x1.a.@id;
trace(x1.toXMLString());
trace("___________");
delete x1.b;
trace(x1.toXMLString());
trace("___________");
delete x1.a;
trace(x1.toXMLString());
出力は次のようになります。
<x1>
<a id="52">AYY</a>
<a>AYY 2</a>
<b>BEE</b>
<c>CEE</c>
</x1>
___________
<x1>
<a>AYY</a>
<a>AYY 2</a>
<b>BEE</b>
<c>CEE</c>
</x1>
___________
<x1>
<a>AYY</a>
<a>AYY 2</a>
<c>CEE</c>
</x1>
___________
<x1>
<c>CEE</c>
</x1>
次の例では、エレメント自体は削除せず、エレメントのすべての内容(属性および子エレメントを含む)を削除しています。
var xml:XML =
<order>
<item id="121">hamburger</item>
<item id="122">fries</item>
<item id="123">chocolate shake</item>
</order>;
delete xml.item[1].*;
delete xml.item[1].@*;
trace(xml);
この例の出力は次のようになります。
<order>
<tem id="121">hamburger</item>
<item/>
<item id="123">chocolate shake</item>
</order>
使用方法 | myXML..childElement1..@attributeName |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
XML または XMLList オブジェクトの子孫エレメントに移動します。@ 演算子と共に使用した場合は、一致する子孫の属性を検索します。検索されるエレメントや属性は、XML または XMLList オブジェクトの直接の子だけでなく、孫などのツリー内の下位の階層も対象となります。複数の子エレメントまたは属性が一致する可能性があるため、結果は XMLList オブジェクトになります。
XMLList オブジェクト内のノードは、深さ優先探索の結果順に返されます。次に例を示します。
var myXML:XML = <a>
<b>one
<c>
<b>two</b>
</c>
</b>
<b>three</b>
</a>;
trace(myXML..b[0].toXMLString());
trace("______________");
trace(myXML..b[1].toXMLString());
trace("______________");
trace(myXML..b[2].toXMLString());
結果は次のように出力されます。
<b>
one
<c>
<b>two</b>
</c>
</b>
______________
<b>two</b>
______________
<b>three</b>
ActionScript の予約語と名前が一致する子孫を返すには、次の例で示すように、子孫(..)演算子の代わりに XML.descendants() メソッドを使用します。
var xml:XML =
<enrollees>
<student id="239">
<class name="Algebra" />
<class name="Spanish 2"/>
</student>
<student id="206">
<class name="Trigonometry" />
<class name="Spanish 2" />
</student>
</enrollees>;
trace(xml.descendants("class"));
オペランド | myXML:Object —
XML または XMLList オブジェクト。
|
| childElement1_or_attributeName —
XML プロパティの名前または属性の名前。
|
例 例の使用法 次の例では、子孫アクセサ(..)演算子を使用して、XML オブジェクトの子孫エレメントとエレメントの属性を返しています。
var myXML:XML =
<employees>
<employee id = "42">
<firstName>Billy</firstName>
<lastName>Einstein</lastName>
</employee>
<employee id = "43">
<firstName>Sally</firstName>
<lastName>Shostakovich</lastName>
</employee>
</employees>
trace(myXML..firstName);
// <firstName>Billy</firstName>
// <firstName>Sally</firstName>
trace(myXML..@id); //4243
関連項目
使用方法 | expression1 / expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 を expression2 で除算します。除算演算の結果は倍精度の浮動小数点数です。
オペランド | expression:Number —
数値、または評価結果が数値になる変数。
|
結果例 例の使用法 次の例は、被除数が正、負、または 0 の場合に、0 による除算結果が異なることを示しています。
trace(3/0); // Infinity
trace(-3/0); // -Infinity
trace(0/0); // NaN
関連項目
使用方法 | expression1 /= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 に expression1 / expression2 の値を割り当てます。例えば、次の 2 つのステートメントは同じです。
x /= y;
x = x / y;
オペランド | expression1:Number —
数値、または評価結果が数値になる変数。
|
| expression2:Number —
数値、または評価結果が数値になる変数。
|
結果例 例の使用法 次に、除算後代入(
/=)演算子で変数および数値を使用したコードを示します。
var a:Number = 10;
var b:Number = 2;
a /= b; trace(a); // 5
関連項目
使用方法 | object.property_or_method |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
クラス変数およびメソッドにアクセスし、オブジェクトプロパティの取得および設定を行い、読み込まれたパッケージまたはクラスを区切ります。
オペランド | object:Object —
クラスのインスタンス。オブジェクトには、ActionScript の任意のビルトインクラス、または独自に定義したクラスのインスタンスを指定できます。このオペランドは、常にドット(.)演算子の左側で使用します。
|
| property_or_method:* —
オブジェクトに関連するプロパティまたはメソッドの名前。ビルトインオブジェクトの有効なメソッドとプロパティは、そのクラスのメソッドとプロパティの一覧表に示されています。このオペランドは、常にドット(.)演算子の右側で使用します。
|
結果 | * — ドットの右側に指定された変数、メソッド、またはプロパティ。 |
例 例の使用法 次の例では、Timer クラスを読み込む際の区切りにドット演算子を使用しています。
import flash.utils.Timer;
次の例では、汎用オブジェクトを作成し、ドット演算子を使用して新しいプロパティを追加しています。
var obj:Object = new Object();
obj.propertyA = "hello";
trace(obj.propertyA); // hello
関連項目
使用方法 | myXML.childElement
myXML.@attributeName |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
XML または XMLList オブジェクトの子エレメントに移動します。@ 演算子と共に使用した場合は、XML または XMLList オブジェクトの属性を返します。複数の子エレメントまたは属性が一致する可能性があるため、返されるオブジェクトは XMLList になります。
ActionScript の予約語と名前が一致するエレメントを返すには、次の例で示すように、XML ドット(.)演算子の代わりに XML.elements() メソッドまたは XML.descendants() メソッドを使用します。
var xml:XML =
<student id="206">
<class name="Trigonometry" />
<class name="Spanish 2" />
</student>;
trace(xml.elements("class"));
trace(xml.descendants("class"));
オペランド | myXML:Object —
XML または XMLList オブジェクト。
|
| childElement:* —
XML プロパティの名前。
|
| attributeName:* —
属性の名前。
|
結果例 例の使用法 次の例では、ドット(.)演算子を使用して、XML オブジェクトの子エレメントに戻り、エレメントの属性を返しています。
var myXML:XML =
<employee id = "42">
<firstName>Billy</firstName>
<lastName>Einstein</lastName>
</employee>;
trace(myXML.firstName); // Billy
trace(myXML.@id); // 42
関連項目
使用方法 | expression1 == expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
2 つの式の等価性をテストします。式が等しい場合、結果は true です。
2 つのオペランドのデータ型が一致する場合、等価の定義はオペランドのデータ型によって決まります。
- int、uint、および Boolean 型の値は、値が同じ場合に等しいと見なされます。
- Number 型は、値が同じで両方とも
NaN でない場合に等しいと見なされます。
- 2 つのオペランドの値が
null または undefined の場合は、等しいと見なされます。
- ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。
- XML オプジェクトの場合:
- 一方のオペランドがテキストまたは属性ノードで、もう一方のオペランドに単純内容が含まれる場合は、オペランドを両方とも
toString() メソッドでストリングに変換し、結果のストリングが一致する場合に等しいと見なされます。
- それ以外の場合、オブジェクトは、両方のオブジェクトの修飾名、属性、および子プロパティが一致する場合にのみ等しいと見なされます。
- XMLList オブジェクトの場合は、プロパティの数が同じで、プロパティの順序および値が一致する場合に等しいと見なされます。
- Namespace オブジェクトの場合は、両方のオブジェクトの
uri プロパティが一致する場合に値が等しいと見なされます。
- QName オブジェクトの場合は、両方のオブジェクトの
uri プロパティおよび localName プロパティが一致する場合に値が等しいと見なされます。
- オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。
オペランドのデータ型が一致しない場合は、次の場合を除き、結果は
false になります。
- オペランドの値が
undefined および null の場合。この場合、結果は true になります。
- 自動データ型変換により String、Boolean、int、uint、および Number のデータ型の値が互換性のある型に変換され、変換された値が等しい場合。この場合、オペランドは等しいと見なされます。
- 一方のオペランドが単純内容(
hasSimpleContent() == true)を持つ XML 型で、両方のオペランドを toString() メソッドでストリングに変換し、結果のストリングが一致する場合。
- 一方のオペランドが XMLList 型で、次のいずれかの条件に該当する場合。
- XMLList オプジェクトの
length プロパティが 0 で、もう一方のオブジェクトが undefined である。
- XMLList オプジェクトの
length プロパティが 1 で、XMLList オブジェクトの 1 つのエレメントがもう一方のオペランドに一致する。
オペランド | expression1:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または式。
|
| expression2:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または式。
|
結果 | Boolean — 式が等しい場合、値は true になり、等しくない場合は false になります。 |
例 例の使用法 次の例では、
if ステートメントで等価(
==)演算子を使用します。
var a:String = "David"
var b:String = "David";
if (a == b) {
trace("David is David");
}
次の例は、値を比較するときに等価演算子でどのように自動型変換が行われるかを示しています。ストリング値は数値に変換されます。
var a:Number = 5;
var b:String = "5";
trace(a == b); // true
ブール値は数値に変換されます。
true は 1 に、
false は 0 に変換されます。
var c:Number = 1;
var d:Boolean = true;
trace(c == d); // true
var e:Number = 0;
var f:Boolean = false;
trace(e == f); // true
ただし、ストリング値はブール値に変換されないため、次のコードでは
false が返されます。
var g:String = "true";
var h:Boolean = true;
trace(g == h); // false
次に参照による比較の例を示します。1 番目の例では、長さとエレメントの同じ 2 つの配列を比較しています。この 2 つの配列に対し、等価演算子は
false を返します。これらの配列は一見、同じように見えますが、参照による比較で等価と見なされるためには、
firstArray および
secondArray の両方が同じ配列を参照していることが必要です。2 番目の例では、
firstArray と同じ配列を参照する
thirdArray 変数を作成しています。この 2 つの配列に対しては、等価演算子が true を返します。2 つの変数が同じ配列を参照しているからです。
var firstArray:Array = new Array("one", "two", "three");
var secondArray:Array = new Array("one", "two", "three");
trace(firstArray == secondArray); // false
/* Arrays are only considered equal
if the variables refer to the same array. */
var thirdArray:Array = firstArray;
trace(firstArray == thirdArray); // true
関連項目
使用方法 | expression1 > expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
2 つの式を比較し、expression1 が expression2 より大きいかどうかを判定します。大きい場合、結果は true になります。expression1 が expression2 より小さいか等しい場合、結果は false になります。
両方のオペランドが String 型である場合、オペランドはアルファベット順で大文字、小文字の順に比較されます。それ以外の場合、オペランドは数値に変換されてから比較されます。
オペランド | expression1:Object —
ストリング、整数、または浮動小数点数。
|
| expression2:Object —
ストリング、整数、または浮動小数点数。
|
結果 | Boolean — expression1 が expression2 より大きい場合は true の値となり、それ以外の場合は false となります。 |
例 例の使用法 次の例では、ストリングがアルファベット順で大文字、小文字の順に比較されます。
var a:String = "first";
var b:String = "First";
trace(a > b); // true
次の例では、ストリング値およびブール値が数値に変換されます。
var c:Number = 5;
var d:String = "4";
trace(c > d); // true
var e: Number = 2;
var f:Boolean = true;
trace(e > f); // true
使用方法 | expression1 >= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
2 つの式を比較し、expression1 が expression2 より大きいか等しい(true)、または expression1 が expression2 より小さい(false)かどうかを判定します。
オペランド | expression1:Object —
ストリング、整数、または浮動小数点数。
|
| expression2:Object —
ストリング、整数、または浮動小数点数。
|
結果 | Boolean — expression1 が expression2 より大きいか等しい場合、true の値となり、それ以外の場合は false となります。 |
例 例の使用法 次の例では、より大きいか等しい(>=)演算子を使用して、現在の時刻(時)が 12 以上であるかどうかを判定しています。
if (new Date().getHours() >= 12) {
trace("good afternoon");
} else {
trace("good morning");
}
関連項目
使用方法 | expression1 in expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
プロパティが特定のオブジェクトの一部であるかどうかを評価します。in 演算子を使用するには、最初のオペランドとしてプロパティ名を指定し、2 番目のオペランドとしてオブジェクトを指定します。指定したオブジェクトに該当のプロパティが含まれている場合、結果は true になります。それ以外の場合、結果は false になります。
指定したオブジェクトが Array オブジェクトである場合、in 演算子を使用して特定のインデックス番号が有効であるかどうかをチェックできます。最初のオペランドとして整数を渡す場合、インデックスが有効なインデックス番号の範囲内にあれば結果は true になり、そうでない場合は false になります。
結果 | Boolean — expression1 が expression2 で表されるオブジェクトのプロパティである場合は true の値になり、そうでない場合は false になります。 |
例 例の使用法
次の例では、
in 演算子を使用し、
PI が Math オブジェクトのプロパティであり、
myProperty はそうでないことを示しています。
trace("PI" in Math); // true
trace("myProperty" in Math); // false
次の例では、in 演算子を使用し、数値 0、1、および 2 が myArray オブジェクトの有効なインデックス番号であり、3 はそうでないことを示しています。
public var myArray:Array = ["zero", "one", "two"];
trace(0 in myArray); // true
trace(1 in myArray); // true
trace(2 in myArray); // true
trace(3 in myArray); // false
関連項目
使用方法 | ++expression expression++ |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
式に 1 を加算します。式は、変数、配列のエレメント、またはオブジェクトのプロパティです。プリインクリメント形式の演算子(++expression)は、expression に 1 を加算し、結果を返します。ポストインクリメント形式の演算子(expression++)は、expression に 1 を加算し、expression の初期値(加算前の値)を返します。
オペランド | expression:Number —
数値、または評価結果が数値になる変数。
|
結果例 例の使用法
次の例では、
while ループで ++ をプリインクリメント演算子として使用し、インクリメントされた値を配列に加算しています。
var preInc:Array = new Array();
var i:int = 0;
while (i < 10) {
preInc.push(++i);
}
trace(preInc); // 1,2,3,4,5,6,7,8,9,10
次の例では、
while ループで ++ をポストインクリメント演算子として使用し、初期値を配列に加算しています。
var postInc:Array = new Array();
var i:int = 0;
while (i < 10) {
postInc.push(i++);
}
trace(postInc); // 0,1,2,3,4,5,6,7,8,9
次の例では、++ をポストインクリメント演算子として使用し、
while ループを 5 回実行しています。
var i:int = 0;
while (i++ < 5) {
trace("this is execution " + i);
}
/* output:
this is execution 1
this is execution 2
this is execution 3
this is execution 4
this is execution 5
*/
関連項目
使用方法 | expression1 != expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
等価(==)演算子の正反対が真であるかどうかをテストします。expression1 が expression2 に等しい場合、結果は false になります。等価(==)演算子の場合と同様に、等価の定義は比較するデータ型により異なります。
2 つのオペランドのデータ型が一致する場合、等価の定義はオペランドのデータ型によって決まります。
- int、uint、および Boolean 型の値は、値が同じ場合に等しいと見なされます。
- Number 型は、値が同じで両方とも
NaN でない場合に等しいと見なされます。
- 2 つのオペランドの値が
null または undefined の場合は、等しいと見なされます。
- ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。
- XML オプジェクトの場合:
- 一方のオペランドがテキストまたは属性ノードで、もう一方のオペランドに単純内容が含まれる場合は、オペランドを両方とも
toString() メソッドでストリングに変換し、結果のストリングが一致する場合に等しいと見なされます。
- それ以外の場合、オブジェクトは、両方のオブジェクトの修飾名、属性、および子プロパティが一致する場合にのみ等しいと見なされます。
- XMLList オブジェクトの場合は、プロパティの数が同じで、プロパティの順序および値が一致する場合に等しいと見なされます。
- Namespace オブジェクトの場合は、両方のオブジェクトの
uri プロパティが一致する場合に値が等しいと見なされます。
- QName オブジェクトの場合は、両方のオブジェクトの
uri プロパティおよび localName プロパティが一致する場合に値が等しいと見なされます。
- オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。
オペランドのデータ型が一致しない場合は、次の場合を除き、不等価演算子(
!=)により
true が返されます。
- オペランドの値が
undefined および null の場合。この場合、結果は true になります。
- 自動データ型変換により String、Boolean、int、uint、および Number のデータ型の値が互換性のある型に変換され、変換された値が等しい場合。この場合、オペランドは等しいと見なされます。
- 一方のオペランドが単純内容(
hasSimpleContent() == true)を持つ XML 型で、両方のオペランドを toString() メソッドでストリングに変換し、結果のストリングが一致する場合。
- 一方のオペランドが XMLList 型で、次のいずれかの条件に該当する場合。
- XMLList オプジェクトの
length プロパティが 0 で、もう一方のオブジェクトが undefined である。
- XMLList オプジェクトの
length プロパティが 1 で、XMLList オブジェクトの 1 つのエレメントがもう一方のオペランドに一致する。
オペランド | expression1:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。
|
| expression2:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。
|
結果 | Boolean — 式が等しくない場合は true の値になり、等しい場合は false になります。 |
例 例の使用法 次の例では、不等価(
!=)演算子の結果を示します。
trace(5 != 8); // true
trace(5 != 5); // false
次の例では、
if ステートメントでの不等価(
!=)演算子の使い方を示します。
var a:String = "David";
var b:String = "Fool";
if (a != b) {
trace("David is not a fool");
}
次の例では、2 つの関数の参照による比較を示します。
var a:Function = function() { trace("foo"); };
var b:Function = function() { trace("foo"); };
a(); // foo
b(); // foo
trace(a != b); // true
a = b;
a(); // foo
b(); // foo
trace(a != b); // false
次の例では、2 つの配列の参照による比較を示します。
var a:Array = [ 1, 2, 3 ];
var b:Array = [ 1, 2, 3 ];
trace(a); // 1,2,3
trace(b); // 1,2,3
trace(a != b); // true
a = b;
trace(a); // 1,2,3
trace(b); // 1,2,3
trace(a != b); // false
関連項目
使用方法 | expression instanceof function |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
式のプロトタイプチェーンに function のプロトタイプオブジェクトが含まれるかどうかを評価します。instanceof 演算子は、ECMAScript Edition 3 との後方互換性を維持するために提供されており、クラスの代わりにコンストラクタ関数を含むプロトタイプベースの継承を使用する上級プログラマにとって役立つ場合があります。
オブジェクトが特定のデータ型のメンバーであるかどうかをチェックするには、is 演算子を使用します。
instanceof 演算子は、クラスと共に使用する場合、is 演算子と似たものになります。クラスのプロトタイプチェーンには、そのスーパークラスがすべて含まれているからです。ただし、インターフェイスはプロトタイプチェーンに含まれないため、instanceof 演算子をインターフェイスと共に使用すると結果は常に false になりますが、is 演算子の場合、指定されたインターフェイスを実装するクラスにオブジェクトが属している場合は true になります。
メモ: ActionScript の is 演算子は、Java の instanceof 演算子と同じです。
オペランド | expression:Object —
評価するプロトタイプチェーンを含むオブジェクト。
|
| function:Object —
関数オブジェクト(またはクラス)。
|
結果 | Boolean — expression のプロトタイプチェーンに function のプロトタイプオブジェクトが含まれる場合は true を返し、それ以外の場合は false を返します。 |
例 例の使用法
次の例では、Sprite クラスのインスタンス
mySprite を作成し、
instanceof 演算子を使用して、
mySprite のプロトタイプチェーンに Sprite クラスおよび DisplayObject クラスのプロトタイプオブジェクトが含まれるかどうかをテストします。Sprite および DisplayObject のプロトタイプオブジェクトは
mySprite のプロトタイプチェーンにあるため、Sprite クラスおよび DisplayObject クラスの結果は
true になります。
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof Sprite); // true
trace(mySprite instanceof DisplayObject); // true
次の例では、IBitmapDrawable インターフェイスを使用して、
instanceof 演算子がインターフェイスと共には機能しないことを示しています。DisplayObject クラスは Sprite クラスのスーパークラスであり、IBitmapDrawable インターフェイスを実装するため、
is 演算子の結果は
true になります。
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof IBitmapDrawable); // false
trace(mySprite is IBitmapDrawable); // true
関連項目
使用方法 | expression1 is expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
オブジェクトに特定のデータ型、クラス、またはインターフェイスと互換性があるかどうかを評価します。instanceof 演算子の代わりに、is 演算子を使用して型の比較を行います。is 演算子を使用して、オブジェクトにインターフェイスが実装されているかどうかをチェックすることもできます。
結果 | Boolean — expression1 に expression2 で指定されたデータ型、クラス、またはインターフェイスと互換性がある場合は true の値になり、それ以外の場合は false になります。 |
例 例の使用法
次の例では、Sprite クラスのインスタンス
mySprite を作成し、
is 演算子を使用して
mySprite が Sprite クラスおよび DisplayObject クラスのインスタンスであるかどうか、および IEventDispatcher インターフェイスを実装しているかどうかをテストします。
import flash.display.*;
import flash.events.IEventDispatcher;
var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite); // true
trace(mySprite is DisplayObject); // true
trace(mySprite is IEventDispatcher); // true
関連項目
使用方法 | expression1 < expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
2 つの式を比較し、expression1 が expression2 より小さいかどうかを判定します。小さい場合、結果は true になります。expression1 が expression2 より大きいか等しい場合、結果は false になります。
両方のオペランドが String 型である場合、オペランドはアルファベット順で大文字、小文字の順に比較されます。それ以外の場合、オペランドは数値に変換されてから比較されます。
オペランド | expression1:Object —
ストリング、整数、または浮動小数点数。
|
| expression2:Object —
ストリング、整数、または浮動小数点数。
|
結果 | Boolean — expression1 が expression2 より小さい場合は true の値となり、それ以外の場合は false となります。 |
例 例の使用法 次に、数値とストリングの両方について
true と
false が返される場合の例を示します。
trace(5 < 10); // true
trace(2 < 2); // false
trace(10 < 3); // false
trace("Allen" < "Jack"); // true
trace("Jack" < "Allen"); // false
trace("11" < "3"); // true
trace("11" < 3); // false (numeric comparison)
trace("C" < "abc"); // true
trace("A" < "a"); // true
使用方法 | expression1 <= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
2 つの式を比較し、expression1 が expression2 より小さいまたは等しいかどうかを判定します。小さいか等しい場合、結果は true になります。 expression1 が expression2 より大きい場合、結果は false になります。
両方のオペランドが String 型である場合、オペランドはアルファベット順で大文字、小文字の順に比較されます。それ以外の場合、オペランドは数値に変換されてから比較されます。
オペランド | expression1:Object —
ストリング、整数、または浮動小数点数。
|
| expression2:Object —
ストリング、整数、または浮動小数点数。
|
結果 | Boolean — expression1 が expression2 より小さいか等しい場合、true の値となり、それ以外の場合は false となります。 |
例 例の使用法 次に、数値とストリングの両方について
true と
false が返される場合の例を示します。
trace(5 <= 10); // true
trace(2 <= 2); // true
trace(10 <= 3); // false
trace("Allen" <= "Jack"); // true
trace("Jack" <= "Allen"); // false
trace("11" <= "3"); // true
trace("11" <= 3); // false (numeric comparison)
trace("C" <= "abc"); // true
trace("A" <= "a"); // true
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
スクリプトコメントの先頭を示します。コメント行区切り記号(//)と行末の間に表示される文字はコメントと解釈され、無視されます。コメントが 1 行の場合はこのコメント行区切り記号を使用し、連続した複数行の場合は /* および */ の区切り記号を使用します。
オペランド例 例の使用法 次に、単一行コメントの例を示します。
// Any text following a line comment delimiter is ignored during compilation
関連項目
使用方法 | expression1 && expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
false である場合または false に変換できる場合は expression1 を返し、そうでない場合は expression2 を返します。false に変換できる値の例としては、0、NaN、null、および undefined があります。expression2 で関数呼び出しを使用する場合、expression1 の評価結果が false であれば、関数は呼び出されません。
両方のオペランドが Boolean 型である場合、次の表に示すように、両方のオペランドが true である場合にのみ結果が true となります。
| 式 |
評価 |
true && true |
true |
true && false |
false |
false && false |
false |
false && true |
false |
オペランド | expression1:* —
任意の型の値または式。
|
| expression2:* —
任意の型の式の値。
|
結果 | * — 両方のオペランドが Boolean 型である場合は、ブール値となります。それ以外の場合、結果はいずれかの式の値となります。 |
例 例の使用法 次の例では、論理積(AND)(
&&)演算子を使用してゲームの勝敗判定をテストしています。
turns 変数と
score 変数は、ゲームの回数または得点に応じて更新されます。このスクリプトでは、プレーヤーのスコアが 3 回以内に 75 以上になると、"You Win the Game!" と表示されます。
var turns:Number = 2;
var score:Number = 77;
if ((turns <= 3) && (score >= 75)) {
trace("You Win the Game!");
} else {
trace("Try Again!");
}
関連項目
使用方法 | expression1 &&= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 に expression1 && expression2 の値を代入します。例えば、次の 2 つのステートメントは同じです。
x &&= y;
x = x && y;
オペランド | expression1:* —
任意の型の値。
|
| expression2:* —
任意の型の値。
|
結果 | * — 両方のオペランドが Boolean データ型のメンバーである場合、ブール値となります。それ以外の場合、結果は 2 つの式のいずれかの値となります。 |
例 例の使用法 次の例では、変数
myTag の評価が
false でない場合、この変数を変更します。この方法は、論理積 AND(
&&)演算子が、
expression1 の評価が
false の場合に
expression1 の値を返し、それ以外の場合は
expression2 の値を返すことを利用したものです。
myTag が既に
true に評価される値を含んでいる場合は、
myVar は XML タグに類似するように変更されます。しかし、
myVar が、
null、
""(空のストリング)、
undefined など、
false に評価される値を含む場合は、
myVar は変更されません。
var myVar:String = 'tag';
myVar &&= "<" + myVar + "/>";
trace (myVar); // output: <tag/>
次の例のとおり、
if ステートメントを使用することで、同じ効果を得ることができます。
var myVar:String = 'tag';
if (myVar != '') {
myVar = "<" + myVar + "/>";
}
trace (myVar); // output: <tag/>
if ステートメントを使用することのメリットは、コードが読みやすくなる点です。一方、論理積(AND)代入(
&&=)演算子を使用することのメリットは、指定されたデータ型の正確なデフォルト値を指定する必要がない点です。
関連項目
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
変数や式のブール値を反転します。expression が変数で、その絶対値または変換された値が true である場合、!expression の値は false になります。式 x && y の評価が false である場合、式 !(x && y) の評価は true になります。
次の式は、論理否定(!)演算子を使用した結果を示しています。
!true は false を返します。
!false は true を返します。
オペランド | expression:Boolean —
評価結果がブール値になる式または変数。
|
結果例 例の使用法 次の例では、変数
happy を
false に設定しています。
if により条件
!happy が評価され、結果が
true である場合、
trace() ステートメントによりストリングが出力されます。
var happy:Boolean = false;
if (!happy) {
trace("don't worry, be happy"); // don't worry, be happy
} !false は
true に等しいため、
trace ステートメントが実行されます。
関連項目
使用方法 | expression1 || expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
true である場合または true に変換できる場合は expression1 を返し、そうでない場合は expression2 を返します。expression2 で関数呼び出しを使用する場合、expression1 の評価結果が true であれば、関数は呼び出されません。
次の表に示すように、両方のオペランドが Boolean 型で、いずれかまたは両方の式が true である場合、結果は true になります。両方の式が false である場合、結果は false になります。
| 式 |
評価 |
true || true |
true |
true || false |
true |
false || false |
false |
false || true |
true |
オペランド | expression1:* —
任意の型の値。
|
| expression2:* —
任意の型の値。
|
結果 | * — 両方のオペランドが Boolean データ型のメンバーである場合、ブール値となります。それ以外の場合、結果は 2 つの式のいずれかの値となります。 |
例 例の使用法 次の例では、
if ステートメントで論理和(OR)(
||)演算子を使用しています。2 番目の式の評価結果が
true なので、最終結果は
true になります。
var a:Number = 10;
var b:Number = 250;
var start:Boolean = false;
if ((a > 25) || (b > 200) || (start)) {
trace("the logical OR test passed"); // the logical OR test passed
}
if ステートメントの条件の 1 つが true(
b > 200)なので、"the logical OR test passed" というメッセージが表示されます。
次のように、2 番目のオペランドに関数呼び出しを指定すると、予期しない結果が生じる場合があります。演算子の左側の式が true と評価された場合、右側の式は評価されずに(関数 fx2() は呼び出されずに)、左側の式の結果だけが返されます。
function fx1():Boolean {
trace("fx1 called");
return true;
}
function fx2():Boolean {
trace("fx2 called");
return true;
}
if (fx1() || fx2()) {
trace("IF statement entered");
}
関連項目
使用方法 | expression1 ||= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 に expression1 || expression2 の値を代入します。例えば、次の 2 つのステートメントは同じです。
x ||= y;
x = x || y;
オペランド | expression1:* —
任意の型の値。
|
| expression2:* —
任意の型の値。
|
結果 | * — 両方のオペランドが Boolean データ型のメンバーである場合、ブール値となります。それ以外の場合、結果は 2 つの式のいずれかの値となります。 |
例 例の使用法 次の例では、以前に宣言された変数
myVar にデフォルト値を代入します。この方法は、論理和 OR(
||)演算子が、
expression1 の評価が
true の場合に
expression1 の値を返し、それ以外の場合は
expression2 の値を返すことを利用したものです。
myVar が既に
true に評価される値を含んでいる場合は、
myVar は変更されません。しかし、
myVar が、
null、
""(空のストリング)、
undefined など、
false に評価される値を含む場合は、
myVar には
"default" が代入されます。
関連項目
使用方法 | expression1 % expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 を expression2 で割ったときの剰余を計算します。いずれかのオペランドが数値でない場合は、剰余(%)演算子により数値への変換が試行されます。
剰余演算結果の符号は、被除数(最初の数値)の符号と一致します。例えば、-4 % 3 と -4 % -3 の評価結果は共に -1 になります。
オペランド | expression1:Number —
数値、または評価結果が数値になる式。数値のみを含むストリングの評価結果は数値になります。
|
| expression2:Number —
数値、または評価結果が数値になる式。数値のみを含むストリングの評価結果は数値になります。
|
結果例 例の使用法 次に、数値に対して剰余(
%)演算子を使用する例を示します。
trace(12 % 5); // 2
trace(4.3 % 2.1); // 0.0999999999999996
trace(4 % 4); // 0
剰余(
%)演算子は余りだけを返すため、1 つ目の trace ステートメントでは 12/5 や 2.4 ではなく 2 が返されます。ところが、2 番目の trace ステートメントでは 0.1 ではなく、0.0999999999999996 が返されます。これは 2 進数計算では浮動小数点数の精度に限度があるからです。
関連項目
使用方法 | expression1 %= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 に expression1 % expression2 の値を割り当てます。次の 2 つのステートメントは等価です。
x %= y;
x = x % y;
オペランド | expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果例 例の使用法 次の例では、値 4 を変数
a に割り当てます。
var a:Number = 14;
var b:Number = 5;
a %= b;
trace(a); // 4
関連項目
使用方法 | expression1 * expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
2 つの数値や式を乗算します。両方の式が整数であれば、その積は整数です。いずれかの式または両方の式が浮動小数点数であれば、その積は浮動小数点数になります。
オペランド | expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果例 例の使用法 次のステートメントでは、整数の 2 と 3 を乗算し、結果が整数の 6 となっています。
次のステートメントでは、浮動小数点数の 2.0 と 3.1416 を乗算し、結果が浮動小数点数の 6.2832 となっています。
trace(2.0 * 3.1416); // 6.2832
関連項目
使用方法 | expression1 *= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 に expression1 * expression2 の値を割り当てます。例えば、次の 2 つの式は同じです。
x *= y
x = x * y
オペランド | expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果 | Number — expression1 * expression2 の値。式を数値に変換できない場合は、NaN(非数)を返します。 |
例 例の使用法 次の例では、値 50 を変数
a に割り当てます。
var a:Number = 5;
var b:Number = 10;
trace(a *= b); // 50
次の例の 2 行目と 3 行目は、等号の右側の式を計算し、その結果を
c と
d にそれぞれ割り当てます。
var i:Number = 5;
var c:Number = 4 - 6;
var d:Number = i + 2;
trace(c *= d); // -14
関連項目
使用方法 | namespace::property
namespace::method()
namespace::xmlObject.property
namespace::xmlObject.@attribute |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
プロパティ、メソッド、XML プロパティ、または XML 属性の名前空間を識別します。
オペランド | namespace:Object —
識別する名前空間。
|
| propertyName:Object —
識別するプロパティ、メソッド、XML プロパティ、または XML 属性。
|
例 例の使用法 次の例では、
:: 演算子を使用して、2 つの異なる名前空間にある同じ名前の 2 つのメソッドを識別しています。
public class NamespaceExample extends Sprite {
public namespace French;
public namespace Hawaiian;
public function NamespaceExample() {
trace(Hawaiian::hello()); // aloha
trace(French::hello()); // bonjour
}
Hawaiian function hello():String {
return "aloha";
}
French function hello():String {
return "bonjour";
}
}
次の例では、
:: 演算子を使用して、指定された名前空間の XML プロパティを識別しています。
var soap:Namespace = new Namespace("http://schemas.xmlsoap.org/wsdl/soap/");
var w:Namespace = new Namespace("http://weather.example.org/forecast");
var myXML:XML =
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<soap:Body>
<w:forecast xmlns:w="http://weather.example.org/forecast">
<w:city>Quito</w:city>
<w:country>Ecuador</w:country>
<date>2006-01-14</date>
</w:forecast>
</soap:Body>
</soap:Envelope>;
trace(myXML.soap::Body.w::forecast.w::city); // Quito
関連項目
使用方法 | new constructor(parameters) |
| ランタイムバージョン: | Flash Player 5 |
クラスインスタンスをインスタンス化します。new 演算子をクラスまたは Class 型の変数で使用して、クラスのインスタンスを作成できます。一般的に new 演算子は、クラスのインスタンスを作成するため、クラスオブジェクトで使用します。例えば、ステートメント new Sprite() では、Sprite クラスのインスタンスが作成されます。
new 演算子を使用して、クラスを埋め込みアセットと関連付けることもできます。埋め込みアセットとは、SWF ファイルにコンパイルされるイメージ、サウンド、フォントなどの外部オブジェクトのことです。埋め込みアセットは、それぞれ固有の埋め込みアセットクラスによって表されます。埋め込みアセットにアクセスするには、new 演算子を使用して、関連付けられたクラスをインスタンス化します。次に、埋め込みアセットクラスの該当するメソッドおよびプロパティを呼び出して、埋め込みアセットを操作します。
class キーワードではなく、Function オブジェクトによりクラスを定義する場合は、new 演算子を使用して、コンストラクタ関数に基づくオブジェクトを作成できます。コンストラクタ関数を、クラスのコンストラクタメソッドと混同しないよう注意してください。コンストラクタ関数は、function キーワードによって定義される Function オブジェクトで、クラス定義の一部ではありません。コンストラクタ関数を使用してオブジェクトを作成する場合は、クラス継承の代わりに、プロトタイプ継承を使用します。
オペランド | constructor:* —
Class 型の値を保持するクラス、関数、または変数。
|
| parameters:* —
カンマで区切られたパラメータ。
|
例 例の使用法 次の例では、
Book クラスを作成し、
new 演算子を使用して
book1 オブジェクトと
book2 オブジェクトを作成します。
class Book {
var bName:String;
var bPrice:Number;
public function Book(nameParam:String, priceParam:Number){
bName = nameParam;
bPrice = priceParam;
}
}
var book1:Book = new Book("Confederacy of Dunces", 19.95);
var book2:Book = new Book("The Floating Opera", 10.95);
trace(book1); // [object Book]
次の例では、
new 演算子を使用して、18 個のエレメントを持つ Array クラスのインスタンスを作成しています。
var golfCourse:Array = new Array(18);
関連項目
使用方法 | object = {name1 : value1, name2 : value2,... nameN : valueN} |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
新しいオブジェクトを作成し、指定された name と value のプロパティペアで初期化します。この演算子を使用することは、new Object シンタックスを使用して代入演算子でプロパティペアを設定するのと同じです。新しく作成されるオブジェクトのプロトタイプとして、汎用の Object オブジェクトがあります。
また、フローを制御するステートメント(for、while、if、else、switch)や関数で、ひとかたまりのコードブロックであることを示すときにも、この演算子が使用されます。
オペランド | object:Object —
作成するオブジェクト。
|
| name1,2,...N:Object —
プロパティの名前。
|
| value1,2,...N:Object —
各 name プロパティに対応する値。
|
結果例 例の使用法 次のコードの 1 行目はオブジェクト初期化({})演算子を使用して空のオブジェクトを作成し、2 行目はコンストラクタ関数を使用して新しいオブジェクトを作成します。
var object:Object = {};
var object:Object = new Object();
次の例では、オブジェクト
account を作成し、
name、
address、
city、
state、
zip、
balance の各プロパティを対応する値で初期化します。
var account:Object = {name:"Adobe Systems, Inc.", address:"601 Townsend Street", city:"San Francisco", state:"California", zip:"94103", balance:"1000"};
for (i in account) {
trace("account."+i+" = "+account[i]);
}
次の例では、配列とオブジェクトの初期化演算子を相互にネストする方法を示します。
var person:Object = {name:"Gina Vechio", children:["Ruby", "Chickie", "Puppa"]};
次のコードでは、前の例と同じ内容を、コンストラクタ関数で生成します。
var person:Object = new Object();
person.name = "Gina Vechio";
person.children = new Array();
person.children[0] = "Ruby";
person.children[1] = "Chickie";
person.children[2] = "Puppa";
関連項目
使用方法 | (expression1[, expression2]) (expression1, expression2) function(parameter1,..., parameterN) |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
パラメータに対してグループ化演算を実行するか、複数の式を順番に評価します。または、パラメータを囲み、引数として括弧の前の関数に渡します。
シンタックス 1:演算子が実行される順番を制御します。括弧は通常の優先順位を無効にし、括弧内の式を最初に評価します。括弧がネストされている場合は、最も内側の括弧から順に外側の括弧へと内容が評価されます。
シンタックス 2:カンマ区切りの一連の式を順番に評価し、最後に実行された式の結果を返します。
シンタックス 3:パラメータを囲み、括弧の前の関数に渡します。
オペランド | expression1:Object —
数値、ストリング、変数、またはテキストを含むことができる式。
|
| expression2:Object —
数値、ストリング、変数、またはテキストを含むことができる式。
|
| function:Function —
括弧の内容に対して実行される関数。
|
| parameter1...parameterN:Object —
結果を引数として括弧の外側の関数に渡す前に実行される一連のパラメータ。
|
例 例の使用法 シンタックス 1:次のステートメントでは、括弧を使用して式の実行順序を制御しています。
trace((2 + 3) * (4 + 5)); // 45
trace(2 + (3 * (4 + 5))); // 29
trace(2 + (3 * 4) + 5); // 19
trace(2 + (3 * 4) + 5); // 19
シンタックス 2:次の例は、関数
foo() を評価した後に、関数
bar() を評価し、その後、式
a + b の結果を返します。
var a:Number = 1;
var b:Number = 2;
function foo() {
a += b;
}
function bar() {
b *= 10;
}
trace((foo(), bar(), a + b)); // 23
シンタックス 3:次の例は、関数で括弧を使用する場合を示しています。
var today:Date = new Date();
trace(today.getFullYear()); // outputs current year
function traceParameter(param):void {
trace(param);
}
traceParameter(2 * 2); // 4
関連項目
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
ECMAScript for XML(E4X)の XML 構造内の式を評価します。例えば、myXML.(lastName == "Smith") では、名前が lastName で値が "Smith" の XML エレメントが識別されます。結果は XMLList オブジェクトです。
オペランド | myXML:* —
XML または XMLList オブジェクト。
|
| expression:* —
検索するエレメントを定義する式。
|
結果例 例の使用法 次の例では、括弧を使用して、エレメントおよび属性を識別しています。
var myXML:XML =
<employees>
<employee id = "42">
<firstName>Joe</firstName>
<lastName>Smith</lastName>
</employee>
<employee id = "43">
<firstName>Susan</firstName>
<lastName>Jones</lastName>
</employee>
<employee id = "44">
<firstName>Anne</firstName>
<lastName>Smith</lastName>
</employee>
</employees>;
trace(myXML.employee.(lastName == "Smith").@id.toXMLString());
// 42
// 44
trace(myXML.employee.(Number(@id) > 42).@id.toXMLString());
// 43
// 44
関連項目
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
文字の前後を囲んで使用する場合、囲まれた文字はリテラル値を表し、変数やストリング、その他の ActionScript エレメントではなく、正規表現(RegExp)と見なされます。ただし、2 つの連続したスラッシュ(//)で始まる場合は、コメントの最初であることを表します。
オペランド | pattern:String —
正規表現のパターンを定義する 1 個以上の文字のシーケンス。
|
| flags:String —
0 個以上の文字 g(global フラグ)、i(ignoreCase フラグ)、s(dotall フラグ)、および x(extended フラグ)で構成されるシーケンス。
|
例 例の使用法 次の例では、スラッシュ(/)を使用して RegExp 型の変数の値を設定し、一致処理で大文字と小文字を区別しないよう、
i フラグを設定しています。
var myRegExp:RegExp = /foo-\d+/i;
trace(myRegExp.exec("ABC Foo-32 def.")); // Foo-32
関連項目
使用方法 | expression1 === expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
自動データ変換を行わずに、2 つの式が等しいかどうかをテストします。両方の式が、そのデータ型も含めて等しい場合、結果は true になります。
厳密な等価(===)演算子は、次の 3 つの点で等価(==)演算子と同じです。
- 数値とブール値は値により比較され、それらの値が同じであれば、等しいと見なされます。
- ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。
- オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。
厳密な等価(
===)演算子は、次の 2 つの点で等価(
==)演算子と異なります。
- 厳密な等価()演算子は Number、int、および uint 型のみ自動データ変換を行い、等価()演算子はすべてのプリミティブデータ型の自動データ変換を行います。
null と undefined を比較する場合、厳密な等価演算子では false が返されます。
厳密な等価演算子の結果は、ActionScript 3.0 と ActionScript 2.0 で、プリミティブ値(例:
var x:Number = 1)とプリミティブオブジェクト(例:
var x:Number = new Number(1))が関わる 2 つの状況において異なります。これは、ActionScript 3.0 では、プリミティブ値とプリミティブラッパーオプジェクトの区別がなくなったためです。
1 つ目は、プリミティブ値と同じ値を持つプリミティブオブジェクトを比較する場合です。ActionScript 3.0 では true が返されますが、以前のバージョンでは false が返されます。以前のバージョンでは、プリミティブ値のデータ型は Boolean、Number、または String のいずれかでしたが、プリミティブオブジェクトのデータ型は Boolean、Number、または String ではなく Object でした。実質的な違いとして、次のコードの結果は、以前のバージョンの ActionScript ではオペランドのデータ型が一致しないため false になりますが、ActionScript 3.0 では、オブジェクト内にラップされているかどうかに関わらず、プリミティブ値のデータ型は Boolean、Number、int、uint、または String のいずれかであるため、結果は true となります。
var num1:Number = 1;
var num2:Number = new Number(1);
trace(num1 === num2); // true in ActionScript 3.0, false in ActionScript 2.0
2 つ目は、同じ値を持つ 2 つのプリミティブオブジェクトを比較する場合です。ActionScript 3.0 では
true が返されますが、以前のバージョンでは
false が返されます。
var num1:Number = new Number(1);
var num2:Number = new Number(1);
trace(num1 == num2); // true in ActionScript 3.0, false in ActionScript 2.0
trace(num1 === num2); // true in ActionScript 3.0, false in ActionScript 2.0
以前のバージョンの ActionScript では、両方の変数が Object データ型であるため参照によって比較され、等価および厳密な等価の演算結果は両方とも
false になります。ActionScript 3.0 では、両方の変数は Number データ型であるため値によって比較され、等価および厳密な等価の演算結果は両方とも
true になります。
オペランド | expression1:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。
|
| expression2:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。
|
結果例 例の使用法 次の例では、値とデータ型の両方が一致する場合、厳密な等価(
===)と等価(
==)が同じ結果になることを示しています。
var string1:String = "5";
var string2:String = "5";
trace(string1 == string2); // true
trace(string1 === string2); // true
次の例では、厳密な等価演算子が String データ型を Number に変換しないのに対し、等価(
==)演算子では変換することを示しています。
// The equality (==) operator converts 5 to "5", but the strict equality operator does not
var string1:String = "5";
var num:Number = 5;
trace(string1 == num); // true
trace(string1 === num); // false
次の例では、厳密な等価演算子がブール値を数値に変換しないのに対し、等価演算子では変換することを示しています。
var num:Number = 1;
var bool:Boolean = true;
trace(num == bool); // true
trace(num === bool); // false
次の例では、厳密な等価演算子が int および uint のデータ型を変換することを示しています。
var num1:Number = 1;
var num2:int = 1;
var num3:uint = 1;
trace(num1 === num2); // true
trace(num1 === num3); // true
次の例では、厳密な等価演算子では
null と
undefined が等しくないと見なされるのに対し、等価演算子では等しいと見なされることを示しています。
trace(null == undefined); // true
trace(null === undefined); // false
関連項目
使用方法 | expression1 !== expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
厳密な等価(===)演算子の正反対が真であるかどうかをテストします。厳密な等価演算子は、int および uint のデータ型のみが変換されるという点以外は不等価演算子と同じです。
expression1 が expression2 と等しく、両方のデータ型が同じである場合、結果は false になります。
厳密な不等価(!==)演算子は、次の 3 つの点で不等価(!=)演算子と同じです。
- 数値とブール値は値により比較され、それらの値が同じであれば、等しいと見なされます。
- ストリング式は、文字数が同じで、同じ文字で構成されている場合に、等しいと見なされます。
- オブジェクト、配列、および関数を表す変数は、参照により比較されます。2 つの変数が同じオブジェクト、配列、または関数を参照する場合、それらの変数は等価です。2 つの別個の配列は、エレメント数が同じである場合でも、等しいとは見なされません。
厳密な不等価演算子は、次の 2 つの点で不等価(
!=)演算子と異なります。
- 厳密な不等価(
!==)演算子は Number、int、および uint 型のみ自動データ変換を行い、不等価(!=)演算子はすべてのプリミティブデータ型の自動データ変換を行います。
null と undefined を比較する場合、厳密な不等価(!==)演算子では true が返されます。
オペランド | expression1:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。
|
| expression2:Object —
数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。
|
結果例 例の使用法 次のコードのコメントは、等価演算子(
==)、厳密な等価演算子(
===)、厳密な不等価演算子(
!==)を使用した演算の戻り値を示しています。
var s1:String = "5";
var s2:String = "5";
var s3:String = "Hello";
var n:Number = 5;
var b:Boolean = true;
trace(s1 == s2); // true
trace(s1 == s3); // false
trace(s1 == n); // true
trace(s1 == b); // false
trace(s1 === s2); // true
trace(s1 === s3); // false
trace(s1 === n); // false
trace(s1 === b); // false
trace(s1 !== s2); // false
trace(s1 !== s3); // true
trace(s1 !== n); // true
trace(s1 !== b); // true
関連項目
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
文字の前後を囲んで使用する場合、囲まれた文字はリテラル値を表し、変数や数値、その他の ActionScript エレメントではなく、ストリングと見なされます。
オペランド例 例の使用法 次の例では、引用符(")を使用して、変数
yourGuess の値がリテラルストリング
"Prince Edward Island" であり、変数名ではないことを示しています。
var yourGuess:String = "Prince Edward Island";
submit_btn.onRelease = function() { trace(yourGuess); };
// Prince Edward Island
関連項目
使用方法 | -expression expression1 - expression2 |
| ランタイムバージョン: | Flash Player 9 |
符号反転や減算に使用します。
シンタックス 1:符号反転に使用する場合、式の符号を逆にします。
シンタックス 2:減算に使用する場合、2 つの式に対して算術的な減算を行い、expression1 から expression2 を減算します。両方の式が整数であれば、その差は整数です。いずれかの式または両方の式が浮動小数点数であれば、その差は浮動小数点数です。
オペランド | expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果例 例の使用法 シンタックス 1:次のステートメントは、式 2 + 3 の符号を逆にします。
シンタックス 2:次のステートメントは、整数 5 から整数 2 を減算します。
結果は、整数の 3 です。
次のステートメントは、浮動小数点数 3.25 から浮動小数点数 1.5 を減算します。
trace(3.25 - 1.5); // 1.75
結果は、浮動小数点数の 1.75 です。
関連項目
使用方法 | expression1 -= expression2 |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression1 に expression1 - expression2 の値を割り当てます。例えば、次の 2 つのステートメントは同じです。
x -= y ;
x = x - y;
ストリング式は数値に変換される必要があります。変換されない場合、結果は NaN(非数)となります。
オペランド | expression1:Number —
数値、または評価結果が数値になる式。
|
| expression2:Number —
数値、または評価結果が数値になる式。
|
結果例 例の使用法 次の例では、減算後代入(
-=)演算子を使用して、5 から 10 を減算し、その結果を変数
x に割り当てます。
var x:Number = 5;
var y:Number = 10;
x -= y;
trace(x); // -5
次の例では、ストリングがどのように数値に変換されるかを示します。
var x:String = "5";
var y:String = "10";
x -= y;
trace(x); // -5
関連項目
使用方法 | [modifiers] var variableName:type function functionName():type { ... } function functionName(parameter1:type, ..., parameterN:type) [:type]{ ... } |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
データ型を割り当てるために使用します。この演算子は、変数の型、関数の戻り値の型、または関数パラメータの型を指定します。変数の宣言または割り当てで使用する場合は、変数の型を指定します。関数の宣言または定義で使用する場合は、関数の戻り値の型を指定します。関数定義の関数パラメータで使用する場合は、そのパラメータの変数の型を指定します。
型チェックは実行時に必ず行われます。ただし、コンパイラが strict モードに設定されている場合は、コンパイル時にもすべての型のチェックが行われ、型の不一致がある場合にエラーが発生します。型の不一致は、割り当て操作、関数の呼び出し、ドット(.)演算子を使用したクラスメンバーの逆参照の際に発生する可能性があります。
使用できる型としては、すべてのネイティブオブジェクト型、独自に定義したクラスとインターフェイス、および void があります。認識されるネイティブ型には、ブール(Boolean)、数値(Number)、整数(int)、符号なし整数(uint)、ストリング(String)があります。また、すべてのビルトインクラスは、ネイティブ型としてサポートされます。
データ型を割り当てない場合、変数、関数の戻り値、または関数のパラメータは型指定なしと見なされ、どのようなデータ型の値も取ることができます。型指定のない値を使用することを明示するには、型注釈にアスタリスク(*)文字を使用します。アスタリスク文字を型注釈に使用すると、変数、関数の戻り値の型、または関数のパラメータの型を指定しないのと同じことになります。
オペランド | variableName:* —
変数の識別子。
|
| type:* —
ネイティブのデータ型、定義済みのクラス名、またはインターフェイス名。
|
| functionName:Function —
関数の識別子。
|
| parameter:* —
関数パラメータの識別子。
|
例 例の使用法 シンタックス 1:次の例では、
userName という名前のパブリック変数を宣言しています。この変数は String 型で、空のストリングを割り当てます。
var userName:String = "";
シンタックス 2:次の例では、
randomInt() という名前の関数を定義し、戻り値の型を int に指定しています。
function randomInt(integer:int):int {
return Math.round(Math.random()*integer);
}
trace(randomInt(8));
シンタックス 3:次の例では、
squareRoot() という名前の関数を定義しています。この関数は
val という Number 型のパラメータを受け取り、
val の平方根を Number 型で返します。
function squareRoot(val:Number):Number {
return Math.sqrt(val);
}
trace(squareRoot(121));
関連項目
使用方法| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
expression を評価し、式のデータ型を表すストリングを返します。結果は、boolean、function、number、object、string、および xml の、6 つのストリング値に限定されます。ユーザー定義クラスのインスタンスにこの演算子を適用する場合、結果は object のストリングになります。typeof 演算子は、後方互換性を維持するために提供されています。型の互換性をチェックするには、is 演算子を使用します。
オペランド | expression:Object —
評価するオブジェクト。
|
結果 | String — expression の型のストリング表現。次の表に、typeof 演算子を使用した結果を式の型別に示します。
| 式の型 |
結果 |
|
Array
|
object
|
|
Boolean
|
boolean
|
|
機能
|
function
|
|
int
|
number
|
|
Number
|
number
|
|
Object
|
object
|
|
String
|
string
|
|
uint
|
number
|
|
XML
|
xml
|
|
XMLList
|
xml
|
|
例 例の使用法
次の例では、様々なオブジェクトや値に対して
typeof を使用した結果を示しています。
trace(typeof Array); // object
trace(typeof Date); // object
trace(typeof 3); // number
次の例では、リテラル値を割り当てるかどうか、または
new 演算子を使用してオブジェクトを作成するかどうかに関わらず、ActionScript 3.0 ではプリミティブオブジェクトのデータ型が同じになることを示しています。これは以前のバージョンの ActionScript とは異なります。以前のバージョンでは、変数
b に対して、
typeof 演算子は
object を返します。
var a:String = "sample";
var b:String = new String("sample");
trace(typeof a); // string
trace(typeof b); // string
関連項目
使用方法| ランタイムバージョン: | Flash Player 9 |
式を評価した後、その値を破棄して、undefined を返します。void 演算子は、多くの場合、== 演算子を使用して undefined 値をテストする比較において使用します。
オペランド結果 関連項目
使用方法 | myXML= <{tagName} {attributeName} = {attributeValue}>{content}</{tagName}> |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9 |
XML リテラル内の XML タグを定義します。終了タグはスラッシュ / を使用して定義します。
オペランド | myXML:* —
XML または XMLList オブジェクト。
|
| tagName:* —
評価結果が XML タグの名前になる式。
|
| attributeName:* —
評価結果が XML 属性の名前になる式。
|
| attributeValue:* —
評価結果が XML 属性の値になる式。
|
| content:* —
評価結果が XML タグの内容になる式。
|
例 例の使用法 次の例では、XML リテラルの定義に
< および
> 演算子を使用しています。
var x:XML = <item id= "324">cola</item>;
関連項目
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Thu Jan 8 2009, 12:18 AM -08:00