__Global__VerifyError VerifyError クラスは、不正な形式または破損した SWF ファイルが検出された場合に発生するエラーを表します。VerifyError は、不正な形式または破損した SWF ファイルが検出された場合にスローされます。 Error VerifyError クラスは、不正な形式または破損した SWF ファイルが検出された場合に発生するエラーを表します。 Loader クラスVerifyError 新しい VerifyError オブジェクトを作成します。messageStringVerifyError オブジェクトに関連付けられたメッセージです。 新しい VerifyError オブジェクトを作成します。 ArgumentError ArgumentError クラスは、関数で指定された引数がその関数の定義に適合していないために発生するエラーを表します。関数呼び出しで指定されたパラメーター値がその関数の定義に適合していない場合、ArgumentError がスローされます。 Error ArgumentError クラスは、関数で指定された引数がその関数の定義に適合していないために発生するエラーを表します。このエラーは、例えば、不適切な数の引数、不適切な型の引数、または無効な引数を指定して関数が呼び出されたときなどに発生します。 次の例は、ArgumentError エラーが try..catch ステートメント内でどのように生成され、処理されるかを示しています。println() 関数は、1 つの引数(1 つのストリング)を受け取りますが、2 つのストリングが指定されているため、エラーがスローされます。通常、このようなエラーはコンパイラーでキャッチされる場合がありますが、this[] シンタックス(try ステートメント内)で、関数に対するコンパイラーのシンタックスチェックは迂回されています。 package { import flash.display.Sprite; public class ArgumentErrorExample extends Sprite { public function ArgumentErrorExample() { println("Hello World"); try { this["println"]("Hello", "World"); } catch(e:ArgumentError) { trace(e); } } public function println(str:String):void { trace(str); } } } ArgumentError 新しい ArgumentError オブジェクトを作成します。messageStringエラーに関連付けられたストリングです。 新しい ArgumentError オブジェクトを作成します。 QName QName オブジェクトは、XML エレメントの完全修飾名と属性を表します。Object QName オブジェクトは、XML エレメントの完全修飾名と属性を表します。各 QName オブジェクトには、ローカル名と名前空間 URI が付けられます。名前空間 URI の値が null の場合、QName オブジェクトはすべての名前空間に一致します。QName コンストラクターは、別の QName オブジェクトのコピーである新しい QName オブジェクトを作成したり、Namespace オブジェクトの uri と QName オブジェクトの localName を持つ新しい QName オブジェクトを作成する場合に使用します。

E4X 固有のメソッドでは、QName オブジェクトとストリングを同じように使用することができます。E4X メソッドは、QName、Namespace、XML、および XMLList の各クラスにあります。これらの E4X メソッドは、ストリングを受け取ると共に、QName オブジェクトを受け取ることもできます。この互換性によって、名前空間のサポートと XML.child() などのメソッドの連携が行われます。

XML、XMLList、Namespace などのクラスと同様、QName クラスには ECMAScript for XML(E4X)仕様(ECMA-357 Edition 2)で定義されている強力な XML 処理規格が実装されています。

完全修飾識別子は QName オブジェクトとして評価されます。名前空間を特定しないで XML エレメントの QName オブジェクトを指定した場合、関連付けられている QName オブジェクトの uri プロパティは、グローバルなデフォルトの名前空間に設定されます。名前空間を特定しないで XML 属性の QName オブジェクトを指定した場合、uri プロパティは空のストリングに設定されます。

次の例は、QName インスタンスを作成し、それを使用して XML エレメントを選択する方法を示しています。QName を作成する 2 つの方法を示します。
  1. Namespace インスタンスを作成し、それを QName コンストラクターへの入力として使用する。この方法は、Namespace.prefix プロパティを後で別の目的のために使用する場合に最適です。
  2. QName コンストラクター内の uri パラメーターに対して単純なストリング値を使用して QName インスタンスを作成する。

このコードは次の処理を行います。

  1. rssXML という名前の XML 変数を定義します。
  2. 接頭辞 dc を使用して新しい Namespace オブジェクトを作成します。
  3. その Namespace オブジェクトとローカル名 creator を使用して、新しい QName オブジェクトを作成します。
  4. showDescendants() メソッドを呼び出します。このメソッドは XML.descendants() メソッドを使用して、指定された QName インスタンスに一致する修飾名を持つすべての子孫エレメントを含む XMLList インスタンスを取得します。
  5. for each ループを使用して、リスト内の各エレメントの修飾語とテキスト値を表示します。
  6. uri パラメーターとローカル名 date のストリング値を使用して、別の QName オブジェクトを作成します。
  7. showDescendants() メソッドを再び呼び出して、子孫エレメントの名前とテキスト値を表示します。
package { import flash.display.Sprite; public class QNameExample extends Sprite { public function QNameExample() { var rssXML:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel rdf:about="http://www.xml.com/cs/xml/query/q/19"> <title>Test RSS</title> <link>http://www.adobe.com/</link> <description>This is a test RSS document.</description> <language>en-us</language> <items> <rdf:Seq> <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/> <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/> </rdf:Seq> </items> </channel> <item rdf:about="http://www.adobe.com/devnet/flash/"> <title>Flash Developer Center</title> <link>http://www.adobe.com/devnet/flash/</link> <description>Welcome to the Flash Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-08-08</dc:date> </item> <item rdf:about="http://www.adobe.com/devnet/flex/"> <title>Flex Developer Center</title> <link>http://www.adobe.com/devnet/flex/</link> <description>Welcome to the Flex Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-10-16</dc:date> </item> </rdf:RDF>; var dcNamespace:Namespace = new Namespace("dc", "http://purl.org/dc/elements/1.1/"); var creatorQName:QName = new QName(dcNamespace, "creator"); trace(creatorQName.uri); // http://purl.org/dc/elements/1.1/ trace(creatorQName.localName); // creator showDescendants(rssXML, creatorQName); var dateQName:QName = new QName("http://purl.org/dc/elements/1.1/", "date"); trace(dateQName.uri); // http://purl.org/dc/elements/1.1/ trace(dateQName.localName); // date showDescendants(rssXML, dateQName); } public function showDescendants(xmlData:XML, qualifiedName:QName):void { var decendantList:XMLList = xmlData.descendants(qualifiedName); for each (var element:XML in decendantList) { trace(element.name()); // the fully qualified name, // like "http://purl.org/dc/elements/1.1/::creator" trace(element); // the simple text value of each element, like "Adobe" } } } }
XMLXMLListNamespaceECMAScript for XML(E4X)specification(ECMA-357 edition 2)QName 別の QName オブジェクトのコピーである QName オブジェクトを作成します。qnameQNameコピーする QName オブジェクトです。他のタイプのオブジェクトはストリングに変換され、新しい QName オブジェクトの localName プロパティに割り当てられます。 別の QName オブジェクトのコピーである QName オブジェクトを作成します。コンストラクターに渡されたパラメーターが QName オブジェクトである場合、QName オブジェクトのコピーが作成されます。パラメーターが QName オブジェクトでない場合、パラメーターはストリングに変換され、新しい QName インスタンスの localName プロパティに割り当てられます。パラメーターが undefined であるか未指定の場合、localName プロパティが空のストリングに設定された新しい QName オブジェクトが作成されます。

注意:このクラスは、2 つのコンストラクター項目を示しています。それぞれの形式が異なるパラメーターを受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡されるパラメーターの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。

QName Namespace オブジェクトの URI オブジェクトと QName オブジェクトの localName を持つ QName オブジェクトを作成します。uriNamespaceuri 値のコピー元の Namespace オブジェクトです。他のタイプのパラメーターはストリングに変換されます。 localNameQNamelocalName 値のコピー元の QName オブジェクトです。他のタイプのパラメーターはストリングに変換されます。 Namespace オブジェクトの URI オブジェクトと QName オブジェクトの localName を持つ QName オブジェクトを作成します。いずれかのパラメーターが目的のデータ型でない場合、パラメーターはストリングに変換され、新しい QName オブジェクトの該当のプロパティに割り当てられます。例えば、両方のパラメーターがストリングの場合、uri プロパティが最初のパラメーターに設定され、localName プロパティが 2 番目のパラメーターに設定された新しい QName オブジェクトが返されます。つまり、他の多くの順列と同様、次の順列がコントラクタで有効な形式となります。
QName (uri:Namespace, localName:String);
QName (uri:String, localName: QName);
QName (uri:String, localName: String);

nulluri パラメーターに渡すと、新しい QName オブジェクトの uri プロパティは null に設定されます。

注意:このクラスは、2 つのコンストラクター項目を示しています。それぞれの形式が異なるパラメーターを受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡されるパラメーターの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。

toString URI と QName オブジェクトのローカル名を "::" で区切ったストリングを返します。ストリングとしての完全修飾名です。 String URI と QName オブジェクトのローカル名を "::" で区切ったストリングを返します。

形式は QName オブジェクトの uri プロパティによって決まります。

If uri == "" 
		toString returns localName
	else if uri == null
		toString returns ~~::localName 
	else
		toString returns uri::localName
valueOf QName オブジェクトを返します。QName インスタンスのプリミティブ値です。 QName QName オブジェクトを返します。 localName QName オブジェクトのローカル名です。String QName オブジェクトのローカル名です。 uri QName オブジェクトの URI です。String QName オブジェクトの URI です。
EvalError EvalError クラスは、ユーザーコードが Function オブジェクトで eval() 関数を呼び出したとき、または new 演算子を使用しようとしたときに発生するエラーです。EvalError は、コードが Function オブジェクトで eval() を呼び出そうとしたとき、または new を使用しようとしたときにスローされます。 Error EvalError クラスは、ユーザーコードが Function オブジェクトで eval() 関数を呼び出したとき、または new 演算子を使用しようとしたときに発生するエラーです。Function オブジェクトでの eval() および new の呼び出しはサポートされていません。 EvalError 新しい EvalError オブジェクトを作成します。messageStringエラーに関連付けられたストリングです。 新しい EvalError オブジェクトを作成します。 Math Math クラスには、一般的な数学関数および値を表すメソッドおよび定数があります。Math クラスは、一般的な数学定数および数学関数を定義する静的プロパティおよびメソッドから構成されるトップレベルのクラスです。 Object Math クラスには、一般的な数学関数および値を表すメソッドおよび定数があります。

数学定数および関数にアクセスして処理するには、このクラスのメソッドとプロパティを使用します。Math クラスのプロパティとメソッドはすべて静的であり、Math.method( parameter ) または Math.constant というシンタックスを使用して呼び出す必要があります。ActionScript では、定数は倍精度の IEEE-754 浮動小数の最大精度で定義されます。

Math クラスのいくつかのメソッドでは、ラジアン単位の角度がパラメーターとして使用されています。メソッドを呼び出す前に次の式を使用してラジアン値を計算し、計算した値をパラメーターとして指定できます。また、式の右辺全体(degrees には度数で角度を代入)をラジアンパラメーターとして指定することもできます。

ラジアン値を計算するには、次の式を使用します。

 radians = degrees ~~ Math.PI/180
 

ラジアンで角度を計算するには、次の式を使用します。

 degrees = radians ~~ 180/Math.PI
 

次の例では、角度 45 度のサインを計算する式をパラメーターとして渡します。

Math.sin(45 ~~ Math.PI/180)Math.sin(.7854) と同じです。

注意:Math 関数 acos、asin、atan、atan2、cos、exp、log、pow、sin、および sqrt の結果は、CPU やオペレーティングシステムで使用されているアルゴリズムによって少し異なる値になる場合があります。Flash ランタイムでは、上述の関数を計算するときに CPU(CPU が浮動小数の計算をサポートしていない場合はオペレーティングシステム)が呼び出され、使用する CPU やオペレーティングシステムによって多少異なる結果が表示されます。

abs パラメーター val で指定された数値の絶対値を計算して返します。指定したパラメーターの絶対値です。 NumbervalNumber絶対値を返す数値です。 指定した Number の絶対値を返します。 パラメーター val で指定された数値の絶対値を計算して返します。 acos パラメーター val で指定された数値のアークコサイン(逆余弦)を計算してラジアン単位で返します。パラメーター val のアークコサインです。 NumbervalNumber-1.0 ~ 1.0 の数値です。 指定された Number のアークコサイン(逆余弦)をラジアン単位で返します。 パラメーター val で指定された数値のアークコサイン(逆余弦)を計算してラジアン単位で返します。 asin パラメーター val で指定された数値のアークサイン(逆正弦)を計算してラジアン単位で返します。2 で割った負のπと 2 で割った正のπの間の数値です。 NumbervalNumber-1.0 ~ 1.0 の数値です。 指定された Number パラメーターのアークサイン(逆正弦)の値をラジアン単位で返します。 パラメーター val で指定された数値のアークサイン(逆正弦)を計算してラジアン単位で返します。 atan2 y/x 座標の角度をラジアン単位で計算して返します。このとき、円の x 軸(0,0 は円の中心を示します)から反時計回りに測定します。数値。 NumberyNumberポイントの y 座標です。 xNumberポイントの x 座標です。 円の x 軸から反時計回りに測定した場合に、y/x 座標の角度をラジアン単位で返します。 y/x 座標の角度をラジアン単位で計算して返します。このとき、円の x 軸(0,0 は円の中心を示します)から反時計回りに測定します。戻り値は、正のパイと負のパイの間の値になります。atan2 への第 1 パラメーターは常に y 座標です。 Math.acos()Math.asin()Math.atan()Math.cos()Math.sin()Math.tan()atan パラメーター val で指定された値がタンジェント(正接)の値になる角度を計算してラジアン単位で返します。2 で割った負のπと 2 で割った正のπの間の数値です。 NumbervalNumber角度のタンジェントを表す数値です。 パラメーター val で指定された値がタンジェント(正接)の値になる角度をラジアン単位で返します。 パラメーター val で指定された値がタンジェント(正接)の値になる角度を計算してラジアン単位で返します。戻り値は、2 で割った負の π と 2 で割った正の π の間(-π/2 ~ π/2)の値になります。 ceil 指定された数値または式を切り上げた値を返します。パラメーター val の値以上の最も近い整数です。 NumbervalNumber数値または式です。 指定された数値または式を切り上げた値を返します。 指定された数値または式を切り上げた値を返します。数値の切り上げとは、その数値以上の最も近い整数にすることです。 Math.floor()Math.round()cos ラジアン単位で指定された角度のコサイン(余弦)を計算して返します。-1.0 ~ 1.0 の数値です。 NumberangleRadiansNumber角度をラジアンで表した数値です。 指定された角度のコサインを返します。 ラジアン単位で指定された角度のコサイン(余弦)を計算して返します。ラジアンを計算するには、Math クラスの概要を参照してください。 Math.acos()Math.asin()Math.atan()Math.atan2()Math.sin()Math.tan()exp 自然対数の底(e)をパラメーター x で指定された指数で累乗した値を返します。e のパラメーター val による累乗です。 NumbervalNumber指数; 数値または式です。 自然対数の底(e)をパラメーター val で指定された指数で累乗した値を返します。 自然対数の底(e)を、パラメーター x で指定された指数で累乗した値を返します。定数 Math.E を使用して、e の値を指定できます。 Math.Efloor パラメーター val で指定された数値または式を切り捨てた値を返します。パラメーター val の値以下の最も近い整数です。 NumbervalNumber数値または式です。 パラメーター val で指定された数値または式を切り捨てた値を返します。 パラメーター val で指定された数値または式を切り捨てた値を返します。切り捨てとは、指定された数値または式以下の最も近い整数にすることです。 log パラメーター val の自然対数を返します。パラメーター val の自然対数です。 NumbervalNumber値が 0 よりも大きい数値または式です。 パラメーター val の自然対数を返します。 パラメーター val の自然対数を返します。 max val1 と val2(または 3 つ以上の値)を評価し、最大値を返します。パラメーター val1val2(または 3 つ以上の値)の最大値です。 Numberval1Number数値または式です。 val2Number数値または式です。 rest数値または式です。Math.max() は複数の引数を取ることができます。 val1 と val2 を評価し、大きい方の値を返します。 val1val2(または 3 つ以上の値)を評価し、最大値を返します。 Math.min()min val1 と val2(または 3 つ以上の値)を評価し、最小値を返します。パラメーター val1val2(または 3 つ以上の値)の最小値です。 Numberval1Number数値または式です。 val2Number数値または式です。 rest数値または式です。Math.min() は複数の引数を取ることができます。 パラメーター val1 と val2 を評価し、小さい方の値を返します。 val1val2(または 3 つ以上の値)を評価し、最小値を返します。 Math.max()pow base の power 乗を計算して返します。base の値を pow で累乗した値です。 NumberbaseNumberパラメーター pow の指数で累乗される数値です。 powNumberパラメーター base を累乗する指数です。 val1 の val2 乗を返します。 basepower 乗を計算して返します。 random 擬似乱数 n を返します(0 &lt;= n &lt; 1)。疑似乱数です。 Number疑似乱数 n を返します(0 <= n < 1)。 疑似乱数 n を返します(0 <= n < 1)。返される数値は非公開の方式で計算された「擬似乱数」です。これは、計算には必ず非ランダムの要素が含まれるためです。 round パラメーター val の値を最も近い整数に四捨五入し、値を返します。最も近い整数に四捨五入されたパラメーター val です。 NumbervalNumber四捨五入する数値です。 パラメーター val を最も近い整数に四捨五入した値を返します。 パラメーター val の値を最も近い整数に四捨五入し、値を返します。val が 2 つの最も近い整数から等距離である場合(.5 で終わる数値など)、値は次に大きな整数に切り上げられます。 Math.ceil()Math.floor()sin ラジアン単位で指定された角度のサイン(正弦)を計算して返します。数値。指定した角度のサイン(-1.0 ~ 1.0)です。 NumberangleRadiansNumber角度をラジアンで表した数値です。 指定された角度のサインを返します。 ラジアン単位で指定された角度のサイン(正弦)を計算して返します。ラジアンを計算するには、Math クラスの概要を参照してください。 Math.acos()Math.asin()Math.atan()Math.atan2()Math.cos()Math.tan()sqrt 指定された数値の平方根を計算して返します。パラメーター val が 0 以上の場合は数値、そうでない場合は NaN(非数)です。 NumbervalNumber0 以上の数値または式です。 指定された数値の平方根を返します。 指定された数値の平方根を計算して返します。 tan 指定された角度のタンジェント(正接)を計算して返します。パラメーター angleRadians のタンジェントです。 NumberangleRadiansNumber角度をラジアンで表した数値です。 指定された角度のタンジェントを返します。 指定された角度のタンジェント(正接)を計算して返します。ラジアンを計算するには、Math クラスの概要を参照してください。 Math.acos()Math.asin()Math.atan()Math.atan2()Math.cos()Math.sin()E 自然対数の底を表す数学定数で e と表記されるものです。2.71828182845905Number自然対数の底を表す数学定数で e と表記されるものです。 自然対数の底を表す数学定数で e と表記されるものです。e の近似値は 2.71828182845905 です。 LN10 10 の自然対数を表す数学定数で loge10 と表記されるものです。近似値は 2.302585092994046 です。2.302585092994046Number10 の自然対数を表す数学定数で loge10 と表記されるものです。近似値は 2.302585092994046 です。 10 の自然対数を表す数学定数で loge10 と表記されるものです。近似値は 2.302585092994046 です。 LN2 2 の自然対数を表す数学定数で loge2 と表記されるものです。近似値は 0.6931471805599453 です。0.6931471805599453Number2 の自然対数を表す数学定数で loge2 と表記されるものです。近似値は 0.6931471805599453 です。 2 の自然対数を表す数学定数で loge2 と表記されるものです。近似値は 0.6931471805599453 です。 LOG10E 10 を底とする定数 e(Math.E)の対数を表す数学定数で log10e と表記されるものです。近似値は 0.4342944819032518 です。0.4342944819032518Number10 を底とする定数 e の対数を表す数学定数で log10e と表記されるものです。近似値は 0.4342944819032518 です。 10 を底とする定数 eMath.E)の対数を表す数学定数で log10e と表記されるものです。近似値は 0.4342944819032518 です。

Math.log() メソッドは、数値の自然対数を計算します。Math.log() の結果に Math.LOG10E を乗算すると、10 を底とする対数を得ることができます。

LOG2E 2 を底とする定数 e の対数を表す数学定数で log2e と表記されるものです。近似値は 1.442695040888963387 です。1.442695040888963387Number2 を底とする定数 e の対数を表す数学定数で log2e と表記されるものです。近似値は 1.442695040888963387 です。 2 を底とする定数 e の対数を表す数学定数で log2e と表記されるものです。近似値は 1.442695040888963387 です。

Math.log メソッドは、数値の自然対数を計算します。Math.log() の結果に Math.LOG2E を乗算すると、2 を底とする対数を得ることができます。

PI 円周と円の直径の比を表す数学定数で pi と表記されるものです。近似値は 3.141592653589793 です。3.141592653589793Number円周と円の直径の比を表す数学定数で pi と表記されるものです。近似値は 3.141592653589793 です。 円周と円の直径の比を表す数学定数で pi と表記されるものです。近似値は 3.141592653589793 です。 SQRT1_2 1/2 の平方根を表す数学定数です。近似値は 0.7071067811865476 です。0.7071067811865476Number1/2 の平方根を表す数学定数です。近似値は 0.7071067811865476 です。 1/2 の平方根を表す数学定数です。近似値は 0.7071067811865476 です。 SQRT2 2 の平方根を表す数学定数です。近似値は 1.4142135623730951 です。1.4142135623730951Number2 の平方根を表す数学定数です。近似値は 1.4142135623730951 です。 2 の平方根を表す数学定数です。近似値は 1.4142135623730951 です。
Array Array クラスを使用すると、配列にアクセスして操作することができます。インデックス配列にアクセスして操作することができます。 Object Array クラスを使用すると、配列にアクセスして操作することができます。配列インデックスは 0 から始まります。つまり、配列内の最初のエレメントは [0]、2 番目のエレメントは [1](以下同様)になります。Array オブジェクトを作成するには、new Array() コンストラクターを使用します。 Array() は関数としても呼び出すことができます。 さらに、配列アクセス([])演算子を使用すると、配列の初期化または配列のエレメントへのアクセスを行うことができます。

配列エレメントには、数値、ストリング、オブジェクトを含む各種データ型、さらに他の配列も保存できます。インデックス付き配列を作成し、その各エレメントに異なるインデックス配列を割り当てれば、「多次元」配列を作成できます。このような配列は、テーブル内のデータの表現に使用できるので、多次元であると考えられます。

配列は「希薄な配列」です。つまり、インデックス 0 に 1 つのエレメント、インデックス 5 に別のエレメントが存在しても、この 2 つのエレメントの間のインデックス位置にはエレメントが存在しない場合があります。このような場合、1 から 4 までの位置のエレメントは未定義となります。これはエレメントが存在しないことを示しており、必ずしも値 undefined を持つエレメントが存在するわけではありません。

配列では、値による代入ではなく、参照による代入が行われます。 ある配列変数に別の配列変数を代入すると、両方とも同じ配列を参照するようになります。

var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Both array variables refer to the same array. twoArray[0] = "z"; trace(oneArray); // Output: z,b,c.

「結合配列」(「ハッシュ」とも呼ばれる)の作成には Array クラスを使用しないでください。結合配列は、数値エレメントではなく名前付きエレメントを含むデータ構造です。結合配列の作成には、Object クラスを使用してください。ActionScript では Array クラスを使用して結合配列を作成できますが、結合配列で Array クラスのメソッドやプロパティは使用できません。

Array クラスを拡張してメソッドをオーバーライドまたは追加することができます。ただし、サブクラスを dynamic として指定する必要があります。そうしない場合、配列にデータを保管する機能が失われます。

次の例では、引数がなくエレメント数 0 個の新しい Array オブジェクト myArr を作成します。 package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
[] (array access)Object クラスArray 指定されたエレメントを持つ配列を作成することができます。引数は、0 以上の整数ではない数値です。 RangeErrorRangeErrorvalues複数の任意の値で構成されるカンマ区切りリストです。

注意:Array コンストラクターに数値パラメーターを 1 つだけ渡した場合、そのパラメーターは配列の length プロパティを指定するものと見なされます。

指定されたエレメントを持つ配列を作成することができます。任意の型の値を指定することができます。配列内の最初のエレメントのインデックスまたは位置は、常に 0 です。

注意:このクラスは、2 つのコンストラクター項目を示しています。コンストラクターはさまざまなタイプの引数を受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。

次の例では、初期エレメント数が 3 個の新しい Array オブジェクトを作成して、この配列にストリングエレメント onetwothree を設定し、その配列をストリングに変換します。 package { import flash.display.Sprite; public class Array_Array_3 extends Sprite { public function Array_Array_3() { var myArr:Array = new Array("one", "two", "three"); trace(myArr.length); // 3 trace(myArr); // one,two,three } } }
[] array accessArray.length
Array 指定された数のエレメントを持つ配列を作成することができます。引数は、0 以上の整数ではない数値です。 RangeErrorRangeErrornumElementsint0配列内のエレメント数を指定する整数です。 指定された数のエレメントを持つ配列を作成することができます。パラメーターを指定しない場合は、0 個のエレメントを持つ配列が作成されます。エレメント数を指定する場合は、numElements 個のエレメントを持つ配列が作成されます。

注意:このクラスは、2 つのコンストラクターメソッド項目を示しています。コンストラクターはさまざまなタイプの引数を受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。

次の例では、引数がなく初期のエレメント数が 0 個の Array オブジェクト myArr を作成します。 package { import flash.display.Sprite; public class Array_Array extends Sprite { public function Array_Array() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } } 次の例では、5 個の初期エレメント(長さが 5)を持つ Array オブジェクトを作成して、1 番目のエレメントにストリング "one" を設定し、ストリングエレメント "six" を、push() メソッドを使用して配列の最後に追加します。 package { import flash.display.Sprite; public class Array_Array_2 extends Sprite { public function Array_Array_2() { var myArr:Array = new Array(5); trace(myArr.length); // 5 myArr[0] = "one"; myArr.push("six"); trace(myArr); // one,,,,,six trace(myArr.length); // 6 } } }
[] array accessArray.length
concat パラメーターで指定されたエレメントを配列内のエレメントと連結して、新しい配列を作成します。この配列のエレメントの後にパラメーターのエレメントが続く配列です。 Arrayargs新しい配列内で連結する任意のデータ型(数値、エレメント、ストリングなど)の値です。 パラメーターに指定されたエレメントを連結します。 パラメーターで指定されたエレメントを配列内のエレメントと連結して、新しい配列を作成します。パラメーターで配列を指定すると、その配列のエレメントが連結されます。パラメーターを渡さない場合、新しい配列は元の配列の複製(浅い複製)になります。 次のコードは、4 つの Array オブジェクトを作成します。
  • numbers 配列。数値の 12、および3 が含まれています。
  • letters 配列。文字の ab、および c が含まれています。
  • numbersAndLetters 配列。concat() メソッドを呼び出し、配列 [1,2,3,a,b,c] を作成します。
  • lettersAndNumbers 配列。concat() メソッドを呼び出し、配列 [a,b,c,1,2,3] を作成します。
var numbers:Array = new Array(1, 2, 3); var letters:Array = new Array("a", "b", "c"); var numbersAndLetters:Array = numbers.concat(letters); var lettersAndNumbers:Array = letters.concat(numbers); trace(numbers); // 1,2,3 trace(letters); // a,b,c trace(numbersAndLetters); // 1,2,3,a,b,c trace(lettersAndNumbers); // a,b,c,1,2,3
every 指定された関数について false を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。ブール値です。true を返します(指定された関数について配列内のすべてのアイテムが true を返す場合)。それ以外の場合は false を返します。 BooleancallbackFunction配列内の各アイテムについて実行する関数です。この関数には、単純な比較(item < 20 など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
function callback(item:*, index:int, array:Array):Boolean;
thisObjectnull関数の this として使用するオブジェクトです。
指定された関数について false を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。このメソッドを使用して、配列内のすべてのアイテムがある基準(値が特定の数値より小さいなど)を満たしているかどうかを判別できます。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。例えば、me というムービークリップ内に、ある関数を作成するとします。

     function myFunction(obj:Object):void {
        //your code here
     }
     

次に、every() メソッドを、myArray という配列に対して使用するとします。

     myArray.every(myFunction, me);
     

myFunction は、Timeline クラスのメンバーであり、me でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(obj:Object):void {
         //your code here
     };
     myArray.every(myFunction, me);
     
次の例では、2 つの配列をテストして、各配列内のすべてのアイテムが数値であるかどうかを判別します。また、テストの結果を出力します。結果は、isNumeric が最初の配列で true、2 番目の配列で false であることを示しています。 package { import flash.display.Sprite; public class Array_every extends Sprite { public function Array_every() { var arr1:Array = new Array(1, 2, 4); var res1:Boolean = arr1.every(isNumeric); trace("isNumeric:", res1); // true var arr2:Array = new Array(1, 2, "ham"); var res2:Boolean = arr2.every(isNumeric); trace("isNumeric:", res2); // false } private function isNumeric(element:*, index:int, arr:Array):Boolean { return (element is Number); } } }
Array.some()
filter 配列内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しい配列を作成します。元の配列内のアイテムで true を返したものをすべて含む新しい配列です。 ArraycallbackFunction配列内の各アイテムについて実行する関数です。この関数には、単純な比較(item < 20 など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
    function callback(item:*, index:int, array:Array):Boolean;
thisObjectnull関数の this として使用するオブジェクトです。
配列内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しい配列を作成します。false を返すアイテムは、新しい配列に含められません。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。例えば、me というムービークリップ内に、ある関数を作成するとします。

     function myFunction(obj:Object):void {
        //your code here
     }
     

次に、filter() メソッドを、myArray という配列に対して使用するとします。

 
     myArray.filter(myFunction, me);
     

myFunction は、Timeline クラスのメンバーであり、me でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.filter(myFunction, me);
     
次の例では、管理者であるすべての従業員の配列を作成しています。 package { import flash.display.Sprite; public class Array_filter extends Sprite { public function Array_filter() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace("Employees:"); employees.forEach(traceEmployee); var managers:Array = employees.filter(isManager); trace("Managers:"); managers.forEach(traceEmployee); } private function isManager(element:*, index:int, arr:Array):Boolean { return (element.manager == true); } private function traceEmployee(element:*, index:int, arr:Array):void { trace("\t" + element.name + ((element.manager) ? " (manager)" : "")); } } }
Array.map()
forEach 配列内の各アイテムについて関数を実行します。callbackFunction配列内の各アイテムについて実行する関数です。この関数には、単純なコマンド(trace() ステートメントなど)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
    function callback(item:*, index:int, array:Array):void;
thisObjectnull関数の this として使用するオブジェクトです。
配列内の各アイテムについて関数を実行します。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。例えば、me というムービークリップ内に、ある関数を作成するとします。

     function myFunction(obj:Object):void {
        //your code here
     }
     

次に、forEach() メソッドを、myArray という配列に対して使用するとします。

     myArray.forEach(myFunction, me);
     

myFunction は、Timeline クラスのメンバーであり、me でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.forEach(myFunction, me);
     
次の例では、配列内の各アイテムについて trace() ステートメントを、traceEmployee() 関数で実行しています。 package { import flash.display.Sprite; public class Array_forEach extends Sprite { public function Array_forEach() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace(employees); employees.forEach(traceEmployee); } private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + ")"); } } } 次の例もまた、配列内の各アイテムについて trace()ステートメントを実行していますが、ここで使用する traceEmployee() 関数には若干の変更が加えられています。 package { import flash.display.Sprite; public class Array_forEach_2 extends Sprite { public function Array_forEach_2() { var employeeXML:XML = <employees> <employee name="Steven" manager="false" /> <employee name="Bruce" manager="true" /> <employee name="Rob" manager="false" /> </employees>; var employeesList:XMLList = employeeXML.employee; var employeesArray:Array = new Array(); for each (var tempXML:XML in employeesList) { employeesArray.push(tempXML); } employeesArray.sortOn("@name"); employeesArray.forEach(traceEmployee); } private function traceEmployee(element:*, index:Number, arr:Array):void { trace(element.@name + ((element.@manager == "true") ? " (manager)" : "")); } } }
indexOf 厳密な等価(===)を使用して配列内のアイテムを検索し、アイテムのインデックス位置を返します。配列内のアイテムの 0 から始まるインデックス位置です。searchElement 引数が見つからなかった場合、戻り値は -1 です。 intsearchElement配列内で検索するアイテムです。 fromIndexint0アイテムの検索を開始する配列内の場所です。 厳密な等価(===)を使用して配列内のアイテムを検索し、アイテムのインデックス位置を返します。 次の例では、指定された配列の位置を表示しています。 package { import flash.display.Sprite; public class Array_indexOf extends Sprite { public function Array_indexOf() { var arr:Array = new Array(123,45,6789); arr.push("123-45-6789"); arr.push("987-65-4321"); var index:int = arr.indexOf("123"); trace(index); // -1 var index2:int = arr.indexOf(123); trace(index2); // 0 } } } Array.lastIndexOf()=== (strict equality)join 配列内のエレメントをストリングに変換し、指定されたセパレーターをエレメント間に挿入し、エレメントを連結して、その結果をストリングとして返します。ストリングに変換された配列のエレメントで構成され、指定されたパラメーターで区切られているストリングです。 Stringsepunknown返されたストリング内の配列エレメントを区切る文字またはストリングです。このパラメーターを省略すると、デフォルトのセパレーターとしてカンマが使用されます。 配列内のエレメントをストリングに変換します。 配列内のエレメントをストリングに変換し、指定されたセパレーターをエレメント間に挿入し、エレメントを連結して、その結果をストリングとして返します。ネストされた配列は、join() メソッドに渡されるセパレーターで区切るのではなく、常にカンマ(,)で区切ります。 次のコードは、Array オブジェクトmyArr を作成し、エレメント onetwothree を設定します。次に one and two and three を含むストリングを、join() メソッドを使って作成します。 var myArr:Array = new Array("one", "two", "three"); var myStr:String = myArr.join(" and "); trace(myArr); // one,two,three trace(myStr); // one and two and three 次のコードは、Array オブジェクト specialChars を作成し、エレメント ()- と空白文字を設定します。次に (888) 867-5309 を含むストリングを作成します。次に、for ループを使用して、specialChars にリストされている各型の特殊文字を削除し、ストリング(myStr)を作成します。このストリングは、電話番号の数字の桁(888675309)のみが残されたものです。+ などの他の文字を specialChars に追加することもできるので、このルーチンは国際電話番号の形式にも対応します。 var phoneString:String = "(888) 867-5309"; var specialChars:Array = new Array("(", ")", "-", " "); var myStr:String = phoneString; var ln:uint = specialChars.length; for(var i:uint; i < ln; i++) { myStr = myStr.split(specialChars[i]).join(""); } var phoneNumber:Number = new Number(myStr); trace(phoneString); // (888) 867-5309 trace(phoneNumber); // 8888675309 String.split()lastIndexOf 配列内のアイテムを、最後のアイテムから先頭に向かって検索し、厳密な等価(===)を使用して、一致したアイテムのインデックス位置を返します。配列内のアイテムの 0 から始まるインデックス位置です。searchElement 引数が見つからなかった場合、戻り値は -1 です。 intsearchElement配列内で検索するアイテムです。 fromIndexint0x7fffffffアイテムの検索を開始する配列内の場所です。デフォルトは、インデックスに許可されている最大値です。fromIndex を指定しない場合、配列内の最後のアイテムから検索が開始されます。 配列内のアイテムを、最後のアイテムから先頭に向かって検索し、厳密な等価(===)を使用して、一致したアイテムのインデックス位置を返します。 次の例では、指定された配列の位置を表示しています。 package { import flash.display.Sprite; public class Array_lastIndexOf extends Sprite { public function Array_lastIndexOf() { var arr:Array = new Array(123,45,6789,123,984,323,123,32); var index:int = arr.indexOf(123); trace(index); // 0 var index2:int = arr.lastIndexOf(123); trace(index2); // 6 } } } Array.indexOf()=== (strict equality)map 配列内の各アイテムについて関数を実行し、元の配列の各アイテムに対する関数の結果に対応するアイテムから成る新しい配列を作成します。元の配列内の各アイテムの関数の結果が含まれる新しい配列です。 ArraycallbackFunction配列内の各アイテムについて実行する関数です。この関数には、単純なコマンド(ストリングの配列の大文字小文字の変更など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
    function callback(item:*, index:int, array:Array):String;
thisObjectnull関数の this として使用するオブジェクトです。
配列内の各アイテムについて関数を実行し、元の配列の各アイテムに対する関数の結果に対応するアイテムから成る新しい配列を作成します。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。例えば、me というムービークリップ内に、ある関数を作成するとします。

     function myFunction(obj:Object):void {
        //your code here
     }
     

次に、map() メソッドを、myArray という配列に対して使用するとします。

     myArray.map(myFunction, me);
     

myFunction は、Timeline クラスのメンバーであり、me でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.map(myFunction, me);
     
次の例では、配列内のすべてのアイテムを大文字に変更しています。 package { import flash.display.Sprite; public class Array_map extends Sprite { public function Array_map() { var arr:Array = new Array("one", "two", "Three"); trace(arr); // one,two,Three var upperArr:Array = arr.map(toUpper); trace(upperArr); // ONE,TWO,THREE } private function toUpper(element:*, index:int, arr:Array):String { return String(element).toUpperCase(); } } }
Array.filter()
pop 配列の最後のエレメントを削除して、そのエレメントの値を返します。指定した配列の最後のエレメント(任意のデータ型)の値です。 配列の最後のエレメントを削除して、そのエレメントの値を返します。 次のコードは、Array オブジェクト letters を作成し、エレメント abc を設定します。次に、最後のエレメント(c)を、pop() メソッドを使って配列から削除し、String オブジェクト letter に割り当てます。 var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c var letter:String = letters.pop(); trace(letters); // a,b trace(letter); // c Array.push()Array.shift()Array.unshift()push エレメントを配列の最後に追加して、追加後の配列の長さを返します。新しい配列の長さを表す整数です。 uintargs配列に追加される値です。 エレメントを配列の最後に追加して、追加後の配列の長さを返します。 次のコードは、空の Array オブジェクト letters を作成し、次にエレメント abc を、push() メソッドを使って配列に設定します。 var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c 次のコードは、Array オブジェクト letters を作成します。このオブジェクトには、エレメント a が最初から設定されています。push() メソッドを 1 度使用して、エレメント bc を配列の最後に追加します。push 後は、この配列のエレメントは 3 つになります。 var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3 Array.pop()Array.shift()Array.unshift()reverse 配列の並びを反転させます。新しい配列です。 Array 配列の並びを反転させます。 次のコードは、Array オブジェクト letters を作成し、エレメント abc を設定します。次に、reverse() メソッドを使用して、配列エレメントの順序を反転し、配列 [c,b,a] を作成します。 var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c letters.reverse(); trace(letters); // c,b,a shift 配列の最初のエレメントを削除して、そのエレメントを返します。配列内の最初のエレメント(任意のデータ型)です。 配列の最初のエレメントを削除して、そのエレメントを返します。残りの配列エレメントは、元の位置 i から i-1 に移動されます。 次のコードは、Array オブジェクト letters を作成し、エレメント abc を設定します。次に、shift() メソッドを使用して、1 番目のエレメント(a)を letters から削除し、それをストリング firstLetter に割り当てます。 var letters:Array = new Array("a", "b", "c"); var firstLetter:String = letters.shift(); trace(letters); // b,c trace(firstLetter); // a Array.pop()Array.push()Array.unshift()slice 元の配列から一連のエレメントを取り出して、新しい配列を返します。元の配列は変更されません。元の配列から取り出した一連のエレメントから成る配列です。 ArraystartIndexint0スライスの始点のインデックスを示す数値です。startIndex が負の数値の場合、始点は配列の末尾から開始します。つまり、-1 が最後のエレメントです。 endIndexint16777215スライスの終点のインデックスを示す数値です。 このパラメーターを省略すると、スライスには配列の最初から最後までのすべてのエレメントが取り込まれます。endIndex が負の数値の場合、終点は配列の末尾から開始します。つまり、-1 が最後のエレメントです。 元の配列から取り出した一連のエレメントから成る新しい配列を返します。 元の配列から一連のエレメントを取り出して、新しい配列を返します。元の配列は変更されません。返される配列には、startIndex エレメントから endIndex の前のエレメントまでのすべてのエレメントが含まれます。

パラメーターを渡さない場合、新しい配列は元の配列の複製(浅い複製)になります。

次のコードは、Array オブジェクト letters を作成し、エレメント [a,b,c,d,e,f] を設定します。次に、配列 someLetters を、slice() メソッドを呼び出し、エレメント 1(b)から エレメント 3(d)に対して作成します。その結果、作成される配列には bc が設定されます。 var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(1,3); trace(letters); // a,b,c,d,e,f trace(someLetters); // b,c 次のコードは、Array オブジェクト letters を作成し、エレメント [a,b,c,d,e,f] を設定します。次に、配列 someLetters を、slice() メソッドを呼び出し、エレメント 2(c)に対して作成します。その結果、作成された配列には [c,d,e,f] が設定されます。 var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(2); trace(letters); // a,b,c,d,e,f trace(someLetters); // c,d,e,f 次のコードは、Array オブジェクト letters を作成し、エレメント [a,b,c,d,e,f] を設定します。次に、配列 someLetters を、slice() メソッドを最後から 2 番目のエレメント e に対して呼び出すことにより作成します。その結果、作成される配列には ef が設定されます。 var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(-2); trace(letters); // a,b,c,d,e,f trace(someLetters); // e,f
some true を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。ブール値です。true を返します(指定された関数について配列内のいずれかのアイテムが true を返す場合)。それ以外の場合は false を返します。 BooleancallbackFunction配列内の各アイテムについて実行する関数です。この関数には、単純な比較(item < 20 など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
    function callback(item:*, index:int, array:Array):Boolean;
thisObjectnull関数の this として使用するオブジェクトです。
true を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。このメソッドを使用して、配列内のいずれのアイテムもある基準(値が特定の数値より小さいなど)を満たしているかどうかを判別できます。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。例えば、me というムービークリップ内に、ある関数を作成するとします。

     function myFunction(obj:Object):void {
        //your code here
     }
     

次に、some() メソッドを、myArray という配列に対して使用するとします。

     myArray.some(myFunction, me);
     

myFunction は、Timeline クラスのメンバーであり、me でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.some(myFunction, me);
     
次の例では、未定義の値を表示しています。 package { import flash.display.Sprite; public class Array_some extends Sprite { public function Array_some() { var arr:Array = new Array(); arr[0] = "one"; arr[1] = "two"; arr[3] = "four"; var isUndef:Boolean = arr.some(isUndefined); if (isUndef) { trace("array contains undefined values: " + arr); } else { trace("array contains no undefined values."); } } private function isUndefined(element:*, index:int, arr:Array):Boolean { return (element == undefined); } } }
every()
sortOn 配列内のフィールド(複数のフィールドも可能)に基づいて、配列内のエレメントをソートします。戻り値は、パラメーターを渡したかどうかによって異なります。
  • 4 または Array.UNIQUESORT を、options パラメーターに指定した場合、ソート対象の複数のエレメントにまったく同じソートフィールドがあると、値 0 が返されます。配列は変更されません。
  • 8 または Array.RETURNINDEXEDARRAYoptions パラメーターに指定した場合、そのソート結果を反映する配列が返されます。配列は変更されません。
  • これ以外の場合、何も返されず、ソート順を反映するよう配列が変更されます。
Array
fieldNameObjectソート値として使用するフィールドを示すストリング、または、先頭のエレメントが第 1 ソートフィールド、2 番目が第 2 ソートフィールド(以下同様)を表す配列です。 optionsObjectnullbitwise OR(|)演算子によって区切られた定義済み定数の数値または名前です。これによりソート動作を変更します。options パラメーターには次の値を指定できます。
  • Array.CASEINSENSITIVE または 1
  • Array.DESCENDING または 2
  • Array.UNIQUESORT または 4
  • Array.RETURNINDEXEDARRAY または 8
  • Array.NUMERIC または 16

数値形式(2)ではなく、ストリング形式のフラグ(DESCENDING など)を使用すると、コードヒントが有効になります。

配列内のフィールド(複数のフィールドも可能)に基づいて、配列内のエレメントをソートします。配列は、次に示す特性を備えている必要があります。
  • インデックス付き配列を対象とします。結合配列は対象外です。
  • 配列の各エレメントは、プロパティがあるオブジェクトを保持するものとします。
  • すべてのオブジェクトには共通のプロパティが少なくとも 1 つあるものとします。このようなプロパティをフィールドといいます。

fieldName パラメーターを複数指定する場合、先頭のフィールドが第 1 ソートフィールド、2 番目のフィールドが第 2 ソートフィールド、(以下同様)と見なされます。ソートは Unicode 値に基づいて実行されます。(ASCII は Unicode のサブセットです。)fieldName パラメーターで指定されたフィールドが、比較対象のいずれのエレメントにも含まれていない場合、そのフィールドは undefined に設定されていると見なされます。エレメントはソート済みの配列に連続的かつランダムに格納されます。

デフォルトでは、Array.sortOn() は次のように動作します。

  • ソートでは大文字と小文字が区別されます。Za よりも先になります。
  • 昇順にソートされます。ab よりも先になります。
  • 配列はソート順を反映するように変更されます。同じソートフィールドを持つ複数のエレメントは、ソート済みの配列の中で連続的かつランダムに格納されます。
  • 数値フィールドは、ストリングとしてソートされます。例えば、"1" は "9" よりも小さいストリング値なので、100 は 99 よりも先になります。

Flash Player 7 では options パラメーターが追加されました。このパラメーターを使用すると、デフォルトのソート動作をオーバーライドすることができます。単純な配列(例えば、1 つのフィールドだけを持つ配列)をソートする場合、または options パラメーターでサポートされていないソート順序を指定する場合、Array.sort() を使用します。

複数のフラグを渡すには、ビット単位の論理和(OR)(|)演算子で区切ります。

my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);

Flash Player 8 では、複数のフィールドでソートを行う場合に、各フィールドに対して異なるソートオプションを指定する機能が追加されました。Flash Player 8 以降では、options パラメーターはさまざまなソートオプションの配列を受け入れます。各ソートオプションは fieldName パラメーターのソートフィールドに対応します。次の例では、第 1 ソートフィールド a を降順で、第 2 ソートフィールド b を数値ソートで、第 3 ソートフィールド c を大文字と小文字を区別しないでソートします。

Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);

注意:fieldName 配列と options 配列のエレメントは同数である必要があります。そうでない場合、options 配列は無視されます。また、Array.UNIQUESORT オプションと Array.RETURNINDEXEDARRAY オプションは、配列内の 1 番目のエレメントとしてのみ使用できます。そうでない場合、これらのオプションは無視されます。

次のコードは、空の Array オブジェクト vegetables を作成し、次に push() を 5 回呼び出して配列を設定します。各 push() 呼び出しで、新しい Vegetable オブジェクトが、Vegetable() コンストラクターを呼び出すことで作成されます。このコンストラクターは、String(name)オブジェクトと Number(price)オブジェクトを受け取ります。次に示す値を使用して push() を 5 回呼び出すことで、配列は次のように設定されます。[lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44] . 次に sortOn() メソッドを name パラメーターと共に使用して、次の配列を作成します。[asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44] . 次に、price パラメーターと NUMERIC および DESCENDING 定数を使用して sortOn() メソッドを再度呼び出すと、次のように数値の降順でソートされた配列が作成されます。[asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29] . var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sortOn("name"); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 vegetables.sortOn("price", Array.NUMERIC | Array.DESCENDING); trace(vegetables); // asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29 class Vegetable { public var name:String; public var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } } 次のコードは、空の Array オブジェクト records を作成し、次に push() を 3 回呼び出して配列を設定します。各 push() 呼び出しで、ストリングの namecity、および zip 番号を records に追加します。3 つの for ループを使用して配列エレメントを出力します。1 番目の for ループでは、エレメントが追加された順に出力されます。2 番目の for ループの前に、records は、sortOn() メソッドを使って name、city の順でソートされます。3 番目の for ループでは、異なる出力が作成されます。records は、city、name の順で再度ソートされているためです。 var records:Array = new Array(); records.push({name:"john", city:"omaha", zip:68144}); records.push({name:"john", city:"kansas city", zip:72345}); records.push({name:"bob", city:"omaha", zip:94010}); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, omaha // john, kansas city // bob, omaha trace("records.sortOn('name', 'city');"); records.sortOn(["name", "city"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // bob, omaha // john, kansas city // john, omaha trace("records.sortOn('city', 'name');"); records.sortOn(["city", "name"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, kansas city // bob, omaha // john, omaha 次のコードは、空の Array オブジェクト users を作成し、次に push() を 4 回呼び出して配列を設定します。各 push() 呼び出しで User() コンストラクターを使って User オブジェクトを作成し、name ストリング、age uint を各ユーザーに追加します。結果として、配列は [Bob:3,barb:35,abcd:3,catchy:4] のように設定されます。

次に、配列を次のようにソートします。

  1. name のみでソートすると、配列は [Bob:3,abcd:3,barb:35,catchy:4] のようになります
  2. CASEINSENSITIVE 定数を使って name でソートすると、配列は [abcd:3,barb:35,Bob:3,catchy:4] のようになります
  3. CASEINSENSITIVE 定数と DESCENDING 定数を使って name でソートすると、配列は [catchy:4,Bob:3,barb:35,abcd:3] のようになります
  4. age のみでソートすると、配列は [abcd:3,Bob:3,barb:35,catchy:4] のようになります。
  5. NUMERIC 定数を使って age でソートすると、配列は [Bob:3,abcd:3,catchy:4,barb:35] のようになります
  6. DESCENDING 定数と NUMERIC 定数を使って age でソートすると、配列は [barb:35,catchy:4,Bob:3,abcd:3] のようになります

indices という配列を作成し、NUMERIC 定数と RETURNINDEXEDARRAY 定数を使って age でソートした結果をその配列に割り当てます。配列は [Bob:3,abcd:3,catchy:4,barb:35] のように設定されます。次に、for ループを使って配列を出力します。

class User { public var name:String; public var age:Number; public function User(name:String, age:uint) { this.name = name; this.age = age; } public function toString():String { return this.name + ":" + this.age; } } var users:Array = new Array(); users.push(new User("Bob", 3)); users.push(new User("barb", 35)); users.push(new User("abcd", 3)); users.push(new User("catchy", 4)); trace(users); // Bob:3,barb:35,abcd:3,catchy:4 users.sortOn("name"); trace(users); // Bob:3,abcd:3,barb:35,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE); trace(users); // abcd:3,barb:35,Bob:3,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE | Array.DESCENDING); trace(users); // catchy:4,Bob:3,barb:35,abcd:3 users.sortOn("age"); trace(users); // abcd:3,Bob:3,barb:35,catchy:4 users.sortOn("age", Array.NUMERIC); trace(users); // Bob:3,abcd:3,catchy:4,barb:35 users.sortOn("age", Array.DESCENDING | Array.NUMERIC); trace(users); // barb:35,catchy:4,Bob:3,abcd:3 var indices:Array = users.sortOn("age", Array.NUMERIC | Array.RETURNINDEXEDARRAY); var index:uint; for(var i:uint = 0; i < indices.length; i++) { index = indices[i]; trace(users[index].name, ": " + users[index].age); } // Results: // Bob : 3 // abcd : 3 // catchy : 4 // barb : 35
| (bitwise OR)Array.sort()
sort 配列内のエレメントをソートします。戻り値は、次に示すように、渡された引数によって異なります。
  • 値 4 または Array.UNIQUESORTsortOptions 引数(...args パラメーター)に指定すると、ソート対象のエレメントに同じソートフィールドを持つものが複数ある場合、値 0 が返されます。配列は変更されません。
  • 値 8 または Array.RETURNINDEXEDARRAYsortOptions 引数(...args パラメーター)に指定した場合、ソート結果を反映したインデックスの数値配列が返されます。配列は変更されません。
  • それ以外の場合、値は返されません。ソート順を反映するように配列が変更されます。
Array
args比較関数を指定する引数と、ソート動作を決定する値です。

このメソッドでは、Array.sort(compareFunction, sortOptions) というシンタックスおよび引数順を使用し、各引数は次のように定義されます。

  • compareFunction - 配列内のエレメントのソート順を決定する比較関数。この引数はオプションです。比較関数には、比較を行うために 2 つの引数が必要です。エレメント A とエレメント B を compareFunction で比較した結果は、負、0 または正の値になります。
    • 負の戻り値は、ソートの結果 A が先、B が後になることを意味します。
    • 0 の戻り値は、ソートの結果 A と B が同じ順序になることを意味します。
    • 正の戻り値は、ソートの結果 B が先、A が後になることを意味します。
  • sortOptions - デフォルトのソート動作を変更する数値または定義済み定数。複数指定する場合は、ビット単位の論理和(OR)| 演算子で区切ります。この引数はオプションです。sortOptions の許容値は次のとおりです。
    • 1 または Array.CASEINSENSITIVE
    • 2 または Array.DESCENDING
    • 4 または Array.UNIQUESORT
    • 8 または Array.RETURNINDEXEDARRAY
    • 16 または Array.NUMERIC
    詳細については、Array.sortOn() メソッドを参照してください。
配列内のエレメントをソートします。このメソッドは、Unicode 値に基づいてソートを実行します。(ASCII は Unicode のサブセットです。)

デフォルトでは、Array.sort() は次のように動作します。

  • ソートでは大文字と小文字が区別されます。Za よりも先になります。
  • 昇順にソートされます。ab よりも先になります。
  • 配列はソート順を反映するように変更されます。同じソートフィールドを持つ複数のエレメントは、ソート済みの配列の中で連続的かつランダムに格納されます。
  • データ型に関係なく、すべてのエレメントがストリングとしてソートされます。例えば、"1" は "9" よりも小さいストリング値であるため、100 は 99 よりも先になります。

デフォルト設定とは別の設定を使用して配列をソートする場合は、sortOptions 部分(...args パラメーター)に記述されているソートオプションのいずれかを使用するか、またはソート処理を行う独自のカスタム関数を作成できます。カスタム関数を作成する場合、sort() メソッドを呼び出して、カスタム関数の名前を最初の引数(compareFunction)として使用します。

次のコードは、Array オブジェクト vegetables を作成し、エレメント [spinach, green pepper, cilantro, onion, avocado] を設定します。次に、sort() メソッドを使用して配列をソートします。メソッドの呼び出しにはパラメーターを使用しません。その結果、vegetables は、アルファベット順でソートされ、[avocado, cilantro, green pepper, onion, spinach] のようになります。 var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); trace(vegetables); // spinach,green pepper,cilantro,onion,avocado vegetables.sort(); trace(vegetables); // avocado,cilantro,green pepper,onion,spinach 次のコードは、Array オブジェクト vegetables を作成し、エレメント [spinach, green pepper, Cilantro, Onion, and Avocado] を設定します。最初に、sort() メソッドをパラメーターなしで呼び出して配列をソートします。その結果、配列は [Avocado,Cilantro,Onion,green pepper,spinach] のようになります。再度、sort()vegetables に対して呼び出します。このとき、CASEINSENSITIVE 定数をパラメーターとして指定します。その結果、vegetables は、アルファベット順でソートされ、[Avocado, Cilantro, green pepper, Onion, spinach] のようになります。 var vegetables:Array = new Array("spinach", "green pepper", "Cilantro", "Onion", "Avocado"); vegetables.sort(); trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach vegetables.sort(Array.CASEINSENSITIVE); trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach 次のコードは、空の Array オブジェクト vegetables を作成し、次に push() を 5 回呼び出して配列を設定します。各 push() 呼び出しで、新しい Vegetable オブジェクトが、Vegetable() コンストラクターを呼び出すことで作成されます。このコンストラクターは、String(name)オブジェクトと Number(price)オブジェクトを受け取ります。次に示す値を使用して push() を 5 回呼び出すことで、配列は次のように設定されます。[lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44] sort() メソッドを使用してこの配列をソートします。その結果、配列は [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44] のようになります。 var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 //The following code defines the Vegetable class class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } } 次の例は、上記の例とほとんど同じですが、sort() メソッドをカスタムソート関数(sortOnPrice)と共に使用している点が異なります。このカスタム関数は、アルファベット順ではなく価格に基づいてソートを行います。新しい関数 getPrice() では価格が抽出されます。 var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(sortOnPrice); trace(vegetables); // celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99 function sortOnPrice(a:Vegetable, b:Vegetable):Number { var aPrice:Number = a.getPrice(); var bPrice:Number = b.getPrice(); if(aPrice > bPrice) { return 1; } else if(aPrice < bPrice) { return -1; } else { //aPrice == bPrice return 0; } } // The following code defines the Vegetable class and should be in a separate package. class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function getPrice():Number { return price; } public function toString():String { return " " + name + ":" + price; } } 次のコードは、Array オブジェクト numbers を作成し、エレメント [3,5,100,34,10] を設定します。パラメーターを指定せずに sort() を呼び出すと、アルファベット順にソートされるため、[10,100,3,34,5] のように期待しない結果になります。数値を正しくソートするには、定数 NUMERICsort() メソッドに渡す必要があります。この結果、numbers は、次のようにソートされます。[3,5,10,34,100] .

注意:sort() 関数のデフォルトの動作では、各エンティティがストリングとして処理されます。Array.NUMERIC 引数を使用する場合、Flash ランタイムでは、ソートを目的として、数値以外の値を整数に変換しようとします。この処理に失敗すると、ラインタイムはエラーをスローします。例えば、ストリング値 "6" は整数に正しく変換できますが、ストリング値 "six" を変換しようとした際にはエラーがスローされます。

var numbers:Array = new Array(3,5,100,34,10); trace(numbers); // 3,5,100,34,10 numbers.sort(); trace(numbers); // 10,100,3,34,5 numbers.sort(Array.NUMERIC); trace(numbers); // 3,5,10,34,100
| (bitwise OR)Array.sortOn()
splice 配列のエレメントを追加および削除します。元の配列から削除されたエレメントを含む配列です。 ArraystartIndexint挿入または削除を開始する配列エレメントのインデックスを示す整数です。負の整数を使用すると、配列の末尾を基準として位置を指定できます。例えば、-1 は配列の最後のエレメントです。 deleteCountuint削除するエレメント数を示す整数です。この数には、startIndex パラメーターで指定するエレメントが含まれます。deleteCount パラメーターに値を指定しないと、配列内の startIndex の位置のエレメントから最後のエレメントまで、すべての値が削除されます。値として 0 を指定すると、エレメントは削除されません。 valuesstartIndex パラメーターで指定した配列内の位置に挿入するカンマ区切り値のオプションリストです。挿入される値が配列型の場合、配列はそのまま単一のエレメントとして挿入されます。例えば、既存の長さ 3 の配列に別の長さ 3 の配列を結合すると、結果の配列には 4 つのエレメントしかありません。ただし、このエレメントの 1 つは、長さ 3 の配列になります。 配列のエレメントを追加および削除します。このメソッドは、コピーを作成しないで、配列を変更します。

注意:Array のサブクラス内でこのメソッドをオーバーライドするには、次の例に示すように、パラメーターに ...args を使用します。

     public override function splice(...args) {
       // your statements here
     }
     
次のコードは、Array オブジェクト vegetables を作成し、エレメント [spinach, green pepper, cilantro, onion, avocado] を設定します。次に splice() メソッドを、パラメーター 2 と 2 を使用して呼び出します。これにより、cilantroonionspliced 配列に割り当てられます。vegetables 配列には [spinach,green pepper,avocado] が含まれています。再度、splice() メソッドを、パラメーター 1、0、spliced 配列を使って呼び出すと、[cilantro,onion]vegetables の 2 番目のエレメントとして割り当てられます。 var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, spliced); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado cilantroonion がトレースされるので、vegetables のエレメントは 5 個あるかのように処理されますが、実際のエレメント数は 4 個で、2 番目のエレメントは 2 エレメントを含む別の配列です。cilantroonion を個別に追加するには、次のように指定します。 var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, "cilantro", "onion"); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
toLocaleString 指定された配列内のエレメントを表すストリングを返します。配列エレメントのストリングです。 String 指定された配列内のエレメントを表すストリングを返します。インデックス 0 から最大インデックスまでの配列内のすべてのエレメントを、カンマで区切られた連結ストリングに変換して返します。ActionScript 3.0 実装において、このメソッドは、Array.toString() と同じ値を返します。 Array.toString()toString 指定された配列内のエレメントを表すストリングを返します。配列エレメントのストリングです。 String 指定された配列内のエレメントを表すストリングを返します。インデックス 0 から最大インデックスまでの配列内のすべてのエレメントを、カンマで区切られた連結ストリングに変換して返します。カスタムセパレーターを指定するには、Array.join() メソッドを使用します。 次のコードでは、Array を作成し、値をストリングに変換して、それらを String データ型の vegnums 変数に格納します。 var vegetables:Array = new Array(); vegetables.push(1); vegetables.push(2); vegetables.push(3); vegetables.push(4); vegetables.push(5); var vegnums:String = vegetables.toString(); trace(vegnums+",6"); // 1,2,3,4,5,6 String.split()Array.join()unshift エレメントを配列の先頭に追加して、配列の新しい長さを返します。配列の新しい長さを表す整数です。 uintargs配列の先頭に挿入される数値、エレメント、または変数です。 エレメントを配列の先頭に追加して、配列の新しい長さを返します。配列内の他のエレメントは、元の位置 i から i+1 に移動されます。 次のコードは、空の Array オブジェクト names を作成します。ストリングの BillJeff を、push() メソッドを使って追加し、次にストリングの AlfredKyle を、names の先頭に、unshift() メソッドを 2 回呼び出して追加します。 var names:Array = new Array(); names.push("Bill"); names.push("Jeff"); trace(names); // Bill,Jeff names.unshift("Alfred"); names.unshift("Kyle"); trace(names); // Kyle,Alfred,Bill,Jeff Array.pop()Array.push()Array.shift()CASEINSENSITIVE Array クラスのソートメソッドに対して、大文字と小文字を区別しないソートを指定します。1uint Array クラスのソートメソッドに対して、大文字と小文字を区別しないソートを指定します。この定数は、options パラメーター(sort() メソッドまたは sortOn() メソッド)に使用できます。

この定数の値は 1 です。

Array.sort()Array.sortOn()
DESCENDING Array クラスのソートメソッドに対して、降順でのソートを指定します。2uint Array クラスのソートメソッドに対して、降順でのソートを指定します。この定数は、options パラメーター(sort() メソッドまたは sortOn() メソッド)に使用できます。

この定数の値は 2 です。

Array.sort()Array.sortOn()
NUMERIC Array クラスのソートメソッドに対して、文字ストリングではなく数値によるソートを指定します。16uint Array クラスのソートメソッドに対して、文字ストリングではなく数値によるソートを指定します。この定数を options パラメーターに設定すると、sort() メソッドと sortOn() メソッドは、数字を文字ストリングとしてではなく、数値としてソートします。NUMERIC 定数を設定しないでソートを実行すると、各配列エレメントは文字ストリングとして処理され、Unicode 順でソートされます。

例えば、値 [2005, 7, 35] の配列で、NUMERIC 定数を設定せずに options パラメーターを使った場合、ソート後の配列は [2005, 35, 7] となります。一方、NUMERIC 定数を設定した場合、ソート後の配列は [7, 35, 2005] となります。

この定数は、配列内の数値に対してのみ適用されます。["23", "5"] などの、数値データを含むストリングには適用されません。

この定数の値は 16 です。

Array.sort()Array.sortOn()
RETURNINDEXEDARRAY ソート結果として、配列インデックスで構成される配列を返すことを指定します。8uint ソート結果として、配列インデックスで構成される配列を返すことを指定します。この定数を options パラメーター(sort() メソッドまたは sortOn() メソッド)に使用すると、元の配列を変更せずに、配列エレメントの複数のビューにアクセスすることができます。

この定数の値は 8 です。

Array.sort()Array.sortOn()
UNIQUESORT Array クラスのソートメソッドに対して、一意性ソート要件を指定します。4uint Array クラスのソートメソッドに対して、一意性ソート要件を指定します。この定数は、options パラメーター(sort() メソッドまたは sortOn() メソッド)に使用できます。一意性ソートオプションを指定すると、ソート対象の任意の 2 つのエレメントまたはフィールドが同じ値である場合に、ソートが終了します。

この定数の値は 4 です。

Array.sort()Array.sortOn()
length 配列内のエレメント数を示す負でない整数です。uint 配列内のエレメント数を示す負でない整数です。このプロパティは、新しいエレメントが配列に追加されると自動更新されます。配列エレメントに値を割り当てるとき(my_array[index] = value など)、index が数値でかつ index+1length プロパティよりも大きい場合、length プロパティが index+1 に更新されます。

注意:length プロパティに既存の長さよりも短い値を割り当てた場合、配列は切り詰められます。

次のコードは、Array オブジェクト names を作成し、ストリングエレメント Bill を設定します。次に、push() メソッドを使用して、別のストリングエレメント Kyle を追加します。配列の長さは、length プロパティで決められているエレメント 1 個(push() を使う前)ですが、push() を呼び出した後はエレメント 2 個になります。別のストリング Jeff を追加すると、names の長さは、エレメント 3 個になります。次に shift() メソッドを 2 回呼び出し、BillKyle を削除すると、最終的に配列の length は 1 個になります。 var names:Array = new Array("Bill"); names.push("Kyle"); trace(names.length); // 2 names.push("Jeff"); trace(names.length); // 3 names.shift(); names.shift(); trace(names.length); // 1
RegExp RegExp クラスを使用すると、正規表現を処理することができます。正規表現とは、ストリング内で検索を実行したり、ストリング内のテキストを置き換えたりする場合に使用できるパターンです。Object RegExp クラスを使用すると、正規表現を処理することができます。正規表現とは、ストリング内で検索を実行したり、ストリング内のテキストを置き換えたりする場合に使用できるパターンです。

new RegExp() コンストラクターを使用するか、RegExp リテラルを変数に割り当てることによって、新しい RegExp オブジェクトを作成することができます。

var pattern1:RegExp = new RegExp("test-\\d", "i"); var pattern2:RegExp = /test-\d/i;

詳細については、『ActionScript 3.0 開発ガイド』の「正規表現の使用」を参照してください。

次の例は、正規表現を使用してストリングを解析し、渡されたストリングに基づいて新しいストリングまたはブール値を返す方法を示しています。渡されたストリング内で、informalizeGreeting() メソッドは、大文字小文字に関係なく Hello という語が見つかると、この語を単純に Hi に置き換えます。また、ストリング内の名前から姓を削除します。ただし、指定されたパターンに名前が一致する場合です。validateEmail()validatePhoneNumber() メソッドは、渡されたストリングのパターンが有効な電子メールアドレスまたは特定の電話番号のパターンと一致するかどうかをチェックし、その結果に従ってブール値を返します。 package { import flash.display.Sprite; public class RegExpExample extends Sprite { public function RegExpExample() { var formalGreeting:String = "Hello, John Smith."; trace(informalizeGreeting(formalGreeting)); // Hi, John. var validEmail:String = "name@domain.com"; trace(validateEmail(validEmail)); // true var invalidEmail:String = "foo"; trace(validateEmail(invalidEmail)); // false var validPhoneNumber:String = "415-555-1212"; trace(validatePhoneNumber(validPhoneNumber)); // true var invalidPhoneNumber:String = "312-867-530999"; trace(validatePhoneNumber(invalidPhoneNumber)); // false } private function informalizeGreeting(str:String):String { var pattern:RegExp = new RegExp("hello, (\\w+) \\w+", "i"); return str.replace(pattern, "Hi, $1"); } private function validateEmail(str:String):Boolean { var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/; var result:Object = pattern.exec(str); if(result == null) { return false; } return true; } private function validatePhoneNumber(str:String):Boolean { var pattern:RegExp = /^\d{3}-\d{3}-\d{4}$/; var result:Object = pattern.exec(str); if(result == null) { return false; } return true; } } }
String.match()String.replace()String.search()RegExp 2 つのストリングから正規表現を作成することができます。reString正規表現のパターンです。コンストラクターストリングとも言います。これは正規表現のメインとなる部分です。つまり、"/" で囲まれる部分です。

注意:

  • 開始と末尾の "/" 文字を含めないでください。この文字は、コンストラクターを使用しないで正規表現リテラルを定義する場合にのみ使用します。例えば、次の 2 つの正規表現は同等です。 var re1:RegExp = new RegExp("bob", "i"); var re2:RegExp = /bob/i;
  • RegExp() コンストラクターメソッドで定義された正規表現の中で、円記号(\)から始まるメタシーケンス(任意の数字を意味する \d など)を使用するには、円記号を二重に入力する必要があります。例えば、次の 2 つの正規表現は同等です。 var re1:RegExp = new RegExp("\\d+", ""); var re2:RegExp = /\d/;

    最初の正規表現では、円記号を二重に入力する必要があります。これは、RegExp() コンストラクターメソッドの最初のパラメーターがストリングであり、ストリングリテラルの中では、単一の円記号として認識されるためには二重に円記号を入力する必要があるためです。

flagsString正規表現のモディファイアです。これには次のものが含まれます。
  • g — String クラスの replace() メソッドを使用する場合、このモディファイアを指定して、最初に一致するストリングのみでなく、一致するすべてのストリングを置き換えます。このモディファイアは、RegExp インスタンスの global プロパティに対応します。
  • i — 正規表現を大文字と小文字の区別なしで評価します。このモディファイアは、RegExp インスタンスの ignoreCase プロパティに対応します。
  • s — ドット(.)文字は改行文字に一致します。この修飾子は、RegExp インスタンスの dotall プロパティに対応します。
  • m — キャレット(^)文字とドル記号($)は、改行文字の前後に一致します。このモディファイアは、RegExp インスタンスの multiline プロパティに対応します。
  • x — re ストリング内の空白文字を無視します。そのため、可読性の高いコンストラクターを作成できます。この修飾子は、RegExp インスタンスの extended プロパティに対応します。

flags ストリング内の他の文字は、すべて無視されます。

2 つのストリングから正規表現を作成することができます。1 つのストリングは正規表現のパターンを定義し、もう 1 つのストリングは正規表現で使用されるフラグを定義します。
exec 指定されたストリング str について、正規表現を検索します。一致が見つからない場合は null、それ以外の場合は、次に示すプロパティを持つオブジェクトを返します。
  • エレメント 0 に完全一致のサブストリングを含み、他のエレメント(1 ~ n)に正規表現内の括弧指定されたグループと一致するサブストリングを含む配列
  • index — ストリング内で一致するサブストリングの文字の位置
  • input — ストリング(str
Object
strString検索するストリングです。
指定されたストリング str について、正規表現を検索します。

正規表現に gglobal)フラグが設定されていない場合、ストリングの先頭(インデックス位置 0)から検索が開始され、正規表現の lastIndex プロパティは無視されます。

正規表現に gglobal)フラグが設定されている場合、正規表現の lastIndex プロパティで指定されたインデックス位置から検索が開始されます。検索でサブストリングが一致すると、lastIndex プロパティは一致したサブストリングの最後の位置に変更されます。

正規表現に gglobal)フラグを設定しない場合、exec() を使用して、ストリング内で最初に一致するものを検索することができます。 var myPattern:RegExp = /(\w~~)sh(\w~~)/ig; var str:String = "She sells seashells by the seashore"; var result:Object = myPattern.exec(str); trace(result);

result オブジェクトは次のように設定されます。

  • result[0]"She" に設定されます(完全一致)。
  • result[1] は空のストリングに設定されます(括弧指定されたグループの最初の一致)。
  • result[2]"e" に設定されます(括弧指定されたグループの 2 番目の一致)。
  • result.index は 0 に設定されます。
  • result.input は入力ストリング "She sells seashells by the seashore" に設定されます。

次の例では、正規表現に gglobal)フラグが設定されているため、exec() を繰り返し使用して、一致するものを複数検索することができます。

var myPattern:RegExp = /(\w~~)sh(\w~~)/ig; var str:String = "She sells seashells by the seashore"; var result:Object = myPattern.exec(str); while (result != null) { trace ( result.index, "\t", result); result = myPattern.exec(str); }

このコードの出力は、次のようになります。


            0      She,,e
            10     seashells,sea,ells
            27     seashore,sea,ore
         
String.match()String.search()
test 指定されたストリング str 内に正規表現と一致するサブストリングがあるかどうかをテストします。一致が存在する場合は true、それ以外の場合は false を返します。 BooleanstrStringテストするストリングです。 指定されたストリング str 内に正規表現と一致するサブストリングがあるかどうかをテストします。

正規表現に gglobal)フラグが設定されていない場合、ストリングの先頭(インデックス位置 0)から検索が開始され、正規表現の lastIndex プロパティは無視されます。

正規表現に gglobal)フラグが設定されている場合、正規表現の lastIndex プロパティで指定されたインデックス位置から検索が開始されます。検索でサブストリングが一致すると、lastIndex プロパティは一致したサブストリングの最後の位置に変更されます。

次の例では、test() メソッドを、gglobal)フラグが設定された正規表現で使用する方法を示しています。 var re1:RegExp = /\w/g; var str:String = "a b c"; trace (re1.lastIndex); // 0 trace (re1.test(str)); // true trace (re1.lastIndex); // 1 trace (re1.test(str)); // true trace (re1.lastIndex); // 3 trace (re1.test(str)); // true trace (re1.lastIndex); // 5 trace (re1.test(str)); // false
dotall 正規表現パターン内のドット文字(.)と改行文字を一致させるかどうかを指定します。Boolean 正規表現パターン内のドット文字(.)と改行文字を一致させるかどうかを指定します。 正規表現の作成時に s フラグを使用して、dotall = true に設定します。 次の例は、正規表現に sdotall)フラグを設定した場合の効果を示しています。 var str:String = "<p>Hello\n" + "again</p>" + "<p>Hello</p>"; var pattern:RegExp = /<p>.*?<\/p>/; trace(pattern.dotall) // false trace(pattern.exec(str)); // <p>Hello</p> pattern = /<p>.*?<\/p>/s; trace(pattern.dotall) // true trace(pattern.exec(str)); extended 正規表現に拡張モードを使用するかどうかを指定します。Boolean 正規表現に拡張モードを使用するかどうかを指定します。RegExp オブジェクトが拡張モードの場合、コンストラクターストリング内の空白文字は無視されます。これはコンストラクターの可読性を高めることを目的とします。

正規表現の作成時に x フラグを使用して、extended = true に設定します。

次の例は、同じ正規表現を様々な方法で作成する方法を示しています。それぞれの方法で、xxx-xxx-xxxx、(xxx) xxx-xxxx、または (xxx) xxx-xxxx のいずれかの電話番号パターンに一致する正規表現を作成します。2 番目の正規表現では、x フラグが使用されているため、ストリング内の空白文字は無視されます。 var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/; var str:String = "The phone number is (415)555-1212."; trace(rePhonePattern1.extended) // false trace(rePhonePattern1.exec(str)); // (415)555-1212 var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4} | \( \d{3} \) \ ? \d{3}-\d{4} /x; trace(rePhonePattern2.extended) // true trace(rePhonePattern2.exec(str)); // (415)555-1212
global 正規表現にグローバル照合を使用するかどうかを指定します。Boolean 正規表現にグローバル照合を使用するかどうかを指定します。global == true の場合、一致するものが 1 つ見つかった後に lastIndex プロパティが設定されます。次回、照合が要求されたときには、正規表現エンジンはストリングの lastIndex の位置から照合を開始します。正規表現の作成時に g フラグを使用して、globaltrue に設定します 次の例は、gglobal)フラグを exec() メソッドに設定した場合の効果を示しています。 var pattern:RegExp = /foo\d/; var str:String = "foo1 foo2"; trace(pattern.global); // false trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 0 trace(pattern.exec(str)); // foo1 pattern = /foo\d/g; trace(pattern.global); // true trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 4 trace(pattern.exec(str)); // foo2 ignoreCase 正規表現で大文字と小文字の区別を無視するかどうかを指定します。Boolean 正規表現で大文字と小文字の区別を無視するかどうかを指定します。正規表現の作成時に i フラグを使用して、ignoreCase = true に設定します。 次の例は、iignoreCase)フラグを設定した場合の効果について示しています。 var pattern:RegExp = /bob/; var str:String = "Bob bob"; trace(pattern.ignoreCase); // false trace(pattern.exec(str)); // bob pattern = /bob/i; trace(pattern.ignoreCase); // true trace(pattern.exec(str)); // Bob lastIndex ストリング内で次回の検索を開始するインデックス位置を指定します。Number ストリング内で次回の検索を開始するインデックス位置を指定します。このプロパティは、RegExp クラスの exec() メソッドと test() メソッドに影響します。ただし、String クラスの match() メソッド、replace() メソッド、および search() メソッドは、lastIndex プロパティを無視し、すべての検索をストリングの先頭から開始します。

exec() メソッドまたは test() メソッドで一致するものが見つかり、正規表現で gglobal)フラグが true に設定されている場合、メソッドは自動的に lastIndex プロパティを、最後に一致したサブストリング内の最後の文字のにある文字のインデックス位置に設定します。gglobal)フラグが false に設定されている場合、メソッドは lastIndex プロパティを設定しません。

lastIndex プロパティを設定することで、ストリング内で正規表現による検索を開始する位置を調整できます。

次の例は、lastIndex プロパティを設定した場合の効果を示しています。また、exec() メソッドを gglobal)フラグが設定された正規表現で呼び出した後に、そのプロパティがどのように更新されるかを示しています。 var pattern:RegExp = /\w\d/g; var str:String = "a1 b2 c3 d4"; pattern.lastIndex = 2; trace(pattern.exec(str)); // b2 trace(pattern.lastIndex); // 5 trace(pattern.exec(str)); // c3 trace(pattern.lastIndex); // 8 trace(pattern.exec(str)); // d4 trace(pattern.lastIndex); // 11 trace(pattern.exec(str)); // null
multiline m(multiline)フラグを設定するかどうかを指定します。Boolean mmultiline)フラグを設定するかどうかを指定します。設定する場合、正規表現内のキャレット(^)とドル記号($)は改行文字の前と後に一致します。正規表現の作成時に m フラグを使用して、multiline = true に設定します。 次の例は、mmultiline)フラグを設定した場合の効果について示しています。 var pattern:RegExp = /^bob/; var str:String = "foo\n" + "bob"; trace(pattern.multiline); // false trace(pattern.exec(str)); // null pattern = /^bob/m; trace(pattern.multiline); // true trace(pattern.exec(str)); // bob source 正規表現のパターン部分を指定します。String 正規表現のパターン部分を指定します。 次のコードは、2 つの正規表現について source パラメーターを出力します。 var re1:RegExp = /aabb/gi; trace (re1.source); // aabb var re2:RegExp = new RegExp("x+y*", "i"); trace(re2.source); // x+y*
Date Date クラスは日時のデータを表します。Object Date クラスは日時のデータを表します。Date クラスの 1 つのインスタンスは特定の一時点を表します。この特定の一時点について、月、日、時、秒などのプロパティを照会および変更できます。Date クラスを使用すると、世界時(グリニッジ標準時。現在の呼称は世界標準時または UTC)またはローカル時間を基準にした日付と時刻の値を取得できます。ローカル時間は、Flash Player を実行しているオペレーティングシステムに設定されているローカルタイムゾーンによって決定されます。Date クラスのメソッドは静的ではありません。メソッドを呼び出すときに指定した個々の Date オブジェクトにのみ適用されます。例外として、Date.UTC() メソッドと Date.parse() メソッドがあります。これらは静的なメソッドです。

Date クラスによる夏時間の処理方法は、オペレーティングシステムおよびランタイムのバージョンに応じて異なります。Flash Player 6 以降では、夏時間は各オペレーティングシステムで次のように処理されます。

  • Windows - Date オブジェクトの出力は夏時間に合わせて自動的に調整されます。Date オブジェクトは、夏時間が現在の地域で採用されているかどうかを確認します。夏時間が採用されている場合は、夏時間に移行する日付と時刻の基準を確認します。ただし、現在有効な夏時間の日付が過去と未来に適用されるために、夏時間の日付が異なる地域では、計算される夏時間の日付が過去の日付と食い違う場合があります。
  • Mac OS X - Date オブジェクトの出力は夏時間に合わせて自動的に調整されます。Mac OS X では、タイムゾーン情報データベースを使用して、現在または過去の日付または時刻に夏時間の時差を適用する必要があるかどうかを決定します。
  • Mac OS 9 - 現在の日付および時刻に夏時間の時差を適用する必要があるかどうかを判定できるだけの情報しか提供されません。したがって、Date オブジェクトは、現在の夏時間の時差が過去および将来のすべての日時に適用されると想定します。

Flash Player 5 によるオペレーティングシステム別の夏時間の対処方法は次のとおりです。

  • Windows - 夏時間に関する米国の規則が常に適用されるために、米国とは夏時間に移行する時期が異なるヨーロッパおよび他の地域では移行期間が食い違います。Flash は、現在の地域で採用されている夏時間を正しく検出します。

Date クラスを使用するには、new 演算子を使用して Date インスタンスを作成します。

ActionScript 3.0 は新しいアクセッサープロパティをいくつか追加しています。これらのアクセッサープロパティは、Date インスタンスにアクセスしたり、Date インスタンスを変更する多くの Date クラスメソッドの代わりに使用できます。また、ActionScript 3.0 には、ECMA-262 Edition 3 に準拠するために組み込まれている、toString() メソッドの新しい変形メソッド(Date.toLocaleString()Date.toTimeString()Date.toLocaleTimeString()Date.toDateString()、および Date.toLocaleDateString())も含まれます。

相対時間または経過時間を計算するには、flash.utils パッケージに含まれる getTimer() メソッドを参照してください。

次の例では、次に示す変数を割り当てる場合の Date() コンストラクターの様々な使用法を示しています。
  • myDate1 では、パラメーターを指定せずに Date() を呼び出します。これにより、myDate1 には、使用しているシステムの日時に基づいた現在の日時が設定されます。
  • myDate2 では、Date() を呼び出し、パラメーターに year2000)、month(0 = 1 月)、day1)を渡します。
  • myDate3 では、Date() を呼び出し、パラメーターに year65 = 1965)、month2 = 3 月)、day6)、hour9)、minute30)、second15)、millisecond -+(0)を渡します。
  • myDate4 では、Date() を呼び出し、1970 年 1 月 1 日 0:00:00(世界時)よりも何ミリ秒(値が負であるため)なのかを表す数値を指定します。
package { import flash.display.Sprite; public class DateExample extends Sprite{ public function DateExample() { var myDate1:Date = new Date(); trace(myDate1); // [NOW] var myDate2:Date = new Date(2000, 0, 1); trace(myDate2); // Sat Jan 1 00:00:00 GMT-0800 2000 var myDate3:Date = new Date(65, 2, 6, 9, 30, 15, 0); trace(myDate3); // Sat Mar 6 09:30:15 GMT-0800 1965 var myDate4:Date = new Date(-14159025000); trace(myDate4); // Sun Jul 20 19:56:15 GMT-0700 1969 } } }
flash.utils.getTimer()Date 指定された日時を保持する新しい Date オブジェクトを作成します。yearOrTimevalueObject他のパラメーターが指定されている場合、この数値は年(1965 年など)を表します。それ以外の場合は時間値を表します。数値が年を表す場合、0 ~ 99 の値は 1900 ~ 1999 を表します。それ以外の場合は年を 4 桁で指定する必要があります。数値が時間値を表す(他にパラメーターが指定されない)場合は、1970 年 1 月 1 日 0:00:00 GMT を基準とする経過時間をミリ秒単位で表す値になります。負の値は 1970 年 1 月 1 日 0:00:00 GMT よりもの時刻を表し、正の値はそれより後の時刻を表します。 monthNumber0(1 月)~ 11(12 月)の整数です。 dateNumber11 ~ 31 の整数です。 hourNumber00(0 時)~ 23(午後 11 時)の整数です。 minuteNumber00 ~ 59 の整数です。 secondNumber00 ~ 59 の整数です。 millisecondNumber0ミリ秒の 0 ~ 999 の整数です。 指定された日時を保持する新しい Date オブジェクトを作成します。

Date() コンストラクターは、日付と、ミリ秒までの時刻を指定する、最大 7 つまでパラメーター(year、month、...、millisecond)を取ります。新しく作成された Date オブジェクトに含まれる日付は、渡された引数の数とデータ型により異なります。

  • 引数が渡されなかった場合、Date オブジェクトには現在の日時が割り当てられます。
  • データ型 Number の引数が 1 つ渡された場合、Date オブジェクトには、1970 年 1 月 1 日 0:00:00(GMT)からその 1 つの引数で指定されたミリ秒数後の時間値が割り当てられます。
  • データ型 String の引数が 1 つ渡され、このストリングに有効な日付が含まれている場合は、Date オブジェクトにはその日付に基づく時間値が割り当てられます。
  • 複数の引数が渡された場合、Date オブジェクトには、渡された引数値が表す日付の年、月、日、時、分、秒、ミリ秒に基づく時間値が割り当てられます。

Date クラスのコンストラクターにストリングを渡す場合、日付にはさまざまな形式を使用できますが、少なくとも月、日、年が含まれている必要があります。例えば、Feb 1 2005 は有効ですが、Feb 2005 は無効です。次に、有効な形式をいくつか示します。

  • 曜日 月 日 時:分:秒 GMT 年(例えば "Tue Feb 1 00:00:00 GMT-0800 2005"。これは toString() に対応します)。
  • 曜日 月 日 年 時:分:秒 午前(AM) / 午後(PM)(例えば "Tue Feb 1 2005 12:00:00 AM"。これは toLocaleString() に対応します)。
  • 曜日 月 日 年(例えば "Tue Feb 1 2005"。これは toDateString() に対応します)。
  • 月/日/年(例えば "02/01/2005")
  • 月/年(例えば "02/2005")
getMonth()getDate()getFullYear()
UTC 1970 年 1 月 1 日 0 時(世界時)からパラメーターで指定された時刻までのミリ秒数を返します。1970 年 1 月 1 日から指定された日時までのミリ秒数です。 NumberyearNumber年を表す 4 桁の整数(2000 など)です。 monthNumber0(1 月)~ 11(12 月)の整数です。 dateNumber11 ~ 31 の整数です。 hourNumber00(0 時)~ 23(午後 11 時)の整数です。 minuteNumber00 ~ 59 の整数です。 secondNumber00 ~ 59 の整数です。 millisecondNumber00 ~ 999 の整数です。 1970 年 1 月 1 日 0 時(世界時)からパラメーターで指定された時刻までのミリ秒数を返します。このメソッドでは世界時を使用するのに対し、Date コンストラクターではローカル時間を使用します。

このメソッドは、UTC の日付を Date クラスのコンストラクターに渡す場合に便利です。Date クラスのコンストラクターはミリ秒オフセットを引数として受け取るので、Date.UTC() メソッドを使用して UTC の日付を対応のミリ秒オフセットに変換し、このオフセットを引数として Date クラスコンストラクターに送ることができます。

次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターにローカル時間の year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、UTC()setTime() メソッド内で呼び出し、これらのパラメーターを世界時にリセットします。 var someBirthday:Date = new Date(1974, 10, 30, 15, 20); trace(someBirthday.toString()); someBirthday.setTime(Date.UTC(1974, 10, 30, 15, 20)); trace(someBirthday.toString());
getDate Date オブジェクトで指定された日付(1 ~ 31 の整数)をローカル時間で返します。Date オブジェクトが表す日付(1 ~ 31)です。 Number Date オブジェクトで指定された日付(1 ~ 31 の整数)をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、getDate() メソッドを呼び出し、日付を取得します。 package { import flash.display.Sprite; public class DateExample extends Sprite { public function DateExample() { var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getDate()); // 30 } } } getMonth()getFullYear()getDay この Date で指定された曜日(日曜日は 0、月曜日は 1 など)をローカル時間で返します。Date オブジェクトが表す曜日の数値(0 ~ 6)です。 Number この Date で指定された曜日(日曜日は 0、月曜日は 1 など)をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Array オブジェクト weekDayLabels を作成して、エレメント [Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday] を設定し、次に、新しい Date オブジェクト someBirthday を作成して、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に getDay() メソッドを 2 回呼び出します。1 回目は日付を 6 という数値で表示し、2 回目は weekDayLabels を使用して曜日を表示します。 var weekDayLabels:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getDay()); // 6 trace(weekDayLabels[someBirthday.getDay()]); // Saturday getFullYear Date オブジェクトの年(2000 などの 4 桁の数字)をローカル時間で返します。Date オブジェクトが表す 4 桁の年です。 Number Date オブジェクトの年(2000 などの 4 桁の数字)をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、getFullYear() メソッドを呼び出し、4 桁の年を取得します。 var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getFullYear()); // 1974 getHours Date オブジェクトの時(0 ~ 23 の整数)部分をローカル時間で返します。Date オブジェクトが表す時(0 ~ 23)です。 Number Date オブジェクトの時(0 ~ 23 の整数)部分をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、getHours() メソッドと getMinutes() メソッドを呼び出し、時と分を 24 時間形式で取得します。最後に、ストリング localTime を作成し、関数 getUSClockTime() の呼び出し結果を割り当てます。この関数は、getHours()getMinutes() を再度呼び出します。これにより、時間 03:05 PM が表示されます。 var someBirthday:Date = new Date(1974, 10, 30, 15, 5); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:5 var localTime:String = getUSClockTime(someBirthday.getHours(), someBirthday.getMinutes()); trace(localTime); // 03:05 PM function getUSClockTime(hrs:uint, mins:uint):String { var modifier:String = "PM"; var minLabel:String = doubleDigitFormat(mins); if(hrs > 12) { hrs = hrs-12; } else if(hrs == 0) { modifier = "AM"; hrs = 12; } else if(hrs < 12) { modifier = "AM"; } return (doubleDigitFormat(hrs) + ":" + minLabel + " " + modifier); } function doubleDigitFormat(num:uint):String { if(num < 10) { return ("0" + num); } return num; } getMilliseconds Date オブジェクトのミリ秒(0 ~ 999 の整数)部分をローカル時間で返します。Date オブジェクトのミリ秒部分です。 Number Date オブジェクトのミリ秒(0 ~ 999 の整数)部分をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getMilliseconds() メソッドを呼び出し、Date オブジェクト now の作成時点のミリ秒数 を取得します。 var now:Date = new Date(); trace(now.getMilliseconds()); getMinutes Date オブジェクトの分(0 ~ 59 の整数)部分をローカル時間で返します。Date オブジェクトの分部分です。 Number Date オブジェクトの分(0 ~ 59 の整数)部分をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getMinutes() メソッドを呼び出し、Date オブジェクト now の作成時点の分を取得します。 var now:Date = new Date(); trace(now); trace(now.getMinutes()); getMonth この Date の月(1 月は 0、2 月は 1 など)部分をローカル時間で返します。Date オブジェクトの月(0 ~ 11)部分です。 Number この Date の月(1 月は 0、2 月は 1 など)部分をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Array オブジェクト monthLabels を作成して、January から December までのエレメントを設定し、次に、パラメーターを指定せずに新しい Date オブジェクト now を作成します。次に、getMonth() メソッドを 2 回呼び出します。1 回目は、Date オブジェクト作成時点の now の月の数値を返し、2 回目は月の名前を返します。 var monthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getMonth()); trace(monthLabels[now.getMonth()]); getSeconds Date オブジェクトの秒(0 ~ 59 の整数)部分をローカル時間で返します。Date オブジェクトの秒(0 ~ 59 の整数)部分です。 Number Date オブジェクトの秒(0 ~ 59 の整数)部分をローカル時間で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getSeconds() メソッドを呼び出し、Date オブジェクト now の作成時点の秒を取得します。 var now:Date = new Date(); trace(now.getSeconds()); getTime Date オブジェクトの 1970 年 1 月 1 日 0 時(世界時)からのミリ秒数を返します。Date オブジェクトが表す 1970 年 1 月 1 日からのミリ秒数です。 Number Date オブジェクトの 1970 年 1 月 1 日 0 時(世界時)からのミリ秒数を返します。このメソッドは、複数の Date オブジェクトを比較する際に特定の時間を表すのに使用します。 次の例では、新しい Date オブジェクト mlk を作成し、パラメーターに year1929)、month0 = 1 月)、day15)を指定します。次に、getTime() メソッドを呼び出し、1970 年 1 月 1 日午前 0 時からのミリ秒数を取得します。年が 1929 に設定されているため、ミリ秒は負の値で表されます。 var mlk:Date = new Date(1929, 0, 15); trace(mlk); // Tue Jan 15 00:00:00 GMT-0800 1929 trace(mlk.getTime()); // -1292601600000 次の例では、新しい Date オブジェクト now をパラメーター指定なしで作成し、次に、以降で作成する DateMath クラスのメソッドを使用して、元の Date オブジェクト now の作成時刻に時間を追加します。
  • addSeconds() : now に 30 秒を追加します。
  • addMinutes() : now に 30 分を追加します。
  • addHours() : Date オブジェクト now に 6 時間を追加します。
  • addDays() : Date オブジェクト now に 30 日を追加します。
  • addWeeks() : now に 4 週間を追加します。
var now:Date = new Date(); trace(now); trace(DateMath.addSeconds(now, 30)); trace(DateMath.addMinutes(now, 30)); trace(DateMath.addHours(now, 6)); trace(DateMath.addDays(now, 30)); trace(DateMath.addWeeks(now, 4)); class DateMath { public static function addWeeks(date:Date, weeks:Number):Date { return addDays(date, weeks*7); } public static function addDays(date:Date, days:Number):Date { return addHours(date, days*24); } public static function addHours(date:Date, hrs:Number):Date { return addMinutes(date, hrs*60); } public static function addMinutes(date:Date, mins:Number):Date { return addSeconds(date, mins*60); } public static function addSeconds(date:Date, secs:Number):Date { var mSecs:Number = secs * 1000; var sum:Number = mSecs + date.getTime(); return new Date(sum); } } 注意:Date 演算を実行する場合には、getTime を使用することが重要です。getTime はうるう年に対応しているので、次の疑似コードのような if 文が不要です。
 function addMonths(num:Number):void {
     currentMonth = currentMonth + num;
     if(currentMonth > 12) {
         currentYear++;
         currentMonth = currentMonth - 12;
     }
 }
 
getTimezoneOffset 世界時(UTC)とコンピューターのローカル時間の差(分単位)を返します。この分をコンピューターのローカル時間に加算すると世界時と等しくなります。コンピューターの時刻が世界時より遅い時間に設定されている場合、戻り値は負の数になります。 Number 世界時(UTC)とコンピューターのローカル時間の差(分単位)を返します。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getTimezoneOffset() メソッドを呼び出し、now が作成された時刻と世界時の差(分単位)を取得します。さらに、この結果を 60 で除算して、タイムゾーンのオフセットを時間単位に変換します。 var date:Date = new Date(); trace(date.getTimezoneOffset() / 60); getUTCDate Date オブジェクトの日付(1 ~ 31 の整数)を世界時(UTC)で返します。Date オブジェクトが表す UTC の日付(1 ~ 31)です。 Number Date オブジェクトの日付(1 ~ 31 の整数)を世界時(UTC)で返します。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。getUTCDate() メソッドを呼び出し、日付を UTC で取得します。 var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCDate()); // 30 getDate()getUTCDay この Date の曜日(日曜日は 0、月曜日は 1 など)を世界時(UTC)で返します。Date オブジェクトが表す UTC の曜日(0 ~ 6)です。 Number この Date の曜日(日曜日は 0、月曜日は 1 など)を世界時(UTC)で返します。 次の例では、新しい Array オブジェクト weekDayLabels を作成して、エレメント [Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday] を設定し、次に、新しい Date オブジェクト someBirthday を作成して、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に getUTCDay() メソッドを 2 回呼び出します。1 回目は日付を 6 という数値で表示し、2 回目は weekDayLabels を使用して曜日を UTC で表示します。 var weekDayLabels:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCDay()); // 6 trace(weekDayLabels[someBirthday.getUTCDay()]); // Saturday getDay()getUTCFullYear Date オブジェクトの 4 桁の年を世界時(UTC)で返します。Date オブジェクトが表す UTC の 4 桁の年です。 Number Date オブジェクトの 4 桁の年を世界時(UTC)で返します。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、getUTCFullYear() メソッドを呼び出し、4 桁の年を UTC で取得します。 var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCFullYear()); // 1974 getFullYear()getUTCHours Date オブジェクトの時(0 ~ 23 の整数)を世界時(UTC)で返します。Date オブジェクトが表す UTC の時(0 ~ 23)です。 Number Date オブジェクトの時(0 ~ 23 の整数)を世界時(UTC)で返します。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、getHours() メソッドと getMinutes() メソッドを呼び出し、時と分を 24 時間形式で取得します。最後に、ストリング localTime を作成し、関数 getUSClockTime() の呼び出し結果を割り当てます。この関数は、getHours()getMinutes() を再度呼び出します。これにより、時間 03:05 PM が表示されます。最後に、String 変数 utcTimelocalTime と同様の方法で作成します。この場合、結果は同じになります。 var someBirthday:Date = new Date(1974, 10, 30, 15, 5); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:5 var localTime:String = getUSClockTime(someBirthday.getHours(), someBirthday.getMinutes()); trace(localTime); // 03:05 PM var utcTime:String = getUSClockTime(someBirthday.getUTCHours(), someBirthday.getUTCMinutes()); trace(utcTime); // 11:05 PM function getUSClockTime(hrs:uint, mins:uint):String { var modifier:String = "PM"; var minLabel:String = doubleDigitFormat(mins); if(hrs > 12) { hrs = hrs-12; } else if(hrs == 0) { modifier = "AM"; hrs = 12; } else if(hrs < 12) { modifier = "AM"; } return (doubleDigitFormat(hrs) + ":" + minLabel + " " + modifier); } function doubleDigitFormat(num:uint):String { if(num < 10) { return ("0" + num); } return num; } getHours()getUTCMilliseconds Date オブジェクトのミリ秒(0 ~ 999 の整数)部分を世界時(UTC)で返します。Date オブジェクトの UTC のミリ秒部分です。 Number Date オブジェクトのミリ秒(0 ~ 999 の整数)部分を世界時(UTC)で返します。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getUTCMilliseconds() メソッドを呼び出し、Date オブジェクト now の作成時点のミリ秒 を UTC で取得します。 var now:Date = new Date(); trace(now.getUTCMilliseconds()); getUTCMinutes Date オブジェクトの分(0 ~ 59 の整数)部分を世界時(UTC)で返します。Date オブジェクトの UTC の分部分です。 Number Date オブジェクトの分(0 ~ 59 の整数)部分を世界時(UTC)で返します。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getUTCMinutes() メソッドを呼び出し、Date オブジェクト now の作成時点の分を UTC で取得します。 var now:Date = new Date(); trace(now.getUTCMinutes()); getUTCMonth Date オブジェクトの月(0(1 月) ~ 11(12 月))部分を世界時(UTC)で返します。Date オブジェクトの UTC の月部分です。 Number Date オブジェクトの月(0(1 月) ~ 11(12 月))部分を世界時(UTC)で返します。 次の例では、新しい Array オブジェクト monthLabels を作成して、January から December までのエレメントを設定し、次に、パラメーターを指定せずに新しい Date オブジェクト now を作成します。次に、getUTCMonth() メソッドを 2 回呼び出します。1 回目は、Date オブジェクト作成時点の now の月の数値を、2 回目は月の名前を UTC で返します。 var monthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getMonth()); trace(now.getUTCMonth()); trace(monthLabels[now.getUTCMonth()]); getMonth()getUTCSeconds Date オブジェクトの秒(0 ~ 59 の整数)部分を世界時(UTC)で返します。Date オブジェクトの UTC の秒部分です。 Number Date オブジェクトの秒(0 ~ 59 の整数)部分を世界時(UTC)で返します。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getUTCSeconds() メソッドを呼び出し、Date オブジェクト now の作成時点の秒を UTC で取得します。 var now:Date = new Date(); trace(now.getUTCSeconds()); parse 日付を表すストリングを、1970 年 1 月 1 日(UTC)から経過したミリ秒数に相当する数値に変換します。1970 年 1 月 1 日(UTC)から経過したミリ秒数を表す数値です。 NumberdateStringDate.toString() の出力形式に準じた日付のストリング表現です。Date.toString() の出力の日付形式は、次のとおりです。
     Day Mon DD HH:MM:SS TZD YYYY
     

次に実際の使用例を示します。

     Wed Apr 12 15:30:17 GMT-0700 2006
     

タイムゾーン指定(TZD)は、常に GMT-HHMM または UTC-HHMM の形式になります。これは、グリニッジ標準時(GMT)を基準にした時間と分のオフセットを示します。なお、グリニッジ標準時は現在は世界時(UTC)とも呼ばれています。年、月、曜日は、スラッシュ(/)またはスペースで区切ることができますが、ダッシュ(-)で区切ることはできません。他にも、次のような形式がサポートされます。月、曜日、年だけというように、これらの形式の一部分を含めることもできます。

     MM/DD/YYYY HH:MM:SS TZD
     HH:MM:SS TZD Day Mon/DD/YYYY 
     Mon DD YYYY HH:MM:SS TZD
     Day Mon DD HH:MM:SS TZD YYYY
     Day DD Mon HH:MM:SS TZD YYYY
     Mon/DD/YYYY HH:MM:SS TZD
     YYYY/MM/DD HH:MM:SS TZD
     
日付を表すストリングを、1970 年 1 月 1 日(UTC)から経過したミリ秒数に相当する数値に変換します。 次の例では、1974 年 11 月 30 日の日付ストリングを dateParsed に割り当てます。次に、Date.parse() メソッドを呼び出し、この日付を 1970 年 1 月 1 日からのミリ秒数に変換します。 var dateParsed:String = "Sat Nov 30 1974"; var milliseconds:Number = Date.parse(dateParsed); trace(milliseconds); // 155030400000
Date.toString()
setDate 月内の日付をローカル時間で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumberdayNumber1 ~ 31 の整数です。 月内の日付をローカル時間で設定し、新しい時刻をミリ秒で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、getDate() メソッドを呼び出し、日付を取得します。次に、setDate() を呼び出して(day パラメーターに 20 を設定)から、getDate() を再度呼び出します。これにより、新しく設定された日付を取得します。 var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getDate()); // 30 someBirthday.setDate(20); trace(someBirthday.getDate()); // 20 setFullYear 年をローカル時間で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumberyearNumber年を示す 4 桁の数値です。2 桁の数値は 4 桁の年の省略形を表しません。例えば、99 は 1999 年ではなく、99 年です。 monthNumber0(1 月)~ 11(12 月)の整数です。 dayNumber1 ~ 31 の数値です。 年をローカル時間で設定し、新しい時刻をミリ秒で返します。month パラメーターと day パラメーターを指定すると、両方はローカル時間に設定されます。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。

このメソッドを呼び出しても Date オブジェクトの他のフィールドは変更されませんが、このメソッドを呼び出した結果として曜日が変わった場合には、Date.getUTCDay()Date.getDay() は新しい値を返すことがあります。

次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、メソッド getFullYear() を呼び出し、4 桁の年を取得します。次に、setFullYear() を呼び出して(year パラメーターに 2000 を設定)から、getFullYear() を再度呼び出します。これにより、新しく設定された年を取得します。 var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getFullYear()); // 1974 someBirthday.setFullYear(2000); trace(someBirthday.getFullYear()); // 2000
getUTCDay()getDay()
setHours 時をローカル時間で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumberhourNumber0(0 時)~ 23(午後 11 時)の整数です。 minuteNumber0 ~ 59 の整数です。 secondNumber0 ~ 59 の整数です。 millisecondNumber0 ~ 999 の整数です。 時をローカル時間で設定し、新しい時刻をミリ秒で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、メソッド getHours()getMinutes() を呼び出し、時と分を取得します。次に、setHours() を呼び出して(hour パラメーターに 12 を設定)から、getHours()getMinutes() を再度呼び出します。これにより、新しく設定された時と分を取得します。 var someBirthday:Date = new Date(1974, 10, 30, 15, 20); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:20 someBirthday.setHours(12); trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 12:20 setMilliseconds ミリ秒をローカル時間で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumbermillisecondNumber0 ~ 999 の整数です。 ミリ秒をローカル時間で設定し、新しい時刻をミリ秒で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getMilliseconds() メソッドを呼び出し、now 作成時点のミリ秒を取得します。次に、別の Date オブジェクト before を、setMilliseconds() を追加で呼び出して(millisecond パラメーターに 4 を設定)作成します。次に、getMilliseconds() を再度呼び出して、新しく設定されたミリ秒を取得します。 var now:Date = new Date(); trace(now); trace(now.getMilliseconds()); var before:Date = new Date(now.setMilliseconds(4)); trace(before); trace(before.getMilliseconds()); setMinutes 分をローカル時間で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumberminuteNumber0 ~ 59 の整数です。 secondNumber0 ~ 59 の整数です。 millisecondNumber0 ~ 999 の整数です。 分をローカル時間で設定し、新しい時刻をミリ秒で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getMinutes() メソッドを呼び出し、now 作成時点の分を取得します。次に、別の Date オブジェクト before を、setMinutes() を追加で呼び出して(minute パラメーターに 0 を設定)作成します。次に、getMinutes() を再度呼び出して、新しく設定された分を取得します。 var now:Date = new Date(); trace(now); trace(now.getMinutes()); var before:Date = new Date(now.setMinutes(0)); trace(before); trace(before.getMinutes()); setMonth 月と、オプションで日付をローカル時間で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumbermonthNumber0(1 月)~ 11(12 月)の整数です。 dayNumber1 ~ 31 の整数です。 月と、オプションで日付をローカル時間で設定し、新しい時刻をミリ秒で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Array オブジェクト monthLabels を作成して、January から December までのエレメントを設定し、次に、パラメーターを指定せずに新しい Month オブジェクト now を作成します。次に、getMonth() メソッドを呼び出し、now 作成時点の月を取得します。次に、setMonth() を呼び出して(month パラメーターに 0 を設定)から、getMonth() を再度呼び出します。これにより、新しく設定された月を取得します。 var monthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getMonth()); trace(monthLabels[now.getMonth()]); now.setMonth(0); trace(now.getMonth()); // 0 trace(monthLabels[now.getMonth()]); // January setSeconds 秒をローカル時間で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumbersecondNumber0 ~ 59 の整数です。 millisecondNumber0 ~ 999 の整数です。 秒をローカル時間で設定し、新しい時刻をミリ秒で返します。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getseconds() メソッドを呼び出し、now 作成時点の秒を取得します。次に、setSeconds() を呼び出して(second パラメーターに 0 を設定)から、getSeconds() を再度呼び出します。これにより、新しく設定された秒を取得します。 var now:Date = new Date(); trace(now.getSeconds()); now.setSeconds(0); trace(now.getSeconds()); // 0 setTime 日付を 1970 年 1 月 1 日 0 時からのミリ秒数で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumbermillisecondNumber整数値です。0 は世界時(UTC)の 1 月 1 日 0 時です。 日付を 1970 年 1 月 1 日 0 時からのミリ秒数で設定し、新しい時刻をミリ秒で返します。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に setTime() メソッドを呼び出します。パラメーター millisecond には -1292601600000 を設定します。これにより時刻は Tue Jan 15 00:00:00 GMT-0800 1929 に設定されます。 var now:Date = new Date(); trace(now); now.setTime(-1292601600000); trace(now); // Tue Jan 15 00:00:00 GMT-0800 1929 setUTCDate 月内の日付を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumberdayNumber1 ~ 31 の整数値です。 月内の日付を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。このメソッドを呼び出しても、Date オブジェクトの他のフィールドは変更されませんが、このメソッドを呼び出した結果として曜日が変わった場合には、Date.getUTCDay() メソッドと Date.getDay() メソッドは新しい値を返すことがあります。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。getUTCDate() メソッドを呼び出すと、月内の日付が正しく返されます。次に、setUTCDate() を呼び出します。パラメーター day には 1 を設定します。trace() ステートメントで日付が正しく設定されたことを確認します。 var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCDate()); // 30 someBirthday.setUTCDate(1); trace(someBirthday); // Fri Nov 1 01:20:00 GMT-0800 1974 getUTCDay()getDay()setUTCFullYear 年を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。整数です。 NumberyearNumber4 桁の年(2000 など)を表す整数です。 monthNumber0(1 月)~ 11(12 月)の整数です。 dayNumber1 ~ 31 の整数です。 年を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。

このメソッドでは、オプションで月と日を設定することもできます。このメソッドを呼び出しても他のフィールドは変更されませんが、このメソッドを呼び出した結果として曜日が変わった場合には、Date.getUTCDay()Date.getDay() メソッドは新しい値を返すことがあります。

次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。メソッド getUTCFullYear() を呼び出すと、4 桁の年が正しく返されます。次に、setUTCFullYear() を呼び出します。パラメーター year には 1975 を設定します。trace() ステートメントで年が正しく設定されたことを確認します。 var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCFullYear()); // 1974 someBirthday.setUTCFullYear(1975); trace(someBirthday); // Thu Nov 30 01:20:00 GMT-0800 1975
getUTCDay()getDay()
setUTCHours 時を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumberhourNumber0(0 時)~ 23(午後 11 時)の整数です。 minuteNumber0 ~ 59 の整数です。 secondNumber0 ~ 59 の整数です。 millisecondNumber0 ~ 999 の整数です。 時を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。オプションで、分、秒、およびミリ秒を指定することができます。 次の例では、新しい Date オブジェクト someBirthday を作成し、パラメーターに year1974)、month10 = 11 月)、day30)、hour1)、minute20)を指定します。次に、メソッド getHours()getMinutes()getUTCHours()getUTCMinutes() を呼び出し、時と分を取得します。setUTCHours() を呼び出します。パラメーター hour には 12 を設定します。次に、メソッド getHours()getMinutes()getUTCHours()getUTCMinutes() を再度呼び出し、更新された時を正しく表示します。 var someBirthday:Date = new Date(1974, 10, 30, 15, 20); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:20 trace(someBirthday.getUTCHours() + ":" + someBirthday.getUTCMinutes()); // 23:20 someBirthday.setUTCHours(12); trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 4:20 trace(someBirthday.getUTCHours() + ":" + someBirthday.getUTCMinutes()); // 12:20 setUTCMilliseconds ミリ秒を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumbermillisecondNumber0 ~ 999 の整数です。 ミリ秒を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getUTCMilliseconds() メソッドを呼び出し、now 作成時点の UTCMilliseconds を取得します。次に、別の Date オブジェクト before を、setUTCMilliseconds() を呼び出して(millisecond パラメーターに 4 を設定)作成します。次に、getUTCMilliseconds() を再度呼び出して、新しく設定されたミリ秒を取得します。 var now:Date = new Date(); trace(now); trace(now.getUTCMilliseconds()); var before:Date = new Date(now.setUTCMilliseconds(4)); trace(before); trace(before.getUTCMilliseconds()); setUTCMinutes 分を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumberminuteNumber0 ~ 59 の整数です。 secondNumber0 ~ 59 の整数です。 millisecondNumber0 ~ 999 の整数です。 分を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。オプションで、秒とミリ秒を指定することができます。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getUTCMinutes() メソッドを呼び出し、now 作成時点の UTCMinutes を取得します。次に、別の Date オブジェクト before を、setUTCMinutes() を呼び出して(minute パラメーターに 0 を設定)作成します。次に、getUTCMinutes() を再度呼び出して、新しく設定された分を取得します。 var now:Date = new Date(); trace(now); trace(now.getUTCMinutes()); var before:Date = new Date(now.setUTCMinutes(0)); trace(before); trace(before.getUTCMinutes()); setUTCMonth 月、および日(オプション)を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumbermonthNumber0(1 月)~ 11(12 月)の整数です。 dayNumber1 ~ 31 の整数です。 月、および日(オプション)を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。このメソッドを呼び出しても他のフィールドは変更されませんが、このメソッドを呼び出した結果として曜日が変わった場合には、Date.getUTCDay() メソッドと Date.getDay() メソッドは新しい値を返すことがあります。 次の例では、新しい Array オブジェクト UTCMonthLabels を作成して、January から December までのエレメントを設定し、次に、パラメーターを指定せずに新しい UTCMonth オブジェクト now を作成します。次に、getUTCMonth() メソッドを呼び出し、now 作成時点の UTCMonth を取得します。次に、setUTCMonth() を呼び出して(month パラメーターに 0 を設定)から、getUTCMonth() を再度呼び出します。これにより、新しく設定された月を取得します。 var UTCMonthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getUTCMonth()); trace(UTCMonthLabels[now.getUTCMonth()]); now.setUTCUTCMonth(0); trace(now.getUTCMonth()); // 0 trace(UTCMonthLabels[now.getUTCMonth()]); // January getDay()setUTCSeconds 秒、およびオプションでミリ秒を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。ミリ秒で表される新しい時刻です。 NumbersecondNumber0 ~ 59 の整数です。 millisecondNumber0 ~ 999 の整数です。 秒、およびオプションでミリ秒を世界時(UTC)で設定し、新しい時刻をミリ秒で返します。 次の例では、新しい Date オブジェクト now をパラメーターの指定なしで作成します。次に、getUTCSeconds() メソッドを呼び出し、now 作成時点の秒を取得します。次に、setUTCSeconds() を呼び出して(second パラメーターに 0 を設定)から、getUTCSeconds() を再度呼び出します。これにより、新しく設定された秒を取得します。 var now:Date = new Date(); trace(now.getUTCSeconds()); now.setUTCSeconds(0); trace(now.getUTCSeconds()); // 0 toDateString 曜日と日付のみのストリング表現を返します。時刻またはタイムゾーンは含まれません。曜日と日付のみのストリング表現です。 String 曜日と日付のみのストリング表現を返します。時刻またはタイムゾーンは含まれません。次のメソッドと対照を成します。
  • Date.toTimeString() は時刻とタイムゾーンのみを返します。
  • Date.toString() は曜日と日付のみでなく、時刻とタイムゾーンも返します。
次の例では、パラメーター設定なしで新しい Date オブジェクト now 作成し、trace() ステートメントの中で、次のメソッドを呼び出します。
  • toString : now のすべてのパラメーター(now が作成されたときの)を表示します。
  • toDateString() : daymonthyear パラメーター(now が作成されたときの)を表示します。
var now:Date = new Date(); trace(now); trace(now.toDateString());
toString()
toLocaleDateString 曜日と日付のみのストリング表現を返します。時刻またはタイムゾーンは含まれません。曜日と日付のみの String 表現です。 String 曜日と日付のみのストリング表現を返します。時刻またはタイムゾーンは含まれません。このメソッドは、Date.toDateString と同じ値を返します。次のメソッドと対照を成します。
  • Date.toTimeString() は時刻とタイムゾーンのみを返します。
  • Date.toString() は曜日と日付のみでなく、時刻とタイムゾーンも返します。
toDateString()toTimeString()toString()
toLocaleString 曜日、日付、時刻のストリング表現を、指定されたローカル時間で返します。Date オブジェクトのストリング表現をローカルタイムゾーンで返します。 String 曜日、日付、時刻のストリング表現を、指定されたローカル時間で返します。同じ情報(およびタイムゾーン)をストリングの最後に年を付けて返す Date.toString() メソッドと対照を成します。 toLocaleTimeString 時刻のみのストリング表現を返します。曜日、日付、年、またはタイムゾーンは含まれません。時刻とタイムゾーンのみのストリング表現です。 String 時刻のみのストリング表現を返します。曜日、日付、年、またはタイムゾーンは含まれません。時刻とタイムゾーンを返す Date.toTimeString() メソッドと対照を成します。 toTimeString()toString 曜日、日付、時刻、およびタイムゾーンのストリング表現を返します。Date オブジェクトのストリング表現です。 String 曜日、日付、時刻、およびタイムゾーンのストリング表現を返します。出力の日付形式は、次のとおりです。
     Day Mon Date HH:MM:SS TZD YYYY
     

次に実際の使用例を示します。

     Wed Apr 12 15:30:17 GMT-0700 2006
     
次の例では、パラメーターを指定せずに Date オブジェクト now を作成し、次に、toStringtrace() ステートメント内で呼び出します。これにより now のすべてのパラメーター(now を作成したときの)を表示します。 var now:Date = new Date(); trace(now);
toTimeString 時刻とタイムゾーンのみのストリング表現を返します。曜日と日付は含まれません。時刻とタイムゾーンのみのストリング表現です。 String 時刻とタイムゾーンのみのストリング表現を返します。曜日と日付は含まれません。曜日と日付のみを返す Date.toDateString() メソッドと対照を成します。 toDateString()toUTCString 曜日、日付、および時刻のストリング表現を世界時(UTC)で返します。Date オブジェクトの UTC のストリング表現です。 String 曜日、日付、および時刻のストリング表現を世界時(UTC)で返します。例えば、2005 年 2 月 1 日を Tue Feb 1 00:00:00 2005 UTC として返します。 toString()valueOf Date オブジェクトの 1970 年 1 月 1 日 0 時(世界時)からのミリ秒数を返します。Date オブジェクトが表す 1970 年 1 月 1 日からのミリ秒数です。 Number Date オブジェクトの 1970 年 1 月 1 日 0 時(世界時)からのミリ秒数を返します。 次の例では、パラメーターを指定せずに新しい Date オブジェクト now を作成し、次に、getTime() メソッドを呼び出して、1970 年 1 月 1 日 0 時 から now が作成された時刻までのミリ秒数を取得します。次に、valueOf() を呼び出して同じ値を取得します。 var now:Date = new Date(); trace(now.getTime()); trace(now.valueOf()); dateUTC Date オブジェクトの世界時(UTC)による日付(1 ~ 31 の整数)です。Number Date オブジェクトの世界時(UTC)による日付(1 ~ 31 の整数)です。 getUTCDate()setUTCDate()date Date オブジェクトで指定されたローカル時間による日付(1 ~ 31 の整数)です。Number Date オブジェクトで指定されたローカル時間による日付(1 ~ 31 の整数)です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getDate()setDate()dayUTC この Date の世界時(UTC)による曜日(日曜日は 0、月曜日は 1 など)です。Number この Date の世界時(UTC)による曜日(日曜日は 0、月曜日は 1 など)です。 getUTCDay()day この Date で指定されたローカル時間による曜日(日曜日は 0、月曜日は 1 など)です。Number この Date で指定されたローカル時間による曜日(日曜日は 0、月曜日は 1 など)です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getDay()fullYearUTC Date オブジェクトの世界時(UTC)による 4 桁の年です。Number Date オブジェクトの世界時(UTC)による 4 桁の年です。 getUTCFullYear()setUTCFullYear()fullYear Date オブジェクトのローカル時間による年(2000 などの 4 桁の数字)です。Number Date オブジェクトのローカル時間による年(2000 などの 4 桁の数字)です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getFullYear()setFullYear()hoursUTC Date オブジェクトの世界時(UTC)による時(0 ~ 23 の整数)です。Number Date オブジェクトの世界時(UTC)による時(0 ~ 23 の整数)です。 getUTCHours()setUTCHours()hours Date オブジェクトのローカル時間による時(0 ~ 23 の整数)部分です。Number Date オブジェクトのローカル時間による時(0 ~ 23 の整数)部分です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getHours()setHours()millisecondsUTC Date オブジェクトの世界時(UTC)によるミリ秒(0 ~ 999 の整数)部分です。Number Date オブジェクトの世界時(UTC)によるミリ秒(0 ~ 999 の整数)部分です。 getUTCMilliseconds()setUTCMilliseconds()milliseconds Date オブジェクトのローカル時間によるミリ秒(0 ~ 999 の整数)部分です。Number Date オブジェクトのローカル時間によるミリ秒(0 ~ 999 の整数)部分です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getMilliseconds()setMilliseconds()minutesUTC Date オブジェクトの世界時(UTC)による分(0 ~ 59 の整数)部分です。Number Date オブジェクトの世界時(UTC)による分(0 ~ 59 の整数)部分です。 getUTCMinutes()setUTCMinutes()minutes Date オブジェクトのローカル時間による分(0 ~ 59 の整数)部分です。Number Date オブジェクトのローカル時間による分(0 ~ 59 の整数)部分です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getMinutes()setMinutes()monthUTC Date オブジェクトの世界時(UTC)による月(0(1 月)~ 11(12 月))部分です。Number Date オブジェクトの世界時(UTC)による月(0(1 月)~ 11(12 月))部分です。 getUTCMonth()setUTCMonth()month Date オブジェクトのローカル時間による月(1 月は 0、2 月は 1 など)です。Number Date オブジェクトのローカル時間による月(1 月は 0、2 月は 1 など)です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getMonth()setMonth()secondsUTC Date オブジェクトの世界時(UTC)による秒(0 ~ 59 の整数)部分です。Number Date オブジェクトの世界時(UTC)による秒(0 ~ 59 の整数)部分です。 getUTCSeconds()setUTCSeconds()seconds Date オブジェクトのローカル時間による秒(0 ~ 59 の整数)部分です。Number Date オブジェクトのローカル時間による秒(0 ~ 59 の整数)部分です。ローカル時間は、Flash ランタイムを実行しているオペレーティングシステムによって決まります。 getSeconds()setSeconds()time Date オブジェクトの 1970 年 1 月 1 日 0 時(世界時)からのミリ秒数です。Number Date オブジェクトの 1970 年 1 月 1 日 0 時(世界時)からのミリ秒数です。このメソッドは、複数の Date オブジェクトを比較する際に特定の時間を表すのに使用します。 getTime()setTime()timezoneOffset 世界時(UTC)とコンピューターのローカル時間の差(分単位)です。Number 世界時(UTC)とコンピューターのローカル時間の差(分単位)です。つまり、この分の値をコンピューターのローカル時間に加算すると世界時と等しくなります。コンピューターの時刻が世界時より遅い時間に設定されている場合、戻り値は負の数になります。 getTimezoneOffset()
Object Object クラスは、ActionScript ランタイムクラス階層のルートにあります。 Object クラスは、ActionScript クラス階層のルートにあります。 オブジェクトは、new 演算子シンタックスを使用したコンストラクターで作成され、プロパティを動的に割り当てることができます。また、次のようにオブジェクトリテラルを割り当てて作成することもできます。 var obj:Object = {a:"foo", b:"bar"}

明示的な基本クラスを宣言していないクラスはすべて、ビルトインの Object クラスを拡張します。

Object クラスを使用して、結合配列を作成できます。基本的に、結合配列は Object クラスのインスタンスであり、キー値ペアはプロパティとその値という形式で表現されます。Object データタイプを使用して結合配列を宣言する別の理由は、そうすると、オブジェクトリテラルを使用して結合配列にデータを設定できるからです(ただし、宣言時のみ)。次の例では、オブジェクトリテラルを使用して結合配列を作成し、ドット演算子と配列アクセス演算子を両方とも使用して項目にアクセスします。その後、新しいプロパティを作成することで新しいキー値ペアを追加します。

var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAssocArray.fname); // John trace(myAssocArray["lname"]); // Public myAssocArray.initial = "Q"; trace(myAssocArray.initial); // Q

ActionScript 3.0 には、クラス継承とプロトタイプ継承という 2 つの種類の継承があります。

  • クラス継承 - 主要な継承メカニズムであり、固定プロパティの継承をサポートします。固定プロパティは、クラス定義の一部として宣言される変数、定数、またはメソッドです。クラス宣言はすべて、クラスに関する情報が保存されている特別なクラスオブジェクトで表されます。
  • プロトタイプ継承 - 旧バージョンの ActionScript ではこれが唯一の継承メカニズムでしたが、ActionScript 3.0 では代替の継承形式として機能します。各クラスには関連付けられたプロトタイプオブジェクトがあり、プロトタイプオブジェクトのプロパティは、そのクラスのすべてのインスタンス間で共有されます。クラスインスタンスを作成した場合、インスタンスはそのクラスのプロトタイプオブジェクトへの参照を持っています。この参照は、インスタンスと、関連するクラスのプロトタイプオブジェクトとの間のリンクとして機能します。実行時に、クラスインスタンスにプロパティが見つからない場合は、委譲先であるクラスのプロトタイプオブジェクトにそのプロパティがないかどうかがチェックされます。プロトタイプオブジェクトにもない場合は、Flash ランタイムがそのプロパティを見つけるまで、プロトタイプオブジェクトの委譲先でチェックを行うという処理が階層の上位に向かって連続的に継続されます。

次の例に示すように、クラス継承とプロトタイプ継承は共存可能です。

class A { var x = 1 prototype.px = 2 } dynamic class B extends A { var y = 3 prototype.py = 4 } var b = new B() b.x // 1 via class inheritance b.px // 2 via prototype inheritance from A.prototype b.y // 3 b.py // 4 via prototype inheritance from B.prototype B.prototype.px = 5 b.px // now 5 because B.prototype hides A.prototype b.px = 6 b.px // now 6 because b hides B.prototype

クラスの代わりに関数を使用すると、カスタムプロトタイプ継承ツリーを作成できます。クラスを使用すると、プロトタイプ継承ツリーはクラス継承ツリーをミラーします。ただし、プロトタイプオブジェクトは動的であるため、プロトタイプベースのプロパティを実行時に追加および削除できます。

次の例は ObjectExample クラスと Circle クラスを使用して Object クラスの動的な特徴を紹介し、値オブジェクトを Shape オブジェクトに変換してステージ上の指定した x および y 座標に追加する方法を示しています。

この例では、値オブジェクト firstInitObjsecondInitObj を作成します。カスタムクラス Circle は、値オブジェクトを受け入れ、対応する内部プロパティを値オブジェクトに定義されたプロパティに設定しながらループします。

package { import flash.display.Sprite; public class ObjectExample extends Sprite { public function ObjectExample() { var firstInitObj:Object = new Object(); firstInitObj.bgColor = 0xFF0000; firstInitObj.radius = 25; firstInitObj.xCenter = 25; firstInitObj.yCenter = 25; var firstCircle:Circle = new Circle(firstInitObj); addChild(firstCircle); firstCircle.x = 50; firstCircle.y = 50; var secondInitObj:Object = {bgColor:0xCCCCCC, radius:50, xCenter:50, yCenter:50}; var secondCircle:Circle = new Circle(secondInitObj); addChild(secondCircle); secondCircle.x = 100; secondCircle.y = 100; } } } import flash.display.Shape; class Circle extends Shape { public var bgColor:Number = 0xFFFFFF; public var radius:Number = 0; public var xCenter:Number = 0; public var yCenter:Number = 0; public function Circle(initObj:Object) { for(var i:String in initObj) { this[i] = initObj[i]; } draw(); } public function draw():void { graphics.beginFill(bgColor); graphics.drawCircle(xCenter, yCenter, radius); graphics.endFill(); } }
prototypeObject Object オブジェクトを作成し、そのオブジェクトのコンストラクターメソッドへの参照をオブジェクトの constructor プロパティに格納します。 Object オブジェクトを作成し、そのオブジェクトのコンストラクターメソッドへの参照をオブジェクトの constructor プロパティに格納します。 hasOwnProperty オブジェクトに指定されたプロパティが定義されているかどうかを示します。ターゲットオブジェクトに name パラメーターで指定されたプロパティがある場合、この値は true になり、それ以外の場合は false になります。 BooleannameStringオブジェクトのプロパティです。 オブジェクトに指定されたプロパティが定義されているかどうかを示します。true が返されるのは、ターゲットオブジェクトに name パラメーターで指定されたストリングに一致するプロパティがある場合です。それ以外の場合は false が返されます。次のタイプのプロパティについては、オブジェクトがクラスオブジェクトではなく、クラスのインスタンスである場合に true が返されます。
  • 固定インスタンスプロパティ — オブジェクトのクラスで定義された、静的でない変数、定数、またはメソッド
  • 継承された固定インスタンスプロパティ — オブジェクトのクラスが継承した変数、定数、またはメソッド
  • 動的プロパティ — オブジェクトをインスタンス化した後に(クラス定義外で)オブジェクトに追加されたプロパティ 動的プロパティを追加するには、dynamic キーワードを使用して、オブジェクトを定義しているクラスを宣言する必要があります。

次のタイプのプロパティについては、オブジェクトがクラスのインスタンスである場合に false が返されます。

  • 静的プロパティ — オブジェクトを定義しているクラスまたはその任意のスーパークラスの静的キーワードを使用して定義された変数、定数、またはメソッド
  • プロトタイププロパティ — オブジェクトのプロトタイプチェーンの一部であるプロトタイプに定義されたプロパティ ActionScript 3.0 では、プロトタイプチェーンはクラス継承には使用されませんが、継承の代替形式として存在しています。例えば、Array クラスのインスタンスは、valueOf() メソッドにアクセスできます。それは、そのインスタンスが Array クラスのプロトタイプチェーンの一部である Object.prototype に存在するためです。Array のインスタンスに対して valueOf() を使用できますが、そのインスタンスに対する hasOwnProperty("valueOf") の戻り値は false になります。

また、ActionScript 3.0 には、クラス定義の直接的な表現であるクラスオブジェクトがあります。hasOwnProperty() メソッドをクラスオブジェクトに対して呼び出すと、プロパティがそのクラスオブジェクトに定義された静的プロパティである場合にのみ、true が返されます。例えば、CustomArray という Array のサブクラスを作成し、CustomArray に foo という静的プロパティを定義した場合、CustomArray.hasOwnProperty("foo") を呼び出すと true が返されます。ただし、Array クラスに定義した静的プロパティ DESCENDING の場合、CustomArray.hasOwnProperty("DESCENDING") を呼び出すと、false が返されます。

注意:Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。例えば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function hasOwnProperty():Boolean が実装されます。

isPrototypeOf Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。オブジェクトが theClass パラメーターで指定されたオブジェクトのプロトタイプチェーン内にある場合、この値は true になり、それ以外の場合は false になります。 BooleantheClassObject指定したオブジェクトが参照する可能性があるクラスです。 Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。このメソッドで true が返されるのは、オブジェクトが theClass パラメーターで指定されたオブジェクトのプロトタイプチェーン内にある場合です。false が返されるのは、ターゲットオブジェクトが theClass オブジェクトのプロトタイプチェーン内にない場合、および theClass パラメーターがオブジェクトでない場合です。

注意:Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。例えば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function isPrototypeOf():Boolean が実装されます。

propertyIsEnumerable 指定されたプロパティが存在し、列挙できるかどうかを示します。name パラメーターで指定されたプロパティが列挙可能な場合、この値は true になり、それ以外の場合は false になります。 BooleannameStringオブジェクトのプロパティです。 指定されたプロパティが存在し、列挙できるかどうかを示します。true の場合、このプロパティが存在し、for..in ループで列挙できます。このメソッドではターゲットオブジェクトのプロトタイプチェーンをチェックしないため、プロパティがターゲットオブジェクト上に存在している必要があります。

作成するプロパティは列挙できますが、ビルトインプロパティは通常列挙できません。

注意:Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。例えば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function propertyIsEnumerable():Boolean が実装されます。

setPropertyIsEnumerable ループ処理に対するダイナミックプロパティの可用性を設定します。nameStringオブジェクトのプロパティです。 isEnumBooleantrue false に設定した場合、ダイナミックプロパティは for..in ループに現れず、メソッド propertyIsEnumerable()false を返します。 ループ処理に対するダイナミックプロパティの可用性を設定します。このメソッドではターゲットオブジェクトのプロトタイプチェーンをチェックしないため、プロパティがターゲットオブジェクト上に存在している必要があります。 propertyIsEnumerable()toLocaleString ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。ロケールの規則に従って書式設定された、このオブジェクトのストリング表現。 String ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。

このメソッドのデフォルトの実装では、ロケール固有の書式設定は行われず、toString() と同じストリングが返されます。必要な場合は、ロケールに対応する独自の実装をサブクラスで提供する必要があります。

注意:Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。例えば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function toLocaleString():String が実装されます。

Object.toString()
toString 指定されたオブジェクトのストリング表現を返します。オブジェクトのストリング表現です。 String 指定されたオブジェクトのストリング表現を返します。

注意:Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。例えば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function toString():String が実装されます。

valueOf 指定されたオブジェクトのプリミティブな値を返します。このオブジェクトのプリミティブ値、またはオブジェクト自体です。 Object 指定されたオブジェクトのプリミティブな値を返します。このオブジェクトにプリミティブ値がない場合、オブジェクト自体が返されます。

注意:Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。例えば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function valueOf():Object が実装されます。

Object.toString()
constructor 指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。Object 指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。オブジェクトがクラスのインスタンスの場合、constructor プロパティはクラスオブジェクトへの参照を保持します。オブジェクトがコンストラクター関数で作成されている場合、constructor プロパティはコンストラクター関数への参照を保持します。コンストラクター関数と、クラスのコンストラクターメソッドとを混同しないように注意してください。コンストラクター関数は、オブジェクトの作成に使用する Function オブジェクトで、クラスの定義に class キーワードを使用することの代わりになります。

class キーワードを使用してクラスを定義する場合、クラスのプロトタイプオブジェクトには、クラスオブジェクトへの参照を保持する constructor という名前のプロパティが割り当てられます。クラスのインスタンスは、プロトタイプオブジェクトからこのプロパティを継承します。例えば、次のコードでは新しいクラス A、および myA という名前のクラスインスタンスを作成します。

dynamic class A {} trace(A.prototype.constructor); // [class A] trace(A.prototype.constructor == A); // true var myA:A = new A(); trace(myA.constructor == A); // true

上級ユーザーの場合は、オブジェクト作成用のテンプレートとして使える Function オブジェクトを定義するのに function キーワードを使用し、class キーワードを使用しない場合もあります。このような関数は、new 演算子と組み合わせてオブジェクトを作成できるため、コンストラクター関数と呼ばれています。function キーワードを使用してコンストラクター関数を作成する場合、そのプロトタイプオブジェクトには、コンストラクター関数への参照を保持する constructor という名前のプロパティが割り当てられます。次に、コンストラクター関数を使用してオブジェクトを作成すると、そのオブジェクトはコンストラクター関数のプロトタイプオブジェクトから constructor プロパティを継承します。例えば、次のコードでは新しいコンストラクター関数 f、および myF という名前のオブジェクトを作成します。

function f() {} trace(f.prototype.constructor); // function Function() {} trace(f.prototype.constructor == f); // true var myF = new f(); trace(myF.constructor == f); // true

注意:constructor プロパティは書き込み可能です。つまり、ユーザーコードで割り当てステートメントを使用して値を変更できます。constructor プロパティの値の変更はお勧めしませんが、constructor プロパティの値に依存したコードを書く場合は、その値がリセットされないようにする必要があります。プロトタイプオブジェクト(例えば、className.prototype.constructor)を使用してプロパティにアクセスするときにのみ、この値を変更できます。

constructor プロパティにアクセスしている場合、コンパイルを strict モードで実行するとコンパイル時にエラーが発生します。これは、ランタイムのエンティティであるプロトタイプオブジェクトに constructor プロパティが依存しているからです。standard モードを使用するか、クラスの記述で "dynamic" を指定した場合、そのコードはエラーにならずに動作します。

クラス関数prototype
prototype クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。Object クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。prototype プロパティは自動的に作成され、作成したクラスまたは関数オブジェクトに割り当てられます。このプロパティは、作成したクラスまたは関数に固有であるという点で静的です。例えば、クラスを作成すると、prototype プロパティの値は、そのクラスのすべてのインスタンスで共有され、クラスプロパティとしてのみアクセスできます。クラスのインスタンスは、prototype プロパティに直接アクセスできません。

クラスのプロトタイプオブジェクトは、そのクラスの特別なインスタンスであり、クラスのすべてのインスタンス間で状態を共有するためのメカニズムを提供します。実行時に、クラスインスタンスにプロパティが見つからない場合は、委譲先であるクラスのプロトタイプオブジェクトにそのプロパティがないかどうかがチェックされます。プロトタイプオブジェクトにもない場合は、Flash ランタイムがそのプロパティを見つけるまで、プロトタイプオブジェクトの委譲先でチェックを行うという処理が階層の上位に向かって連続的に継続されます。

注意:ActionScript 3.0 では、プロトタイプ継承は主要な継承メカニズムではありません。ActionScript 3.0 での主要な継承メカニズムは、クラス定義の固定プロパティを継承するクラス継承です。

URIError URIError 例外は、グローバルな URI 処理関数のいずれかが定義に合わない方法で使用された場合にスローされます。Error URIError 例外は、グローバルな URI 処理関数のいずれかが定義に合わない方法で使用された場合にスローされます。この例外は、Socket.connect() メソッドなど、有効な URI を期待する関数に対して無効な URI が指定された場合にスローされます。 flash.net.Socket.connect()URIError 新しい URIError オブジェクトを作成します。messageStringURIError オブジェクトに関連付けられたメッセージです。 新しい URIError オブジェクトを作成します。 SecurityError SecurityError 例外は、ある種のセキュリティ侵害が発生した場合にスローされます。Error SecurityError 例外は、ある種のセキュリティ侵害が発生した場合にスローされます。

セキュリティエラーの例:

  • セキュリティサンドボックスの境界をまたいで、許可されていないプロパティアクセスやメソッド呼び出しを実行した場合
  • セキュリティサンドボックスで許可されていない URL にアクセスしようとした場合
  • 許可されていないポート番号(例えば 65535 を超える番号)に対してソケット接続を確立しようとした場合
  • ユーザーのカメラやマイクにアクセスしようとしたが、そのアクセス要求がユーザーによって拒否された場合
次の例は、許可される最大値よりも大きなポート番号に接続しようとした場合に、SecurityError エラーが try...catch ステートメント内で、どのように発生し、処理されるかを示しています。 package { import flash.display.Sprite; import flash.net.Socket; public class SecurityErrorExample extends Sprite { public function SecurityErrorExample() { try { var host:String = "www.[yourDomain].com"; var socket:Socket = new Socket(); socket.connect(host, 65536); } catch(e:SecurityError) { trace(e); } } } }
SecurityError 新しい SecurityError オブジェクトを作成します。messageString 新しい SecurityError オブジェクトを作成します。
ReferenceError ReferenceError 例外は、sealed 指定された(動的でない)オブジェクトに対して未定義プロパティを参照しようとした場合にスローされます。Error ReferenceError 例外は、sealed 指定された(動的でない)オブジェクトに対して未定義プロパティを参照しようとした場合にスローされます。未定義の変数への参照があると ReferenceError 例外がスローされるので、潜在的なバグを発見し、アプリケーションコードのトラブルシューティングを行うのに役立ちます。

ただし、ダイナミッククラスの未定義のプロパティを参照することはできます。この場合、ReferenceError 例外はスローされません。詳細については、dynamic キーワードを参照してください。

次の例は、ReferenceError 例外が try..catch ステートメント内でどのように生成され、処理されるかを示しています。 package { import flash.display.Sprite; public class ReferenceErrorExample extends Sprite { public function ReferenceErrorExample() { try { this["someMember"] = true; } catch(e:ReferenceError) { trace(e); } } } }
dynamic キーワードReferenceError 新しい ReferenceError オブジェクトを作成します。messageStringReferenceError オブジェクトに関連付けられたメッセージです。 新しい ReferenceError オブジェクトを作成します。
RangeError RangeError 例外は、数値の値が許容される範囲内に収まらない場合にスローされます。Error RangeError 例外は、数値の値が許容される範囲内に収まらない場合にスローされます。配列の操作時に、存在しない配列アイテムのインデックス位置を参照すると、RangeError 例外がスローされます。Number.toExponential()Number.toPrecision()、および Number.toFixed() メソッドの使用時には、引数が許容される数値の範囲内に収まらない場合に RangeError 例外がスローされます。Number.toExponential()Number.toPrecision()、および Number.toFixed() コードを拡張して、RangeError がスローされないようにすることもできます。

この例外は、次のような場合にもスローされます。

  • 深度番号が必要な Flash ランタイム API が、無効な深度番号を指定して呼び出された場合
  • フレーム番号が必要な Flash ランタイム API が、無効なフレーム番号を指定して呼び出された場合
  • レイヤー番号が必要な Flash ランタイム API が、無効なレイヤー番号を指定して呼び出された場合

次の例は、RangeError 例外が try..catch ステートメント内でどのように生成され、処理されるかを示しています。 package { import flash.display.Sprite; public class RangeErrorExample extends Sprite { public function RangeErrorExample() { var child:Sprite = new Sprite(); try { addChildAt(child, 1); } catch(e:RangeError) { trace(e); } } } }
Number.toExponential()Number.toPrecision()Number.toFixed()RangeError 新しい RangeError オブジェクトを作成します。messageStringRangeError オブジェクトに関連付けられたメッセージを含みます。 新しい RangeError オブジェクトを作成します。
int int クラスを使用すると、32 ビットの符号付き整数を表すデータ型を操作できます。Object int クラスを使用すると、32 ビットの符号付き整数を表すデータ型を操作できます。int クラスで表される値の範囲は、-2,147,483,648(-2^31)~ 2,147,483,647(2^31-1)です。

int クラスのプロパティ(MAX_VALUE および MIN_VALUE)は静的であるため、プロパティを使用するためのオブジェクトは不要で、コンストラクターを使用する必要はありません。ただし、メソッドは静的でないため、メソッドを使用するためのオブジェクトは不要です。int オブジェクトは、int クラスコンストラクターを使用するか、int 型の変数を宣言してその変数にリテラル値を割り当てることによって作成することができます。

int データ型は、ループカウンターを使用する場合や、浮動小数を使う必要のないその他の場合に役に立ちます。このデータ型は、Java や C++ の int データ型と似ています。int 型変数のデフォルト値は 0 です

int.MAX_VALUE を超える数値を処理する場合には、Number の使用を検討してください。

次の例では、int クラスの toString() メソッドを呼び出します。このメソッドは、ストリング 1234 を返します。

var myint:int = 1234; myint.toString();

次の例では、コンストラクターを使用せずに、MIN_VALUE プロパティの値を宣言された変数に割り当てます。

 var smallest:int = int.MIN_VALUE;
 
次の例は、IntExample クラスを使用して、int データ型をどのように処理し、有効性をチェックするかを示しています。
  1. 2 つの int 変数、ab をコンストラクターで宣言します。
  2. addIntegers() メソッドで 2 つの int を追加します。
  3. 3 番目の int 変数 cparseInteger() の結果を割り当て、渡されたストリングの有効性をチェックして、int データ型で受け取ることのできる範囲の整数値であることを確認します。有効な場合はストリングの整数値に相当する int を返します。
  4. int 変数 ac を、addIntegers() を使って同時に追加します。
package { import flash.display.Sprite; public class IntExample extends Sprite { public function IntExample() { var a:int = 512; var b:int = -128; trace(addIntegers(a, b)); // 384 var c:int = parseInteger("32"); trace(addIntegers(a, c)); // 544 } public function addIntegers(a:int, b:int):int { return a + b; } public function parseInteger(str:String):int { var num:Number = parseInt(str); if(!isNaN(num) && num <= int.MAX_VALUE && num >= int.MIN_VALUE) { return int(num); } return 0; } } }
uintNumberint コンストラクター。新しい int オブジェクトを作成します。numObject作成する int オブジェクトの数値、または数値に変換する値です。value が指定されなかった場合のデフォルト値は 0 です。 コンストラクター。新しい int オブジェクトを作成します。int.toString()int.valueOf() を使用するには、int コンストラクターを使用する必要があります。int オブジェクトのプロパティを使用する場合は、コンストラクターを使用しません。new int コンストラクターは、主にプレースホルダーとして使用します。int オブジェクトは、パラメーターをプリミティブ値に変換する int() 関数とは異なります。 次のコードは、新しい int オブジェクトを作成します。
	 var n1:int = new int(3.4);
	 var n2:int = new int(-10);
	 
int.toString()int.valueOf()
toExponential 数値のストリング表現を指数表現で返します。fractionDigits 引数が 0 ~ 20 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringfractionDigitsuint必要な小数の桁数を表す 0 ~ 20 の整数です。 数値のストリング表現を指数表現で返します。ストリングには、fractionDigits パラメーターでの指定に従って小数点の前に 1 桁、小数点以下に最大 20 桁が含まれます。 次の例は、toExponential(2) を使用して、ストリングを指数表現で返す方法を示しています。 var num:Number = 315003; trace(num.toExponential(2)); // 3.15e+5 toFixed 数値のストリング表現を固定小数点表現で返します。fractionDigits 引数が 0 ~ 20 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringfractionDigitsuint必要な小数の桁数を表す 0 ~ 20 の整数です。 数値のストリング表現を固定小数点表現で返します。固定小数点表現とは、fractionDigits パラメーターの指定に従って、小数点以下の特定の桁数をストリングに含めたものです。fractionDigits パラメーターの有効範囲は 0 ~ 20 です。 この範囲外の値を指定すると例外がスローされます。 次の例は、toFixed(3) を使用して、小数点以下 3 桁に四捨五入したストリングを返す方法を示しています。 var num:Number = 7.31343; trace(num.toFixed(3)); // 7.313 次の例は、toFixed(2) を使用して、末尾にゼロを追加したストリングを返す方法を示しています。 var num:Number = 4; trace(num.toFixed(2)); // 4.00 toPrecision 数値のストリング表現を指数表現または固定小数点表現で返します。precision 引数が 1 ~ 21 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringprecisionuint結果のストリングに必要な桁数を表す 1 ~ 21 の整数です。 数値のストリング表現を指数表現または固定小数点表現で返します。ストリングには、precision パラメーターで指定された桁数が含まれます。 次の例は、toPrecision(3) を使用して、ストリングを 3 桁のみで返す方法を示しています。指数表現は必要ないので、ストリングは固定小数点表現で表されます。 var num:Number = 31.570; trace(num.toPrecision(3)); // 31.6 次の例は、toPrecision(3) を使用して、ストリングを 3 桁のみで返す方法を示しています。結果の数値には固定小数点表現に必要な桁が含まれないため、ストリングは指数表現で表されます。 var num:Number = 4000; trace(num.toPrecision(3)); // 4.00e+3 toString int オブジェクトのストリング表現を返します。ストリングです。 Stringradixuint数値からストリングへの変換に使用する基数(2 ~ 36)を指定します。radix パラメーターを指定しない場合、デフォルト値は 10 です。 int オブジェクトのストリング表現を返します。 次の例では、radix パラメーターに 2 および 8 を使用し、数値 9 に対応する表現を含むストリングを返します。
	 var myint:int = new int(9);
	 trace(myint.toString(2)); // 1001
	 trace(myint.toString(8)); // 11
	 

次の例では、結果が 16 進数値になります。

	 var r:int = new int(250);
	 var g:int = new int(128);
	 var b:int = new int(114);
	 var rgb:String = "0x"+ r.toString(16)+g.toString(16)+b.toString(16);
	 trace(rgb); // 0xfa8072
	 
valueOf 指定された int オブジェクトのプリミティブな値を返します。int 値です。 int 指定された int オブジェクトのプリミティブな値を返します。 次の例では、numSocks オブジェクトのプリミティブな値が結果として返されます。
	 var numSocks:int = new int(2);
	 trace(numSocks.valueOf()); // 2
	 
MAX_VALUE 表現可能な 32 ビット符号付き整数の最大値、2,147,483,647 です。2147483647int 表現可能な 32 ビット符号付き整数の最大値、2,147,483,647 です。 次の ActionScript は、表現可能な最大および最小の int オブジェクトを出力パネルにログファイルに表示し書き込みます。
	trace("int.MIN_VALUE = "+int.MIN_VALUE);
	trace("int.MAX_VALUE = "+int.MAX_VALUE);
	

このコードは、次の値を記録表示します。

	int.MIN_VALUE = -2147483648
	int.MAX_VALUE = 2147483647
	
MIN_VALUE 表現可能な 32 ビット符号付き整数の最小値、-2,147,483,648 です。-2147483648int 表現可能な 32 ビット符号付き整数の最小値、-2,147,483,648 です。 次の ActionScript は、表現可能な最大および最小の int オブジェクトを出力パネルにログファイルに表示し書き込みます。
     trace("int.MIN_VALUE = "+int.MIN_VALUE);
     trace("int.MAX_VALUE = "+int.MAX_VALUE);
     

このコードは、次の値を記録表示します。

	int.MIN_VALUE = -2147483648
	int.MAX_VALUE = 2147483647
     
Number IEEE-754 倍精度浮動小数点数を表すデータ型です。Number クラスは、Number データ型の単純なラッパーオブジェクトです。 Object IEEE-754 倍精度浮動小数点数を表すデータ型です。Number クラスに関連するメソッドとプロパティを使用してプリミティブな数値を処理することができます。このクラスは、JavaScript の Number クラスと同じです。

Number クラスのプロパティは静的であるため、プロパティを使用するためのオブジェクトは不要で、コンストラクターを使用する必要はありません。

Number データ型は、倍精度 IEEE-754 規格に準拠します。

Number データ型は、浮動小数値を使用する必要がある場合に便利です。Flash ランタイムは Number よりも int および uint データ型を効率的に処理しますが、必要な値の範囲が int および uint の各データ型の有効範囲を超える場合は Number が便利です。Number クラスは、int および uint の各データ型の有効範囲を大きく超える整数値を表す場合に使用できます。整数値を表すのに int および uint では 32 ビットを使用できるのに対し、Number データ型は最大 53 ビットを使用することができます。Number 型として型指定されている変数のデフォルト値は NaN(非数)です。

次の例は、小数点以下 6 桁の数値を四捨五入によって小数点以下 2 桁の数値に切り詰める方法を示しています。 package { import flash.display.Sprite; public class NumberExample extends Sprite { public function NumberExample() { var num:Number = new Number(10.456345); var str:String = num.toFixed(2); trace(num); // 10.456345 trace(str); // 10.46 } } }
intuintNumber 指定された値を持つ Number オブジェクトを作成します。numObject作成する Number インスタンスの数値、または Number に変換する値です。num が指定されなかった場合のデフォルト値は 0 です。num パラメーターを指定せずにコンストラクターを使用することは、値を割り当てずに Number 型の変数を宣言すること(var myNumber:Number など)と同じではありません。この場合は、デフォルトが NaN になります。値の割り当てられていない数値は未定義で、new Number(undefined) と同等です。 指定された値を持つ Number を作成します。 指定された値を持つ Number オブジェクトを作成します。このコンストラクターの結果は、異なる型のオブジェクトをプリミティブな数値に変換する Number() パブリックネイティブ関数と同じものになります。 Number.toString()Number.valueOf()toExponential 数値のストリング表現を指数表現で返します。fractionDigits 引数が 0 ~ 20 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringfractionDigitsuint必要な小数の桁数を表す 0 ~ 20 の整数です。 数値のストリング表現を指数表現で返します。ストリングには、fractionDigits パラメーターでの指定に従って小数点の前に 1 桁、小数点以下に最大 20 桁が含まれます。 次の例は、toExponential(2) を使用して、ストリングを指数表現で返す方法を示しています。 var num:Number = 315003; trace(num.toExponential(2)); // 3.15e+5 toFixed 数値のストリング表現を固定小数点表現で返します。fractionDigits 引数が 0 ~ 20 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringfractionDigitsuint必要な小数の桁数を表す 0 ~ 20 の整数です。 数値のストリング表現を固定小数点表現で返します。固定小数点表現とは、fractionDigits パラメーターの指定に従って、小数点以下の特定の桁数をストリングに含めたものです。fractionDigits パラメーターの有効範囲は 0 ~ 20 です。 この範囲外の値を指定すると例外がスローされます。 次の例は、toFixed(3) を使用して、小数点以下 3 桁に四捨五入したストリングを返す方法を示しています。 var num:Number = 7.31343; trace(num.toFixed(3)); // 7.313 次の例は、toFixed(2) を使用して、末尾にゼロを追加したストリングを返す方法を示しています。 var num:Number = 4; trace(num.toFixed(2)); // 4.00 toPrecision 数値のストリング表現を指数表現または固定小数点表現で返します。precision 引数が 1 ~ 21 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringprecisionuint結果のストリングに必要な桁数を表す 1 ~ 21 の整数です。 数値のストリング表現を指数表現または固定小数点表現で返します。ストリングには、precision パラメーターで指定された桁数が含まれます。 次の例は、toPrecision(3) を使用して、ストリングを 3 桁のみで返す方法を示しています。指数表現は必要ないので、ストリングは固定小数点表現で表されます。 var num:Number = 31.570; trace(num.toPrecision(3)); // 31.6 次の例は、toPrecision(3) を使用して、ストリングを 3 桁のみで返す方法を示しています。結果の数値には固定小数点表現に必要な桁が含まれないため、ストリングは指数表現で表されます。 var num:Number = 4000; trace(num.toPrecision(3)); // 4.00e+3 toString 指定された Number オブジェクト(myNumber)のストリング表現を返します。Number オブジェクトの数値表現のストリングです。 StringradixNumber10数値からストリングへの変換に使用する基数(2 ~ 36)を指定します。radix パラメーターを指定しない場合、デフォルト値は 10 です。 基数として指定された基数パラメーターで、この Number のストリング表現を返します。 指定された Number オブジェクト( myNumber )のストリング表現を返します。Number オブジェクトの値が先行ゼロを持たない小数(.4 など)の場合、Number.toString() は先行ゼロを追加(0.4)します。 valueOf 指定された Number オブジェクトのプリミティブな値のタイプを返します。Number オブジェクトのプリミティブな型の値です。 Number指定された Number オブジェクトのプリミティブな値のタイプを返します。 指定された Number オブジェクトのプリミティブな値のタイプを返します。 MAX_VALUE 表現可能な最大の数値(倍精度 IEEE-754)です。Number表現可能な最大の数値(倍精度 IEEE-754)です。 表現可能な最大の数値(倍精度 IEEE-754)です。この数値は、約 1.79e+308 です。 MIN_VALUE 0 以外の正の値で、表現可能な最小の数値(倍精度 IEEE-754)です。Number表現可能な最小の数値(倍精度 IEEE-754)です。 0 以外の正の値で、表現可能な最小の数値(倍精度 IEEE-754)です。この数値は約 5e-324 です。全体的に表現可能な最小の数値は、実際には -Number.MAX_VALUE です。 NEGATIVE_INFINITY 負の無限大を表す IEEE-754 値を指定します。Number負の無限大を表す IEEE-754 値を指定します。 負の無限大を表す IEEE-754 値を指定します。このプロパティの値は、-Infinity 定数の値と同じです。

負の無限大は、数学演算または関数が表現できる下限を超える負の値を返すときに返される特別な数値です。

NaN 非数(NaN)を表す IEEE-754 の値です。Number非数(NaN)を表す IEEE-754 の値です。 非数(NaN)を表す IEEE-754 の値です。 isNaN() グローバル関数POSITIVE_INFINITY 正の無限大を表す IEEE-754 値を指定します。Number正の無限大を表す IEEE-754 値を指定します。 正の無限大を表す IEEE-754 値を指定します。このプロパティの値は、Infinity 定数の値と同じです。

正の無限大は、数学演算または関数が表現できる上限を超える正の値を返すときに返される特別な数値です。

DefinitionError DefinitionError クラスは、既に定義されている識別子をユーザーコードで定義しようとしたときに発生するエラーを表します。DefinitionError は、クラス、インターフェイス、または関数をコードで再定義しようとしたときにスローされます。 Error DefinitionError クラスは、既に定義されている識別子をユーザーコードで定義しようとしたときに発生するエラーを表します。このエラーは通常、クラス、インターフェイス、または関数を再定義するときに発生します。 DefinitionError 新しい DefinitionError オブジェクトを作成します。messageString 新しい DefinitionError オブジェクトを作成します。 Function 関数は、ActionScript で呼び出すことのできるコードの基本単位です。Function クラスは、ビルトイン関数やユーザー定義関数を表す場合に使用されます。 Object 関数は、ActionScript で呼び出すことのできるコードの基本単位です。ActionScript のユーザー定義関数とビルトイン関数は、どちらも Function クラスのインスタンスである Function オブジェクトで表されます。

クラスのメソッドは、Function オブジェクトとは少し異なります。メソッドは通常の関数オブジェクトとは異なり、関連のクラスオブジェクトと緊密にリンクされています。このため、メソッドまたはプロパティは、同一クラスのすべてのインスタンスで共有される定義を持ちます。メソッドをインスタンスから抽出して、"バインド" メソッドとして扱うことができます。元のインスタンスとのリンクは維持されます。バインドメソッドの場合、this キーワードで、メソッドの実装元オブジェクトを指します。関数については、this で、関数が呼び出されたときの関連オブジェクトを指します。

次の例では、FunctionExampleSimpleCollectionEventBroadcasterEventListener クラスを使用して、ActionScript での関数の様々な使用法を示しています。これを行うには、以下の手順を実行します。
  1. FunctionExample のコンストラクターでは、simpleColl という名前のローカル変数を作成し、この変数に 1 から 8 までの整数の配列を作成します。
  2. simpleColl オブジェクトを、trace() を使用して出力します。
  3. EventListener オブジェクト listenersimpleColl に追加します。
  4. insert()remove() 関数が呼び出されると、リスナーはそれぞれのイベントに応答します。
  5. greaterThanFourColl という名前の 2 番目の SimpleCollection オブジェクトを作成します。
  6. greaterThanFourColl オブジェクトには、simpleColl.select() の結果(引数4 と匿名関数を使用)が割り当てられます。SimpleCollection オブジェクトの select メソッドは、匿名関数パラメーターをブロックとして使用する内部イテレータです。
package { import flash.display.Sprite; public class FunctionExample extends Sprite { public function FunctionExample() { var simpleColl:SimpleCollection; simpleColl = new SimpleCollection(0, 1, 2, 3, 4, 5, 6, 7, 8); trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 8 var listener:EventListener = new EventListener(); simpleColl.addListener(listener); simpleColl.insert(9); // itemInsertedHandler: 9 simpleColl.remove(8); // itemRemovedHandler: 8 trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 9 var greaterThanFourColl:SimpleCollection; greaterThanFourColl = simpleColl.select(4, function(item:int, value:int){ return item > value }); trace(greaterThanFourColl); // 5, 6, 7, 9 } } } import flash.display.Sprite; class EventBroadcaster { private var listeners:Array; public function EventBroadcaster() { listeners = new Array(); } public function addListener(obj:Object):void { removeListener(obj); listeners.push(obj); } public function removeListener(obj:Object):void { for(var i:uint = 0; i < listeners.length; i++) { if(listeners[i] == obj) { listeners.splice(i, 1); } } } public function broadcastEvent(evnt:String, ...args):void { for(var i:uint = 0; i < listeners.length; i++) { listeners[i][evnt].apply(listeners[i], args); } } } class SimpleCollection extends EventBroadcaster { private var arr:Array; public function SimpleCollection(... args) { arr = (args.length == 1 && !isNaN(args[0])) ? new Array(args[0]) : args; } public function insert(obj:Object):void { remove(obj); arr.push(obj); broadcastEvent("itemInsertedHandler", obj); } public function remove(obj:Object):void { for(var i:uint = 0; i < arr.length; i++) { if(arr[i] == obj) { var obj:Object = arr.splice(i, 1)[0]; broadcastEvent("itemRemovedHandler", obj); } } } public function select(val:int, fn:Function):SimpleCollection { var col:SimpleCollection = new SimpleCollection(); for(var i:uint = 0; i < arr.length; i++) { if(fn.call(this, arr[i], val)) { col.insert(arr[i]); } } return col; } public function toString():String { var str:String = new String(); for(var i:uint = 0; i < arr.length - 1; i++) { str += arr[i] + ", "; } str += arr[arr.length - 1]; return str; } } class EventListener { public function EventListener() { } public function itemInsertedHandler(obj:Object):void { trace("itemInsertedHandler: " + obj); } public function itemRemovedHandler(obj:Object):void { trace("itemRemovedHandler: " + obj); } }
apply ActionScript が呼び出す関数内で使用される thisObject の値を指定します。呼び出された関数が指定する値です。 thisArgunknown関数の適用先のオブジェクトです。 argArrayunknownエレメントをパラメーターとして関数に渡す配列です。 Function を呼び出すオブジェクトインスタンスを指定します。 ActionScript が呼び出す関数内で使用される thisObject の値を指定します。このメソッドは、呼び出される関数に渡されるパラメーターも指定します。apply() は Function クラスのメソッドなので、ActionScript 内のすべての Function オブジェクトのメソッドとしても使用できます。

Array オブジェクトとしてパラメーターを指定します。カンマ区切りリストとしてパラメーターを指定する Function.call() とは異なります。これは、スクリプトが実際に実行されるまで、渡されるパラメーター数が不明である場合にも便利です。

呼び出された関数が戻り値として指定する値を返します。

Function.call()
call Function オブジェクトが表す関数を呼び出します。thisArgunknown関数の本体内で thisObject の値を示すオブジェクトです。 args関数に渡されるパラメーターです。 指定できるパラメーターの数は 0 個以上です。 この Function を呼び出します。 Function オブジェクトが表す関数を呼び出します。ActionScript のすべての関数は Function オブジェクトによって表されるので、すべての関数はこのメソッドをサポートしています。

ほとんどの場合、このメソッドの代わりに関数呼び出し演算子(())を使用できます。関数呼び出し演算子を使うと、コードが簡潔になり読みやすくなります。このメソッドは、主に関数呼び出しの thisObject パラメーターを明示的に制御する必要がある場合に役立ちます。通常、関数をオブジェクトのメソッドとして、関数の本体内で呼び出すと、次のように thisObjectmyObject に設定されます。

myObject.myMethod(1, 2, 3);

thisObject が他の異なる場所をポイントするように設定する場合もあります。例えば、オブジェクトのメソッドとして呼び出す関数が、実際には、そのオブジェクトのメソッドとして格納されていない場合などです。

myObject.myMethod.call(myOtherObject, 1, 2, 3);

関数をオブジェクトのメソッドとしてではなく通常の関数として呼び出すには、値 null を、thisObject パラメーターに渡します。例えば、次の 2 つの関数呼び出しは同じです。

Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)

呼び出された関数が戻り値として指定する値を返します。

Function.apply()
SyntaxError SyntaxError 例外は、次のいずれかの理由で解析エラーが発生した場合に、スローされます。Error SyntaxError 例外は、次のいずれかの理由で解析エラーが発生した場合に、スローされます。
  • RegExp クラスで無効な正規表現を解析した場合。
  • XML クラスで無効な XML コンテンツを解析した場合。
RegExp クラスXML クラスSyntaxError 新しい SyntaxError オブジェクトを作成します。messageStringSyntaxError オブジェクトに関連付けられたメッセージです。 新しい SyntaxError オブジェクトを作成します。
XMLList XMLList クラスには、XML エレメントを操作するためのメソッドが含まれています。Object XMLList クラスには、XML エレメントを操作するためのメソッドが含まれています。XMLList オブジェクトは複数の XML オブジェクトまたはエレメント(複数のノードまたは属性を含む)を表すこともできるので、コレクション内のエレメント全体に対してメソッドを呼び出すことも、コレクション内のエレメントごとにメソッドを呼び出すことも可能です。

XMLList オブジェクトに XML エレメントが 1 つしかない場合は、XMLList オブジェクトに対して XML クラスのメソッドを直接使用できます。次の例で、example.two は長さ 1 の XMLList オブジェクトです。そのため、このオブジェクトにはどのような XML メソッドをも呼び出すことができます。

var example2 = <example><two>2</two></example>;

複数の XML オブジェクトを含んだ XMLList オブジェクトと共に XML クラスのメソッドを使用しようとすると、例外がスローされます。例外がスローされないようにするには、for each..in ステートメントなどを使用して XMLList コレクションに対して反復処理を行い、コレクション内の各 XML オブジェクトにメソッドを適用します。

次の例は books という名前の XML プロパティを作成し、book publisher タグや name タグを持ついくつかのアイテムを books というノードに追加しています。次に showBooksByPublisher() メソッドを呼び出します。このメソッドは XMLList を受け取り、発行者 "Addison-Wesley" に一致する各アイテムを返します。 package { import flash.display.Sprite; public class XMLListExample extends Sprite { private var books:XML; public function XMLListExample() { books = <books> <book publisher="Addison-Wesley" name="Design Patterns" /> <book publisher="Addison-Wesley" name="The Pragmatic Programmer" /> <book publisher="Addison-Wesley" name="Test Driven Development" /> <book publisher="Addison-Wesley" name="Refactoring to Patterns" /> <book publisher="O'Reilly Media" name="The Cathedral & the Bazaar" /> <book publisher="O'Reilly Media" name="Unit Test Frameworks" /> </books>; showBooksByPublisher("Addison-Wesley"); } private function showBooksByPublisher(name:String):void { var results:XMLList = books.book.(@publisher == name); showList(results); } private function showList(list:XMLList):void { var item:XML; for each(item in list) { trace("item: " + item.toXMLString()); } } } }
XMLfor each..inNamespaceQNameXMLList 新しい XMLList オブジェクトを作成します。valueObjectトップレベル関数 XMLList() によって XMLList オブジェクトに変換可能なオブジェクトです。 新しい XMLList オブジェクトを作成します。 top-level XMLList() 関数attribute 各 XML オブジェクトの attribute() メソッドを呼び出し、その結果の XMLList オブジェクトを返します。XML オブジェクトが一致する XMLList オブジェクト、または空の XMLList オブジェクトです。 XMLListattributeNameXMLList オブジェクト内に含める属性の名前です。 各 XML オブジェクトの attribute() メソッドを呼び出し、その結果の XMLList オブジェクトを返します。この結果は、指定された attributeName パラメーターに一致します。一致する XML オブジェクトがなかった場合、attribute() メソッドは空の XMLList オブジェクトを返します。 XML.attribute()XML.attributes()attributes 各 XML オブジェクトの attributes() メソッドを呼び出し、各 XML オブジェクトの属性の XMLList オブジェクトを返します。各 XML オブジェクトの属性の XMLList オブジェクトです。 XMLList 各 XML オブジェクトの attributes() メソッドを呼び出し、各 XML オブジェクトの属性の XMLList オブジェクトを返します。 XML.attribute()XML.attributes()child 各 XML オブジェクトの child() メソッドを呼び出し、その結果を順に含む XMLList オブジェクトを返します。入力パラメーターに一致する子ノードの XMLList オブジェクトです。 XMLListpropertyNameObjectXML の子のエレメント名または整数です。 各 XML オブジェクトの child() メソッドを呼び出し、その結果を順に含む XMLList オブジェクトを返します。 XML.child()children 各 XML オブジェクトの children() メソッドを呼び出し、その結果を含む XMLList オブジェクトを返します。XML オブジェクト内の子(複数)の XMLList オブジェクトです。 XMLList 各 XML オブジェクトの children() メソッドを呼び出し、その結果を含む XMLList オブジェクトを返します。 XML.children()comments 各 XML オブジェクトの comments() メソッドを呼び出し、コメントの XMLList を返します。XML オブジェクト内のコメントの XMLList です。 XMLList 各 XML オブジェクトの comments() メソッドを呼び出し、コメントの XMLList を返します。 XML.comments()contains 指定された value パラメーターに等しい XML オブジェクトが XMLList オブジェクトに含まれるかどうかを確認します。value パラメーターで宣言された XML オブジェクトが XMLList オブジェクトに含まれる場合は true、それ以外の場合は false を返します。 BooleanvalueXML現在の XMLList オブジェクトと比較する XML オブジェクトです。 指定された value パラメーターに等しい XML オブジェクトが XMLList オブジェクトに含まれるかどうかを確認します。 copy 指定された XMLList オブジェクトのコピーを返します。XMLList オブジェクトのコピーです。 XMLList 指定された XMLList オブジェクトのコピーを返します。コピーとはノードのツリー全体の複製です。コピーされた XML オブジェクトに親はないので、null が返されます(parent() メソッドを呼び出した場合)。 descendants 指定された name パラメーターを持つ XML オブジェクトのすべての子孫(子、孫、ひ孫など)を返します。元のリスト内の一致する XML オブジェクトの子孫(子、孫など)の XMLList オブジェクトです。子孫がない場合は、空の XMLList オブジェクトを返します。 XMLListnameObject*照合するエレメントの名前です。 指定された name パラメーターを持つ XML オブジェクトのすべての子孫(子、孫、ひ孫など)を返します。name パラメーターには、QName オブジェクト、String データ型、または他の任意のデータ型(後で String データ型に変換されます)を指定できます。

すべての子孫を返すには、アスタリスク(~~)パラメーターを使用します。パラメーターを指定しない場合はストリング "~~" が渡され、XML オブジェクトのすべての子孫が返されます。

XML.descendants()
elements 各 XML オブジェクトの elements() メソッドを呼び出します。一致する XML オブジェクトの子エレメントの XMLList オブジェクトです。 XMLListnameObject*照合するエレメントの名前です。 各 XML オブジェクトの elements() メソッドを呼び出します。name パラメーターが descendants() メソッドに渡されます。パラメーターが渡されなかった場合、ストリング "~~" が descendants() メソッドに渡されます。 XML.elements()hasComplexContent XMLList オブジェクトに複合内容が含まれるかどうかを確認します。XMLList オブジェクトに複合内容が含まれる場合は true、それ以外の場合は false を返します。 Boolean XMLList オブジェクトに複合内容が含まれるかどうかを確認します。XMLList オブジェクトが空でなく、次のいずれかの条件が true の場合に、XMLList オブジェクトは複合内容を持つと見なされます。
  • XMLList オブジェクトに、複合内容を持つ 1 つの XML アイテムが含まれている。
  • XMLList オブジェクトに複数のエレメントが含まれている。
hasSimpleContent()XML.hasComplexContent()XML.hasSimpleContent()
hasOwnProperty p により指定されたプロパティをチェックします。パラメーターが存在する場合は true、それ以外の場合は false を返します。 BooleanpString照合するプロパティです。 p により指定されたプロパティをチェックします。 hasSimpleContent XMLList オブジェクトに単純内容が含まれるかどうかを確認します。XMLList に単純内容が含まれる場合は true、それ以外の場合は false を返します。 Boolean XMLList オブジェクトに単純内容が含まれるかどうかを確認します。次のいずれかの条件が true の場合に、XMLList オブジェクトは単純内容を持つと見なされます。
  • XMLList オブジェクトが空である。
  • XMLList オブジェクトに、単純内容を持つ 1 つの XML アイテムが含まれている。
  • XMLList オブジェクトにエレメントが含まれていない。
hasComplexContent()XML.hasComplexContent()XML.hasSimpleContent()
length XMLList オブジェクト内のプロパティ数を返します。XMLList オブジェクト内のプロパティ数です。 int XMLList オブジェクト内のプロパティ数を返します。 normalize 隣接するテキストノードを結合し、XMLList 内のすべてのテキストノード、XMLList に含まれるすべての XML オブジェクト、および XMLList 内のすべての XML オブジェクトの子孫について、それぞれ空のテキストノードを削除します。正規化した XMLList オブジェクトです。 XMLList 隣接するテキストノードを結合し、XMLList 内のすべてのテキストノード、XMLList に含まれるすべての XML オブジェクト、および XMLList 内のすべての XML オブジェクトの子孫について、それぞれ空のテキストノードを削除します。 parent XMLList オブジェクト内のすべてのアイテムが同じ親を持つ場合、XMLList オブジェクトの親を返します。親 XML オブジェクトを返します。 Object XMLList オブジェクト内のすべてのアイテムが同じ親を持つ場合、XMLList オブジェクトの親を返します。XMLList オブジェクトが親を持たないか、異なる親を持つ場合、メソッドは undefined を返します。 processingInstructions name パラメーターを指定した場合は、その名前を持つ処理命令を含む XMLList オブジェクトのすべての子を一覧表示します。各 XML オブジェクトの処理命令を含む XMLList オブジェクトです。 XMLListnameString*照合する処理命令の名前です。 name パラメーターを指定した場合、その名前を持つ処理命令を含む XMLList オブジェクトのすべての子を一覧表示します。パラメーターを指定しなかった場合、メソッドは任意の処理命令を含む XMLList オブジェクトのすべての子を一覧表示します。 XML.processingInstructions()propertyIsEnumerable XML オブジェクトに適用される for..in ステートメント内で反復処理されるプロパティセット内に、プロパティ p があるかどうかを確認します。for..in ステートメント内でプロパティを反復処理できる場合は true、それ以外の場合は false を返します。 BooleanpString確認するプロパティのインデックスです。 プロパティ p が、XMLList オブジェクトに適用される for..in ステートメント内で反復処理されるプロパティセット内にあるかどうかを確認します。true が返るのは、toNumber(p) が 0 より大きいか等しく、かつ XMLList オブジェクトの長さより小さい場合のみです。 text 各 XML オブジェクトの text() メソッドを呼び出し、その結果を含む XMLList オブジェクトを返します。XML テキストノードを表す XMLList オブジェクトのすべての XML プロパティの XMLList オブジェクトです。 XMLList 各 XML オブジェクトの text() メソッドを呼び出し、その結果を含む XMLList オブジェクトを返します。 XML.text()toString XMLList オブジェクト内のすべての XML オブジェクトのストリング表現を返します。XML オブジェクトのストリング表現です。 String XMLList オブジェクト内のすべての XML オブジェクトのストリング表現を返します。この変換の規則は、XML オブジェクトに単純内容が含まれるか、複合内容が含まれるかによって決まります。
  • XML オブジェクトに単純内容が含まれる場合、toString() は XML オブジェクトのストリング内容を返し、開始タグ、属性、名前空間宣言、および終了タグを削除します。
  • XML オブジェクトに複合内容が含まれる場合、toString() は、開始タグ、属性、名前空間宣言および終了タグを含む XML オブジェクト全体を表す、XML エンコードされたストリングを返します。

XML オブジェクト全体を毎回返すには、toXMLString() メソッドを使用します。

次の例は、XML オブジェクトに単純内容が含まれる場合に toString() メソッドによって何が返されるかを示しています。 var test:XML = <type name="Joe">example</type>; trace(test.toString()); //example 次の例は、XML オブジェクトに複合内容が含まれる場合に toString() メソッドによって何が返されるかを示しています。 var test:XML = <type name="Joe"> <base name="Bob"></base> example </type>; trace(test.toString()); // <type name="Joe"> // <base name="Bob"/> // example // </type>
hasComplexContent()hasSimpleContent()toXMLString()
toXMLString XMLList オブジェクト内のすべての XML オブジェクトのストリング表現を返します。XML オブジェクトのストリング表現です。 String XMLList オブジェクト内のすべての XML オブジェクトのストリング表現を返します。toString() メソッドとは異なり、toXMLString() メソッドは、XML オブジェクトに単純内容が含まれるか、複合内容が含まれるかに関係なく、常に XML オブジェクトの開始タグ、属性、および終了タグを返します。toString() メソッドは、単純内容を持つ XML オブジェクトの開始タグ、属性、および終了タグを削除します。 toString()valueOf XMLList オブジェクトを返します。現在の XMLList オブジェクトを返します。 XMLList XMLList オブジェクトを返します。
Boolean Boolean オブジェクトは、論理演算において true または false のいずれか 1 つの値を取るデータ型です。Object Boolean オブジェクトは、論理演算において true または false のいずれか 1 つの値を取るデータ型です。Boolean クラスを使用して、Boolean オブジェクトのプリミティブなデータ型またはストリング表現を調べることができます。

Boolean オブジェクトを作成するには、コンストラクターを使用するか、グローバル関数を使用するか、またはリテラル値を割り当てます。どの手法を使っても違いはありません。ActionScript 3.0 では、3 つの手法すべてが同等です(これは、Boolean オブジェクトが Boolean プリミティブ型と区別される JavaScript と異なる点です)。

次の各行のコードは同じです。

var flag:Boolean = true; var flag:Boolean = new Boolean(true); var flag:Boolean = Boolean(true);
次の例では、Boolean オブジェクトを切り替え、それぞれに対応する値を表示します。 package { import flash.display.Sprite; public class BooleanExample extends Sprite { private var flag:Boolean; public function BooleanExample() { trace(flag); // false toggle(); trace(flag); // true toggle(); trace(flag); // false } private function toggle():void{ flag = !flag; } } }
Boolean 指定された値を持つ Boolean オブジェクトを作成します。expressionObjectfalse任意の式です。 指定された値を持つ Boolean オブジェクトを作成します。expression パラメーターを省略すると、Boolean オブジェクトは値 false で初期化されます。expression パラメーターの値を指定すると、メソッドによって評価され、評価結果はグローバル Boolean() 関数の規則に従ってブール値として返されます。 次のコードは、値 false に初期化された myBoolean という新しい Boolean オブジェクトを作成します。 var myBoolean:Boolean = new Boolean(); Boolean()グローバル関数toString Boolean オブジェクトのストリング表現("true" または "false")を返します。"true" または "false" のストリングです。 String Boolean オブジェクトのストリング表現("true" または "false")を返します。システム言語に関係なく、出力はローカライズされず、"true" または "false" のいずれかとなります。 次の例では、Boolean 型の変数を作成し、toString() メソッドを使用して、値をストリングの配列で使用するストリングに変換します。 var myStringArray:Array = new Array("yes", "could be"); var myBool:Boolean = 0; myBool.toString(); myStringArray.push(myBool); trace(myStringArray); // yes,could be,false valueOf 指定された Boolean オブジェクトの値が true の場合は true、それ以外の場合は false を返します。ブール値です。 Boolean 指定された Boolean オブジェクトの値が true の場合は true、それ以外の場合は false を返します。 次の例では、このメソッドがどのように動作するかを示し、また、新しい Boolean オブジェクトの値が false であることを示しています。 var myBool:Boolean = new Boolean(); trace(myBool.valueOf());   // false myBool = (6==3+3); trace(myBool.valueOf());   // true
Error Error クラスには、スクリプトで発生したエラーに関する情報が含まれています。スクリプトでエラーが発生した場合に Error をスローします。 Object Error クラスには、スクリプトで発生したエラーに関する情報が含まれています。ActionScript 3.0 アプリケーションの開発では、コンパイルしたコードを Flash ランタイムのデバッグ版で実行すると、Error 型またはサブクラスの例外がダイアログボックスに表示されるので、コードのトラブルシューティングに役立ちます。Error オブジェクトを作成するには、Error コンストラクター関数を使用します。一般には、try コードブロック内から新しい Error オブジェクトをスローします。そして、catch コードブロックまたは finally コードブロックでこれをキャッチします。

Error クラスのサブクラスを作成し、そのサブクラスのインスタンスをスローすることもできます。

次の例は、ErrorExample クラスを使用して、カスタムエラーを作成する方法を示しています。これを行うには、以下の手順を実行します。
  1. Array 型のローカル変数 nullArray を宣言しますが、新しい Array オブジェクトは作成されません。
  2. コンストラクターはエラー処理コードセグメント内で push() メソッドを使用して、初期化されていない配列に値をロードしようとします。このエラー処理セグメントは、CustomError クラス(Error の拡張)を使用してカスタムエラーをキャッチします。
  3. CustomError がスローされると、コンストラクターはこれをキャッチし、trace() ステートメントを使用してエラーメッセージを出力します。
package { import flash.display.Sprite; public class ErrorExample extends Sprite { private var nullArray:Array; public function ErrorExample() { try { nullArray.push("item"); } catch(e:Error) { throw new CustomError("nullArray is null"); } } } } class CustomError extends Error { public function CustomError(message:String) { super(message); } }
Error 新しい Error オブジェクトを作成します。messageStringError オブジェクトに関連付けられたストリング。このパラメーターはオプションです。 idint0特定のエラーメッセージに関連付ける参照番号です。 指定されたエラーメッセージを持つ新しい Error インスタンスを作成します。 新しい Error オブジェクトを作成します。message を指定した場合は、その値がオブジェクトの Error.message プロパティに割り当てられます。 次の例では、新しい Error オブジェクト err を作成し、次に Error() コンストラクターを使用して、ストリング "New Error Message"err に割り当てます。 var err:Error = new Error(); trace(err.toString()); // Error err = new Error("New Error Message"); trace(err.toString()); // Error: New Error Message statements.html#throwstatements.html#try..catch..finallygetStackTrace エラーの構築時にエラーの呼び出しスタックをストリングで返します(デバッグ版の Flash Player および AIR Debug Launcher(ADL)のみ)。デバッグ版の Flash Player または ADL を使用していない場合は、null を返します。呼び出しスタックのストリング表現です。 Stringエラーの呼び出しスタックを読み取り可能形式で返します。 エラーの構築時にエラーの呼び出しスタックをストリングで返します(デバッグ版の Flash Player および AIR Debug Launcher(ADL)のみ)。デバッグ版の Flash Player または ADL を使用していない場合は、null を返します。次の例に示されているように、戻り値の先頭行は、例外オブジェクトのストリング表現で、その後にはスタックトレースエレメントが続きます。 TypeError: null cannot be converted to an object at com.xyz.OrderEntry.retrieveData(OrderEntry.as:995) at com.xyz.OrderEntry.init(OrderEntry.as:200) at com.xyz.OrderEntry.$construct(OrderEntry.as:148) toString デフォルトでは "Error" というストリングを返します。Error.message プロパティが定義されている場合は、その値を返します。エラーメッセージです。 Stringエラーメッセージを返します。メッセージが定義されていない場合は、"Error" という語を返します。 デフォルトでは "Error" というストリングを返します。Error.message プロパティが定義されている場合は、その値を返します。 次の例では、新しい Error オブジェクト err を作成し、次に Error() コンストラクターを使用して、ストリング "New Error Message"err に割り当てます。最後に、message プロパティには "Another New Error Message" が設定され、"New Error Message" は上書きされます。 var err:Error = new Error(); trace(err.toString()); // Error err = new Error("New Error Message"); trace(err.toString()); // Error: New Error Message err.message = "Another New Error Message"; trace(err.toString()); // Error: Another New Error Message Error.messagestatements.html#throwstatements.html#try..catch..finallymessage Error オブジェクトに関連付けられたメッセージです。StringError インスタンスに関連付けられたエラーメッセージです。 Error オブジェクトに関連付けられたメッセージです。デフォルトでは、このプロパティの値は "Error" です。Error オブジェクトを作成する際に、message プロパティを指定するには、Error コンストラクター関数にエラーストリングを渡します。 statements.html#throwstatements.html#try..catch..finallyname Error オブジェクトの名前です。StringError インスタンスの名前です。 Error オブジェクトの名前です。デフォルトでは、このプロパティの値は "Error" です。 statements.html#throwstatements.html#try..catch..finallyerrorID 特定のエラーメッセージに関連付けられた参照番号です。intエラー番号です。 特定のエラーメッセージに関連付けられた参照番号です。カスタム Error オブジェクトの場合、この番号はコンストラクターで提供される id パラメーターの値です。
TypeError TypeError 例外は、オペランドの予期される型と実際の型が異なる場合にスローされます。Error TypeError 例外は、オペランドの予期される型と実際の型が異なる場合にスローされます。

また、この例外は次の状況でスローされます。

  • 関数またはメソッドの実際のパラメーターを、形式上必要とされるパラメーターの型に強制的に変換できない場合。
  • 変数に割り当てられた値を、その変数の型に強制的に変換できない場合。
  • is または instanceof 演算子の右辺が有効な型でない場合。
  • super キーワードの使用方法が不正な場合。
  • プロパティへの参照が複数のバインディングに解決され、結果があいまいである場合
  • 互換性のないオブジェクトに対してメソッドが呼び出された場合。例えば、RegExp クラスのメソッドが汎用オブジェクトに移植されて呼び出された場合などに TypeError 例外がスローされます。

次の例は、TypeError 例外が try..catch ステートメント内でどのように生成され、処理されるかを示しています。 package { import flash.display.DisplayObject; import flash.display.Sprite; public class TypeErrorExample extends Sprite { public function TypeErrorExample() { try { var child:Object = new Object(); addChild(DisplayObject(child)); } catch(e:TypeError) { trace(e); } } } }
is 演算子instanceof 演算子super ステートメントRegExp クラスTypeError 新しい TypeError オブジェクトを作成します。messageStringTypeError オブジェクトに関連付けられたメッセージです。 新しい TypeError オブジェクトを作成します。
arguments arguments オブジェクトは、関数の引数を保存したり、引数にアクセスする場合に使用されます。arguments オブジェクトは、関数の引数を保存したり、引数にアクセスする場合に使用されます。 Object arguments オブジェクトは、関数の引数を保存したり、引数にアクセスする場合に使用されます。関数の本体に含まれる場合、arguments オブジェクトにはローカルの arguments 変数を使用してアクセスできます。

引数は配列エレメントとして保存され、最初の引数は arguments[0] として、2 番目の引数は arguments[1] のようにアクセスされます。arguments.length プロパティは、関数に渡される引数の数を示します。関数で宣言された数と異なる数の引数が渡される場合もあります。

以前のバージョンの ActionScript とは異なり、ActionScript 3.0 には arguments.caller プロパティがありません。現在の関数を呼び出した関数への参照を取得するには、その関数への参照を引数として渡す必要があります。このテクニックの例については、arguments.callee の例を参照してください。

ActionScript 3.0 では、新しく ...(rest) キーワードが含まれています。arguments クラスではなく、このステートメントを使用することをお勧めします。

次の例では、様々な arguments プロパティ(calleelength など)の使用方法を示しています。 package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { public function ArgumentsExample() { println("Hello World"); } public function println(str:String):void { trace(arguments.callee == this.println); // true trace(arguments.length); // 1 trace(arguments[0]); // Hello World trace(str); // Hello World } } }
...(rest)関数callee 現在実行中の関数への参照です。Function現在実行中の関数への参照です。 現在実行中の関数への参照です。 次のコードは、secondFunction() という名前の関数を呼び出す関数への参照を取得します。firstFunction() 関数は、ブール値引数 true を持ち、secondFunction()firstFunction() を正常に呼び出していることを示して、各関数が他方の関数を相互に呼び出すことによる無限ループを防ぎます。

callSecond パラメーターが true であるため、firstFunction()secondFunction() を呼び出し、自身への参照を唯一の引数として渡します。関数 secondFunction() は、データ型が Function で、caller という名前のパラメーターを使用して、この引数を受け取り、保存します。次に、secondFunction() 内から、caller パラメーターで firstFunction 関数を呼び出します。ただし、このとき callSecond 引数を false に設定します。

実行が firstFunction() に戻ると、trace() ステートメントが実行されます。これは、callSecondfalse であるためです。

package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { private var count:int = 1; public function ArgumentsExample() { firstFunction(true); } public function firstFunction(callSecond:Boolean) { trace(count + ": firstFunction"); if(callSecond) { secondFunction(arguments.callee); } else { trace("CALLS STOPPED"); } } public function secondFunction(caller:Function) { trace(count + ": secondFunction\n"); count++; caller(false); } } }
length 関数に渡される引数の数です。Number関数に渡されるパラメーターの数です。 関数に渡される引数の数です。関数で宣言された数よりも増減する場合があります。
String String クラスは、文字のストリングを表すデータ型です。Object String クラスは、文字のストリングを表すデータ型です。String クラスは、プリミティブなストリング値の型の操作を可能にするメソッドとプロパティを提供します。String() 関数を使用して任意のオブジェクトの値を String データ型オブジェクトに変換できます。

すべてのストリングインデックスはゼロから始まるため、各ストリング x の最終文字のインデックスは x.length - 1 のようになります。

コンストラクターメソッド new String() を使用して新しいストリング変数を作成するか、または単にストリングリテラル値を割り当てるかにかかわらず、String クラスのメソッドをどれでも呼び出すことができます。旧バージョンの ActionScript とは異なり、String クラスのメソッドには、コンストラクターを使用するか、グローバル関数を使用するか、または単にストリングリテラル値を割り当てるかによる違いはありません。次の各行のコードは同じです。

var str:String = new String("foo"); var str:String = "foo"; var str:String = String("foo");

ストリング変数を undefined に設定すると、Flash ランタイムにより undefinednull に型変換されます。次に例を示します。

 var s:String = undefined;
このステートメントでは、値は null に設定されます。undefined には設定されません。String() 関数は、undefined を使用する必要がある場合に使用します。
次の例では、StringExample クラスと StringHelper クラスを使用して、String クラスの様々なメソッドの使用法を示します。ここでは以下の手順を実行します。
  1. StringExample のコンストラクターは、いくつかのローカルの String インスタンスを宣言します。これらのインスタンスは様々なストリングと新しい StringHelper オブジェクトにより初期化されます。
  2. StringHelper クラスには次のメソッドがあります。
    • replace() : String メソッドの split()join() を呼び出して、新しいストリングに渡されるストリングのサブストリングを削除します。
    • trim() : 渡されたストリングを使用して trimBack()trimFront() の両方を呼び出し、更新されたストリングを返します。
    • trimFront() : ストリングの先頭から末尾に向かって文字を比較し、char パラメーターに一致するすべての文字を、最初に char パラメーターに一致しない文字が現れるまで、再帰的に削除します。そして更新されたストリングを返します。
    • trimBack() : ストリングの末尾から先頭に向かって文字を比較し、char パラメーターに一致するすべての文字を、最初に char パラメーターに一致しない文字が現れるまで、再帰的に削除します。そして更新されたストリングを返します。
    • stringToCharacter() : 渡されたストリングの先頭文字を返します。
  3. 宣言されているストリング変数を使用して、2 番目のストリングの作成に replace() メソッド、3 番目のストリングの作成に trim() メソッドを呼び出して、3 つのストリングを作成します。
package { import flash.display.Sprite; public class StringExample extends Sprite { public function StringExample() { var companyStr:String = new String(" Company X"); var productStr:String = "Product Z Basic "; var emptyStr:String = " "; var strHelper:StringHelper = new StringHelper(); var companyProductStr:String = companyStr + emptyStr + productStr; trace("'" + companyProductStr + "'"); // ' Company X Product Z Basic ' companyProductStr = strHelper.replace(companyProductStr, "Basic", "Professional"); trace("'" + companyProductStr + "'"); // ' Company X Product Z Professional ' companyProductStr = strHelper.trim(companyProductStr, emptyStr); trace("'" + companyProductStr + "'"); // 'Company X Product Z Professional' } } } class StringHelper { public function StringHelper() { } public function replace(str:String, oldSubStr:String, newSubStr:String):String { return str.split(oldSubStr).join(newSubStr); } public function trim(str:String, char:String):String { return trimBack(trimFront(str, char), char); } public function trimFront(str:String, char:String):String { char = stringToCharacter(char); if (str.charAt(0) == char) { str = trimFront(str.substring(1), char); } return str; } public function trimBack(str:String, char:String):String { char = stringToCharacter(char); if (str.charAt(str.length - 1) == char) { str = trimBack(str.substring(0, str.length - 1), char); } return str; } public function stringToCharacter(str:String):String { if (str.length == 1) { return str; } return str.slice(0, 1); } }
String() グローバル関数String 指定されたストリングに初期化された新しい String オブジェクトを作成します。valString新しい String オブジェクトの初期値です。 指定されたストリングに初期化された新しい String オブジェクトを作成します。

注意:ストリングリテラルの方が String オブジェクトよりもオーバーヘッドが少なく、一般的により簡単に使用できます。String オブジェクトを使用する特別な理由がある場合以外は、String クラスよりもストリングリテラルを使用することをお勧めします。

charAt index パラメーターで指定された位置にある文字を返します。指定されたインデックス位置にある文字です。指定されたインデックスがこのストリングのインデックスの範囲外である場合は、空のストリングが返されます。 StringindexNumber0ストリング内の文字の位置を示す整数です。最初の文字の位置は 0 で、最後の文字の位置は my_str.length - 1 です。 index パラメーターで指定された位置にある文字を返します。index に指定された値が 0 ~ string.length - 1 の範囲外にある場合は、空のストリングを返します。

このメソッドは String.charCodeAt() に似ていますが、16 ビット整数の文字コードではなく文字が返される点が異なります。

charCodeAt()
charCodeAt 指定された index にある文字の数値 Unicode 文字コードを返します。指定されたインデックスにある文字の Unicode 文字コードを返します。または、インデックスがこのストリングのインデックスの範囲外である場合は、NaN を返します。

Unicode 値は、Unicode Character Database の仕様で定義されています。

Number
indexNumber0ストリング内の文字の位置を示す整数です。最初の文字の位置は 0, で、最後の文字の位置は my_str.length - 1 です。
指定された index にある文字の数値 Unicode 文字コードを返します。index に指定された値が 0 ~ string.length - 1 の範囲外にある場合は、NaN を返します。

このメソッドは、String.charAt() と似ていますが、実際の文字ではなく 16 ビット整数文字コードを返す点が異なります。

charAt()
concat 指定された引数を必要に応じてストリングに変換し、String オブジェクトの最後に追加して結果のストリングを返します。指定のパラメーターにより連結されたこのストリングで構成される新しいストリングです。 Stringargs連結される 0 個以上の値です。 指定された引数を必要に応じてストリングに変換し、String オブジェクトの最後に追加して結果のストリングを返します。ソースの String オブジェクトの元の値は変更されません。 fromCharCode パラメーター内の Unicode 文字コードに対応する文字をストリングとして返します。指定された Unicode 文字コードのストリング値です。 StringcharCodesUnicode 値を表す一連の 10 進整数です。

Unicode 値は、Unicode Character Database の仕様で定義されています。

パラメーター内の Unicode 文字コードに対応する文字をストリングとして返します。
indexOf ストリング内を検索し、ストリング内の startIndex 以降で、最初に val が見つかった位置を返します。指定のサブストリングまたは -1 で最初に見つかった指定のサブストリングのインデックスです。 intvalString検索対象のストリングです。 startIndexNumber0検索を開始するインデックスを示す整数です。これはオプションです。 ストリング内を検索し、val が、ストリング内の startIndex 以降で最初に見つかった位置を返します。このインデックスはゼロから始まります。つまりストリングの最初の文字は、インデックス 1 ではなくインデックス 0 にあると見なされます。val が見つからない場合、メソッドは -1 を返します。 lastIndexOf()lastIndexOf ストリングを右から左へと検索し、startIndex の前で最後に現れる val のインデックスを返します。最後に見つかった指定のサブストリングの位置です。見つからなかった場合は -1 を返します。 intvalString検索対象のストリングです。 startIndexNumber0x7FFFFFFFval の検索を開始するインデックスを示す整数です。これはオプションです。デフォルトは、インデックスに許可されている最大値です。startIndex が指定されていない場合、ストリング内の最後のアイテムから検索が開始されます。 ストリングを右から左へと検索し、val のインデックスで startIndex の前で最後に現れるものを返します。このインデックスはゼロから始まります。つまり最初の文字はインデックス 0 にあり、最後の文字は string.length - 1 にあります。val が見つからなかった場合は、-1 を返します。 indexOf()localeCompare 複数のストリングのソート順を比較し、比較の結果を整数で返します。ストリングが等しい場合、値 0 になります。それ以外の場合、元のストリングがストリング引数より前に来る場合は負の整数、ストリング引数が元のストリングより前に来る場合は正の整数になります。どちらの場合も、数値の絶対値は 2 つのストリングの違いを表します。 intotherString比較するストリング値です。 values比較するストリングの追加セットです。これはオプションです。 複数のストリングのソート順を比較し、比較の結果を整数で返します。このメソッドはロケール特有の方法で比較を処理することを目的としますが、ActionScript 3.0 実装では、等価(==)演算子または不等価(!=)演算子などのその他のストリング比較と異なる結果を生成しません。 ストリングが等価の場合、戻り値は 0 になります。 元のストリング値が other で指定されたストリング値より前に来る場合、戻り値は負の整数になります。この値の絶対値は、2 つのストリング値の間にある文字数を表します。 元のストリング値が other の後に来る場合、戻り値は正の整数になります。この値の絶対値は、2 つのストリング値を隔てる文字数を表します。 match 指定された pattern をストリングと照合します。指定された pattern と一致するストリング内のすべてのサブストリングで構成されるストリングの配列です。

pattern が正規表現の場合、一致するサブストリングを複数含む配列を返すには、正規表現の中に g(グローバル)フラグを設定する必要があります。

  • g(グローバル)フラグを設定しない場合、返される配列には一致するサブストリングが 1 つだけ含まれ、正規表現の lastIndex プロパティは変更されません。
  • g(グローバル)フラグを設定した場合、メソッドはストリングの先頭(インデックス位置 0)から検索を開始します。/x~~/ などの正規表現を使用する場合、一致するサブストリングが空のストリングであることがあります。その場合、メソッドはその空のストリングを一致するサブストリングの配列に追加し、次のインデックス位置から検索を続行します。メソッドが完了すると、正規表現の lastIndex プロパティは 0 に設定されます。

一致が見つからない場合、メソッドは空の配列を返します。pattern パラメーターの値を渡さなかった場合、または未定義値を渡した場合、メソッドは null を返します。

Array
pattern照合するパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。pattern が正規表現でもストリングでもない場合、メソッドは実行する前にこれをストリングに変換します。
指定された pattern をストリングと照合します。
RegExp
replace 指定された pattern をストリングと照合し、新しいストリングを返します。この新しいストリングでは、pattern と最初に一致した部分が repl で指定された内容に置き換えられます。結果のストリングです。ソースストリングは変更されていません。 Stringpattern照合するパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。ストリングまたは正規表現以外のオブジェクトを pattern パラメーターに指定した場合、toString() メソッドがパラメーターに適用され、replace() メソッドが実行されます。このとき、結果のストリングが pattern として使用されます。 replObject通常は、一致した内容に置き換えるストリングです。ただし、このパラメーターに関数を指定することもできます。関数を指定した場合、一致した内容が、関数によって返されるストリングに置き換えられます。

repl パラメーターにストリングを指定し、pattern パラメーターに正規表現を指定した場合、次の特殊な $ 置換コードrepl ストリングに使用することができます。

$ コード 置換テキスト $$ $ $& パターンに一致したサブストリング $` ストリングのうち、パターンに一致したサブストリングより前の部分です。このコードで使用する記号は、直線状の左一重引用符(`)です。垂直の一重引用符(')または曲がった左一重引用符(‘)ではありません。 $' ストリングのうち、パターンに一致したサブストリングより後の部分です。このコードで使用する記号は、垂直の一重引用符(')です。 $ n 括弧指定されたグループの n 番目の一致です。n は 1 桁の数字(1 ~ 9)であり、$ n の後に 10 進数字は続きません。 $ nn 括弧指定されたグループの nn 番目一致です。nn は 2 桁の 10 進数字(01 ~ 99)です。nn 番目のパターンが未定義の場合、置換テキストは空のストリングになります。

例えば、次の例は、1 番目および 2 番目に一致したキャプチャグループを表す $2 および $1 置換コードを使用する方法を示しています。

var str:String = "flip-flop"; var pattern:RegExp = /(\w+)-(\w+)/g; trace(str.replace(pattern, "$2-$1")); // flop-flip

repl として関数を指定した場合、replace() メソッドは次のパラメーターを関数に渡します。

  • ストリング内の一致する部分。
  • キャプチャされた、括弧指定されたグループとのすべての一致が次の引数として提供されます。この方法で渡される引数の数は、括弧内のパターンとの一致数によって異なります。括弧内のパターンとの一致数は、関数コード内の arguments.length - 3 を確認して特定することができます。
  • ストリング内で一致部分が始まる場所のインデックス位置。
  • ストリング全体。

次に例を示します。

var str1:String = "abc12 def34"; var pattern:RegExp = /([a-z]+)([0-9]+)/; var str2:String = str1.replace(pattern, replFN); trace (str2); // 12abc 34def function replFN():String { return arguments[2] + arguments[1]; }

この例では、replace() メソッドの呼び出しに、関数を repl パラメーターとして使用しています。正規表現(/([a-z]([0-9]/g)は 2 回一致しています。1 回目は、パターンがサブストリング "abc12" に一致し、次の引数のリストが関数に渡されます。

{"abc12", "abc", "12", 0, "abc12 def34"}

2 回目は、パターンがサブストリング "def23" に一致し、次の引数のリストが関数に渡されます。

{"def34", "def", "34", 6, "abc123 def34"}
指定された pattern をストリングと照合し、新しいストリングを返します。この新しいストリングでは、pattern と最初に一致した部分が repl で指定された内容に置き換えられます。pattern パラメーターには、ストリングまたは正規表現を指定できます。repl パラメーターには、ストリングまたは関数を指定できます。関数を指定した場合、一致した部分は、関数によって返されるストリングに置き換えられます。元のストリングは変更されません。

次の例では、"sh"(大文字と小文字は区別)の最初のインスタンスのみが置き換えられます。

var myPattern:RegExp = /sh/; var str:String = "She sells seashells by the seashore."; trace(str.replace(myPattern, "sch")); // She sells seaschells by the seashore.

次の例では、g(グローバル)フラグが正規表現で設定されているので、"sh"(大文字と小文字は区別)のすべてのインスタンスが置き換えられます。

var myPattern:RegExp = /sh/g; var str:String = "She sells seashells by the seashore."; trace(str.replace(myPattern, "sch")); // She sells seaschells by the seaschore.

次の例では、正規表現の中に g(グローバル)フラグが設定されているので、"sh" のすべてのインスタンスが置き換えられます。また、一致は大文字と小文字を区別 しませんi(ignoreCase)フラグが設定されているためです。

var myPattern:RegExp = /sh/gi; var str:String = "She sells seashells by the seashore."; trace(str.replace(myPattern, "sch")); // sche sells seaschells by the seaschore.
RegExp
search 指定された pattern を検索し、最初に一致したサブストリングのインデックスを返します。最初に一致したサブストリングのインデックスを返します。また一致するサブストリングがない場合は -1 を返します。ストリングのインデックスはゼロから始まり、ストリングの先頭の文字はインデックス 0、最後の文字は string.length - 1 です。 intpattern照合するパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。pattern が正規表現でもストリングでもない場合、メソッドは実行する前にこれをストリングに変換します。正規表現を指定した場合、メソッドは正規表現のグローバルフラグ("g")を無視し、また正規表現の lastIndex プロパティを無視し、元のまま維持します。未定義の値を渡した場合、または値を渡さなかった場合、メソッドは -1 を返します。 指定された pattern を検索し、最初に一致したサブストリングのインデックスを返します。一致するサブストリングがなかった場合、メソッドは -1 を返します。 RegExpslice 返されるストリングには、startIndex 文字から endIndex 文字の前までのすべての文字が含まれます。指定されたインデックスに基づくサブストリングです。 StringstartIndexNumber0スライスの始点のゼロから始まるインデックスです。startIndex が負の数値の場合、スライスは右から左に作成されます。このとき、-1 が最後の文字です。 endIndexNumber0x7fffffffスライスの終点のインデックスより 1 大きい整数値です。endIndex パラメーターで指定されたインデックス位置の文字は、抽出されるストリングには含まれません。endIndex が負の数値の場合、終点はストリングの終わりからカウントされて決定されます。このとき、-1 が最後の文字になります。デフォルトは、インデックスに許可されている最大値です。このパラメーターを省略すると、String.length が使用されます。 返されるストリングには、startIndex 文字から endIndex 文字の前までのすべての文字が含まれます。元の String オブジェクトは変更されません。endIndex パラメーターを指定しない場合、サブストリングの終わりがストリングの終わりになります。startIndex で指定されたインデックス文字が、endIndex で指定されたインデックス文字と同じか、その右側にある場合、メソッドは空のストリングを返します。 substr()substring()split 指定された delimiter パラメーターがある各位置で String オブジェクトをサブストリングの配列に分割します。サブストリングの配列です。 Arraydelimiterこのストリングを分割する場所を示すパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。delimiter が正規表現でもストリングでもない場合、メソッドは実行する前にこれをストリングに変換します。 limitNumber0x7fffffff配列に挿入するアイテムの最大数です。デフォルトは、許可されている最大値です。 指定された delimiter パラメーターがある各位置で String オブジェクトをサブストリングの配列に分割します。

delimiter パラメーターが正規表現の場合、ストリング内の特定の位置で見つかった最初の一致のみが考慮されます。バックトラッキングにより、同じ位置で空でないサブストリングの一致が見つかったとしても、それは考慮されません。次に実際の使用例を示します。

var str:String = "ab"; var results:Array = str.split(/a~~?/); // results == ["","b"] results = str.split(/a~~/); // results == ["","b"].)

delimiter パラメーターがグループ化括弧を含む正規表現の場合、delimiter が一致するたびに、未定義結果を含むグループ化括弧の結果が出力配列にスプライスされます。次に例を示します。

var str:String = "Thi5 is a tricky-66 example."; var re:RegExp = /(\d+)/; var results:Array = str.split(re); // results == ["Thi","5"," is a tricky-","66"," example."]

limit パラメーターを指定した場合、配列には指定された数を超えるエレメントは返されません。

delimiter が空のストリング、空の正規表現、または空のストリングも一致とされる正規表現の場合、ストリング内のそれぞれの 1 文字が配列内のエレメントとして出力されます。

delimiter パラメーターが未定義の場合は、ストリング全体が、返される配列の最初のエレメントに挿入されます。

Array.join()RegExp
substr startIndex で指定された位置から len で指定された長さの文字を含むサブストリングを返します。指定されたパラメーターに基づくサブストリングです。 StringstartIndexNumber0サブストリングの作成に使用する先頭文字のインデックスを示す整数です。startIndex が負の数値の場合、始点はストリングの終わりから決定されます。このとき、-1 が最後の文字になります。 lenNumber0x7fffffff作成するサブストリングの文字数です。デフォルト値は、許可されている最大値です。len を指定しないと、サブストリングには startIndex から終わりまでのすべての文字が含まれます。 startIndex で指定された位置から len で指定された長さの文字を含むサブストリングを返します。元のストリングは変更されません。 substring startIndex で指定された位置から endIndex - 1 までのすべての文字を含むストリングを返します。指定されたパラメーターに基づくサブストリングです。 StringstartIndexNumber0サブストリングの作成に使用する先頭文字のインデックスを示す整数です。startIndex に指定できる値は、0String.length です。startIndex が負の値の場合、0 が使用されます。 endIndexNumber0x7fffffff抽出するサブストリングの最後の文字のインデックスに 1 を加えた整数です。endIndex に指定できる値は、0String.length です。endIndex にある文字はサブストリングに含まれません。デフォルトは、インデックスに許可されている最大値です。このパラメーターを省略すると、String.length が使用されます。このパラメーターが負の値である場合は、0 が使用されます。 startIndex で指定された位置から endIndex - 1 までにあるすべての文字を含むストリングを返します。endIndex が指定されていない場合、String.length が使用されます。startIndex の値が endIndex の値と等しい場合、空のストリングが返されます。startIndex の値が endIndex の値より大きい場合、関数を実行する前にパラメーターが自動的に入れ替わります。元のストリングは変更されません。 toLocaleLowerCase このストリングのコピーを返します。すべての大文字が小文字に変換されます。このストリングのコピーです。すべての大文字が小文字に変換されます。 String このストリングのコピーを返します。すべての大文字が小文字に変換されます。元のストリングは変更されません。このメソッドはロケールに特化した方法で変換を処理することを目的としていますが、ActionScript 3.0 実装では、toLowerCase() メソッドと異なる結果を生成しません。 toLowerCase()toLocaleUpperCase このストリングのコピーを返します。すべての小文字が大文字に変換されます。このストリングのコピーです。すべての小文字が大文字に変換されます。 String このストリングのコピーを返します。すべての小文字が大文字に変換されます。元のストリングは変更されません。このメソッドはロケールに特化した方法で変換を処理することを目的としていますが、ActionScript 3.0 実装では、toUpperCase() メソッドと異なる結果を生成しません。 toUpperCase()toLowerCase このストリングのコピーを返します。すべての大文字が小文字に変換されます。このストリングのコピーです。すべての大文字が小文字に変換されます。 String このストリングのコピーを返します。すべての大文字が小文字に変換されます。元のストリングは変更されません。

このメソッドは、対応する Unicode の小文字が存在するすべての文字(単に A ~ Z ではない)を変換します。

var str:String = " JOSÉ BARÇA"; trace(str.toLowerCase()); // josé barça

大文字と小文字の対応は、Unicode Character Database の仕様で定義されています。

toUpperCase()
toUpperCase このストリングのコピーを返します。すべての小文字が大文字に変換されます。このストリングのコピーです。すべての小文字が大文字に変換されます。 String このストリングのコピーを返します。すべての小文字が大文字に変換されます。元のストリングは変更されません。

このメソッドは、対応する Unicode の大文字が存在するすべての文字(単に a ~ z ではない)を変換します。

var str:String = "José Barça"; trace(str.toUpperCase()); // JOSÉ BARÇA

大文字と小文字の対応は、Unicode Character Database の仕様で定義されています。

toLowerCase()
valueOf String インスタンスのプリミティブ値を返します。ストリングの値です。 String String インスタンスのプリミティブ値を返します。このメソッドは、String オブジェクトをプリミティブなストリング値に変換するように設計されています。Flash ランタイムは必要に応じて自動的に valueOf() を呼び出すようになっているので、このメソッドを明示的に呼び出す必要はほとんどありません。 length 指定した String オブジェクト内にある文字数を表す整数です。int 指定した String オブジェクト内にある文字数を表す整数です。

すべてのストリングインデックスはゼロから始まるため、各ストリング x の最終文字のインデックスは x.length - 1 のようになります。

Class Class オブジェクトはプログラム内の各クラス定義に対して作成されます。Object Class オブジェクトはプログラム内の各クラス定義に対して作成されます。Class オブジェクトはすべて Class クラスのインスタンスです。Class オブジェクトにはクラスの静的プロパティとメソッドが含まれます。new 演算子を使用してクラスオブジェクトを呼び出すと、クラスのインスタンスが作成されます。

flash.net.getClassByAlias() などの一部のメソッドは、Class 型のオブジェクトを返します。それ以外のメソッドは、flash.net.registerClassAlias() などの Class 型のパラメーターを持つ場合があります。

クラス名は、次に例を示すように、Class オブジェクトへの参照です。

 
 class Foo {
 }
 

class Foo{} ステートメントは Class オブジェクト Foo を作成するクラス定義です。また、new Foo() ステートメントは、Foo クラスの新しいインスタンスを作成します。結果は Foo 型になります。

class ステートメントを使用してクラスを宣言します。次の例で示すように、Class オブジェクトは、実行時に既存インスタンスオブジェクトへクラスを割り当てるといった、高度な手法の場合に使用します。

クラスの静的プロパティとメソッドは、クラスの Class オブジェクトに存在します。クラス自体は prototype を宣言します。

通常は、Class 型の変数を手動で宣言または作成する必要はありません。ただし、次に示すコードでは、クラスがパブリックの Class プロパティ circleClass として割り当てられ、この Class プロパティをメインの Library クラスのプロパティとして参照することができます。

package { import flash.display.Sprite; public class Library extends Sprite { public var circleClass:Class = Circle; public function Library() { } } } import flash.display.Shape; class Circle extends Shape { public function Circle(color:uint = 0xFFCC00, radius:Number = 10) { graphics.beginFill(color); graphics.drawCircle(radius, radius, radius); } }

別の SWF ファイルによって、作成された Library.swf ファイルがロードされ、Circle 型のオブジェクトがインスタンス化されることがあります。次の例は、子 SWF ファイルのアセットにアクセスする 1 つの方法を示しています。他に、flash.utils.getDefnitionByName() を使用するか、子 SWF ファイルのスタブ定義をインポートするという方法もあります。

package { import flash.display.Sprite; import flash.display.Shape; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; public class LibaryLoader extends Sprite { public function LibaryLoader() { var ldr:Loader = new Loader(); var urlReq:URLRequest = new URLRequest("Library.swf"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); } private function loaded(event:Event):void { var library:Object = event.target.content; var circle:Shape = new library.circleClass(); addChild(circle); } } }

ActionScript 3.0 では、SWF ファイルにコンパイルされる外部アセット(イメージ、サウンド、フォントなど)に対して埋め込みクラスを作成できます。以前のバージョンの ActionScript では、MovieClip.attachMovie() メソッドで、リンケージ識別子を使って外部アセットを関連付けていました。ActionScript 3.0 では、各埋め込みアセットが固有の埋め込みアセットクラスによって表されます。そのため、new 演算子を使用してアセットの関連クラスをインスタンス化することや、それらのアセットについてメソッドやプロパティを呼び出すことができます。

例えば、MXML コンパイラーを使用して SWF ファイルを生成する場合、次のように埋め込みクラスを作成します。

[Embed(source="bratwurst.jpg")] public var imgClass:Class;

さらに、これをインスタンス化するために、次のコードを追加します。

var myImg:Bitmap = new imgClass();
次の例は、以下に示す手順に従って、Class オブジェクを使用して、インスタンス化するクラスの決定を実行時まで保留する方法を示しています。
  1. 2 つのクラスを ClassAClassB として宣言します。
  2. classToConstruct という名前の Class 型の変数と Boolean 型の変数 chooseClassA を宣言します。この例では、この Boolean 型の変数を true に設定していますが、コードでカスタムテスト式を使用してこの変数の値を設定することができます。
package { import flash.display.Sprite; public class ClassExample extends Sprite { public function ClassExample() { var classToConstruct:Class; var classInstance:Object; classToConstruct = ClassA; classInstance = new classToConstruct(); trace(classInstance); // [object ClassA] classToConstruct = ClassB; classInstance = new classToConstruct(); trace(classInstance); // [object ClassB] } } } class ClassA { } class ClassB { }
Object.prototypenew 演算子
Namespace Namespace クラスには、名前空間を定義して操作するためのメソッドとプロパティが含まれています。Namespace クラスには、XML オブジェクトの名前空間を定義して操作するためのメソッドとプロパティが含まれています。 Object Namespace クラスには、名前空間を定義して操作するためのメソッドとプロパティが含まれています。名前空間を使用するシナリオには、次の 3 つがあります。
  • XML オブジェクトの名前空間:名前空間により名前空間接頭辞と、名前空間を識別する URI(Uniform Resource Identifier)を関連付けます。接頭辞は、XML オブジェクト内の名前空間を参照する場合に使用されるストリングです。接頭辞が未定義の場合、XML がストリングに変換されたときに接頭辞が自動的に生成されます。
  • メソッドを区別するための名前空間:名前空間により同名のメソッドを区別し、異なるタスクを実行できるようにします。2 つのメソッドの名前が同じでも、名前空間が異なる場合は、それぞれのメソッドで別のタスクを実行することができます。
  • アクセス制御するための名前空間:名前空間を使用して、クラス内のプロパティとメソッドのグループへのアクセスを制御できるようにします。プロパティとメソッドをプライベートの名前空間に配置すると、その名前空間へのアクセス権を持たないコードからそれらのプロパティとメソッドにアクセスできなくなります。他のクラス、メソッド、または関数に名前空間を渡すことによって、プロパティとメソッドのグループへのアクセスを許可することができます。

このクラスは、2 つの形式のコンストラクターメソッドを示しています。それぞれの形式が異なるパラメーターを受け入れるからです。

XML、XMLList、および QName などのクラス同様、Namespace クラスには、ECMAScript for XML(E4X)仕様(ECMA-357 Edition 2)で定義されている強力な XML 処理規格が実装されています。

次の例は、XML オブジェクトに定義されている名前空間を操作する方法を示しています。これを行うには、以下の手順を実行します。
  1. この例では 3 つの Namespace オブジェクトを定義します。各オブジェクトには、名前空間を定義する一意の URI を関連付けます。
  2. myXML という名前の XML 変数を定義し、これを getRSS() の戻り値に割り当てます。getRSS() メソッドは、いくつかの名前空間を持つ XML オブジェクトを定義し、この XML オブジェクトを返します。
  3. この例では、parseRSS() メソッドに myXML を渡し、そのメソッドを呼び出すことで、Array 型の変数を宣言して評価しています。parseRSS() では、デフォルトの XML 名前空間として rss が定義されています。またこの例では item オブジェクト(myXML 内にある)のリストを割り当てて XMLList 変数が定義されています。配列が作成され、myXML.item 内の様々なノードが値として設定されます。その後、配列が返されます。
  4. 配列内のエレメントは、for ループを使用し、trace() を 3 回呼び出すことで出力されます。
package { import flash.display.Sprite; public class NamespaceExample extends Sprite { private var rss:Namespace = new Namespace("http://purl.org/rss/1.0/"); private var rdf:Namespace = new Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#"); private var dc:Namespace = new Namespace("http://purl.org/dc/elements/1.1/"); public function NamespaceExample() { var myXML:XML = getRSS(); var rssItems:Array = parseRSS(myXML); var len:uint = rssItems.length; for (var i:uint; i < len; i++) { trace(rssItems[i].title); trace(rssItems[i].creator); trace(rssItems[i].date); // Adobe Flash Developer Center // Adobe // 2005-08-08 // Flex Developer Center // Adobe // 2005-10-16 } } private function parseRSS(rssXML:XML):Array { default xml namespace = rss; var items:XMLList = rssXML.item; var arr:Array = new Array(); var len:uint = items.length(); for (var i:uint; i < len; i++) { arr.push({title:items[i].title, creator:items[i].dc::creator, date:items[i].dc::date}); } return arr; } private function getRSS():XML { var myXML:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" > <channel rdf:about="http://www.xml.com/cs/xml/query/q/19"> <title>Test RSS</title> <link>http://www.adobe.com/</link> <description>This is a test RSS document.</description> <language>en-us</language> <items> <rdf:Seq> <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/> <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/> </rdf:Seq> </items> </channel> <item rdf:about="http://www.adobe.com/devnet/flash/"> <title>Adobe Flash Developer Center</title> <link>http://www.adobe.com/devnet/flash/</link> <description>Welcome to the Flash Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-08-08</dc:date> </item> <item rdf:about="http://www.adobe.com/devnet/flex/"> <title>Flex Developer Center</title> <link>http://www.adobe.com/devnet/flex/</link> <description>Welcome to the Flex Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-10-16</dc:date> </item> </rdf:RDF>; return myXML; } } }
次の例は、名前空間を使用して、名前が同じでも実行するタスクが異なるメソッドを区別する方法を示しています。この例では、hello() という名前の 3 つのメソッドが別々の名前空間に存在しており、呼び出されたときにそれぞれが異なるストリングを返します。 package { import flash.display.Sprite; public class Namespace_2_Example extends Sprite { public function Namespace_2_Example() { var vocab:MultilingualVocabulary = new MultilingualVocabulary(); trace(vocab.hello()); // hello var languages:Array = vocab.getLanguages(); for (var i:uint; i < languages.length; i++) { var ns:Namespace = languages[i]; if (ns != null) { trace(ns.toString() + ": " + vocab.ns::hello()); // hello // MultilingualVocabulary:Hawaiian: aloha // MultilingualVocabulary:French: bon jour } } } } } class MultilingualVocabulary { public namespace French; public namespace Hawaiian; private var languages:Array; public function MultilingualVocabulary() { languages = new Array(Hawaiian, French); } public function hello():String { return "hello"; } Hawaiian function hello():String { return "aloha"; } French function hello():String { return "bon jour"; } public function getLanguages():Array { return languages; } } 次の例では、名前空間名を使用して、適切な変数値を選択します。この例は、名前空間の値を変数に格納し、その変数を使用してその名前空間内のオブジェクトを参照する方法を示しています。

この例は、長方形のボタンについてのマウス状態に対応する名前空間と色を定義します。ボタンを描画するたびに、bgcolor 変数を参照して、適切な色(マウスが置かれていない out 状態では赤、マウスが上に置かれている over 状態では黄色、マウスボタンが押されている down 状態では白)を適用します。変数は、対応する名前空間(outoverdown)に対するものです。

package { import flash.display.Sprite; public class Namespace_3_Example extends Sprite { public function Namespace_3_Example() { addChild(new StateButton("Press Me.")); } } } import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; class StateButton extends Sprite{ private namespace out; private namespace over; private namespace down; private var label:TextField; private var labelTxt:String; private var ns:Namespace; out var bgColor:Number = 0xFF0000; over var bgColor:Number = 0xFFFF00; down var bgColor:Number = 0xFFFFFF; public function StateButton(str:String) { buttonMode = true; labelTxt = str; ns = out; draw(); addLabel(); addListeners(); } private function addLabel():void { label = new TextField(); label.text = labelTxt; label.width = 50; label.height = 20; label.mouseEnabled = false; addChild(label); } private function addListeners():void { addEventListener(MouseEvent.MOUSE_UP, mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); } private function mouseOutHandler(e:Event):void { ns = out; draw(); } private function mouseOverHandler(e:Event):void { ns = over; draw(); } private function mouseDownHandler(e:Event):void { ns = down; draw(); } private function draw():void { this.graphics.clear(); this.graphics.beginFill(ns::bgColor); this.graphics.drawRect(0, 0, 60, 20); } }
XMLXMLListQNameECMAScript for XML(E4X)specification(ECMA-357 edition 2)Namespace prefixValue パラメーターと uriValue パラメーターの値に従って Namespace オブジェクトを作成します。prefixValue名前空間に使用する接頭辞です。 uriValue名前空間の URI です。 指定された prefixValue と uriValue で Namespace オブジェクトを作成します。 prefixValue パラメーターと uriValue パラメーターの値に従って Namespace オブジェクトを作成します。このコンストラクターには両方のパラメーターが必要です。

prefixValue パラメーターの値は、次のように prefix プロパティに割り当てられます。

  • undefined が渡された場合、prefixundefined に設定されます。
  • 値が isXMLName() 関数により有効な XML 名として判定された場合、この引数はストリングに変換されて prefix プロパティに割り当てられます。
  • 値が無効な XML 名の場合、prefix プロパティは undefined に設定されます。

uriValue パラメーターの値は、次のように uri プロパティに割り当てられます。

  • QName オブジェクトが渡された場合、uri プロパティは QName オブジェクトの uri プロパティの値に設定されます。
  • それ以外の場合、uriValue パラメーターはストリングに変換され、uri プロパティに割り当てられます。

注意:このクラスは、2 つのコンストラクターメソッドを示しています。それぞれの形式が異なるパラメーターを受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。

Namespace Namespace オブジェクトを作成します。uriValue名前空間の URI です。 指定された uriValue で Namespace オブジェクトを作成します。 Namespace オブジェクトを作成します。新しい Namespace オブジェクトの uri プロパティと prefix プロパティに割り当てられる値は、uriValue パラメーターに渡される値の型によって決まります。
  • 値が渡されない場合、prefix プロパティと uri プロパティは空のストリングに設定されます。
  • 値が Namespace オブジェクトの場合、オブジェクトのコピーが作成されます。
  • 値が QName オブジェクトの場合、uri プロパティは QName オブジェクトの uri プロパティに設定されます。

注意:このクラスは、2 つのコンストラクター項目を示しています。それぞれの形式が異なるパラメーターを受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡されるパラメーターの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。

toString Namespace.uri プロパティと同等です。ストリングとしての名前空間の URI です。 StringNamespace.uri プロパティと同等です。 Namespace.uri プロパティと同等です。 valueOf 指定されたオブジェクトの URI 値を返します。ストリングとしての名前空間の URI です。 StringNamespace.uri プロパティと同等です。 指定されたオブジェクトの URI 値を返します。 prefix 名前空間の接頭辞です。String名前空間の接頭辞です。 名前空間の接頭辞です。 uri 名前空間の URI です。String名前空間の URI です。 名前空間の URI です。
XML XML クラスには、XML オブジェクトを操作するためのメソッドとプロパティが含まれています。Object XML クラスには、XML オブジェクトを操作するためのメソッドとプロパティが含まれています。XMLList、Namespace、および QName などのクラスと同様、XML クラスには ECMAScript for XML(E4X)仕様(ECMA-357 Edition 2)で定義されている強力な XML 処理規格が実装されています。

toXMLString() メソッドは、XML オブジェクトに単純内容が含まれるか複合内容が含まれるかに関係なく、XML オブジェクトのストリング表現を返します。

注意:ActionScript 2.0 の XML クラスと関連クラスは XMLDocument というクラス名に変更され、flash.xml パッケージに移行されています。XMLDocument は、後方互換性を維持する目的で ActionScript 3.0 に残されているものです。

次の例では、最初に XML 変数を作成して、それにノードを追加します。次に XML プロパティを使用して、XML ノードを検出および出力します。属性名で情報を見つけるために、アットマーク(@)がいくつかの trace() 呼び出しで使用されています。 package { import flash.display.Sprite; public class XmlExample extends Sprite { public function XmlExample() { var employees:XML = <employees> <employee ssn="123-123-1234"> <name first="John" last="Doe"/> <address> <street>11 Main St.</street> <city>San Francisco</city> <state>CA</state> <zip>98765</zip> </address> </employee> <employee ssn="789-789-7890"> <name first="Mary" last="Roe"/> <address> <street>99 Broad St.</street> <city>Newton</city> <state>MA</state> <zip>01234</zip> </address> </employee> </employees>; trace(employees.employee[0].address.zip); // 98765 trace(employees.employee[1].@ssn); // 789-789-7890 trace(employees.employee.name); // <name first="John" last="Doe"/> // <name first="Mary" last="Roe"/> trace(employees..zip[0]); // 98765 trace(employees..@ssn[1]); // 789-789-7890 trace(employees..name); // <name first="John" last="Doe"/> // <name first="Mary" last="Roe"/> trace(employees.employee[0].address.*); // <street>11 Main St.</street> // <city>San Francisco</city> // <state>CA</state> // <zip>98765</zip> var node:String = "zip"; trace(employees.employee[0].address[node]); // 98765 var attribute:String = "ssn"; trace(employees.employee[1].@[attribute]); // 789-789-7890 for each (var num:XML in employees..@ssn) { trace(num); // 123-123-1234 } // 789-789-7890 var ssnToFind:String = "789-789-7890"; trace(employees.employee.(@ssn == ssnToFind).toXMLString()); // <employee ssn="789-789-7890"> // <name first="Mary" last="Roe"/> // <address> // <street>99 Broad St.</street> // <city>Newton</city> // <state>MA</state> // <zip>01234</zip> // </address> // </employee> } } }
NamespaceQNameXMLListXML.toXMLString()ECMAScript for XML(E4X)specification(ECMA-357 edition 2)XML 新しい XML オブジェクトを作成します。valueObjectトップレベル関数 XML() によって XML に変換可能なオブジェクトです。 新しい XML オブジェクトを作成します。XML クラスのメソッドを呼び出す前に、コンストラクターを使用して XML オブジェクトを作成する必要があります。

toXMLString() メソッドは、XML オブジェクトに単純内容が含まれるか複合内容が含まれるかに関係なく、XML オブジェクトのストリング表現を返します。

次の例は、Flash Professional の URLLoader クラスを使用して、ActionScript 3.0 でリモートの XML ドキュメントをロードする方法を示しています。ActionScriptExamples.com で作成された例。 // // Requires: // - TextArea control UI component in the Flash Professional Library. // import fl.controls.TextArea; var xml:XML; var urlRequest:URLRequest = new URLRequest("http://www.helpexamples.com/flash/xml/menu.xml"); var urlLoader:URLLoader = new URLLoader(); urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); var textArea:TextArea = new TextArea(); textArea.move(5, 5); textArea.setSize(stage.stageWidth - 10, stage.stageHeight - 10); addChild(textArea); function urlLoader_complete(evt:Event):void { xml = new XML(evt.currentTarget.data); textArea.text = xml.toXMLString(); } 以下に、すべて ActionScript を使用した別の例を示します。ActionScriptExamples.com で作成された例。 var xml:XML; var textArea:TextField = new TextField(); textArea.width = 300; var urlRequest:URLRequest = new URLRequest("http://www.helpexamples.com/flash/xml/menu.xml"); var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); function urlLoader_complete(evt:Event):void { xml = new XML(evt.target.data); textArea.text = xml.toXMLString(); addChild(textArea); }
XML() グローバル関数XML.toXMLString()
addNamespace XML オブジェクトのスコープ内の名前空間セットに名前空間を追加します。名前空間が追加された新しい XML オブジェクトです。 XMLnsObjectXML オブジェクトに追加する名前空間です。 XML オブジェクトのスコープ内の名前空間セットに名前空間を追加します。その名前空間が XML オブジェクトのスコープ内の名前空間セットに既に存在する(指定されたパラメーターに一致する接頭辞を持つ)場合、既存の名前空間の接頭辞は undefined に設定されます。入力パラメーターが Namespace オブジェクトの場合は、このオブジェクトが直接使用されます。入力パラメーターが QName オブジェクトの場合は、新しい名前空間の作成に入力パラメーターの URI が使用され、それ以外の場合は、入力パラメーターは String に変換され、名前空間がその String から作成されます。 次の例では、1 つの XML オブジェクトに定義されている名前空間を使用して、これを別の XML オブジェクトに適用します。 var xml1:XML = <ns:foo xmlns:ns="www.example.com/ns" />; var nsNamespace:Namespace = xml1.namespace(); var xml2:XML = <bar />; xml2.addNamespace(nsNamespace); trace(xml2.toXMLString()); // <bar xmlns:ns="www.example.com/ns"/> appendChild 指定された子を XML オブジェクトのプロパティの最後に追加します。結果として作成される XML オブジェクトです。 XMLchildObject追加する XML オブジェクトです。 指定された子を XML オブジェクトのプロパティの最後に追加します。appendChild() メソッドは、XML オブジェクト、XMLList オブジェクト、または他の任意のデータ型(後で String データ型に変換されます)を受け取ります。

XML ノードを削除するには、delete(XML)演算子を使用します。

この例では、新しいエレメントを XML オブジェクトの子リストの最後に追加します。 var xml:XML = <body> <p>hello</p> </body>; xml.appendChild(<p>world</p>); trace(xml.p[0].toXMLString()); // <p>hello</p> trace(xml.p[1].toXMLString()); // <p>world</p>
delete(XML)演算子
attribute attributeName パラメーターに一致する名前を持つ属性の XML 値を返します。XMLList オブジェクトまたは空の XMLList オブジェクトです。属性値が定義されていない場合は空の XMLList を返します。 XMLListattributeName属性の名前。 attributeName パラメーターに一致する名前を持つ属性の XML 値を返します。属性は XML エレメント内にあります。例えば、<first gender="boy">John</first> の場合、エレメントは値 "boy" の "gender" という名前の属性を持ちます。

attributeName パラメーターには任意のデータ型を指定できますが、String データ型を使用するのが最も一般的です。QName オブジェクト以外のオブジェクトを渡した場合、attributeName パラメーターは toString() メソッドを使用してパラメーターをストリングに変換します。

修飾名参照が必要な場合は、QName オブジェクトで渡すことができます。QName オブジェクトは名前空間とローカル名を定義するもので、属性の修飾名の定義に使用することができます。したがって、attribute(qname) の呼び出しは attribute(qname.toString()) の呼び出しと同じではありません。

この例は、attribute() オブジェクトに渡される QName オブジェクトを示しています。localName プロパティは attr で、namespace プロパティは ns です。 var xml:XML = <ns:node xmlns:ns = "http://uri" ns:attr = '7' /> var qn:QName = new QName("http://uri", "attr"); trace (xml.attribute(qn)); // 7 ActionScript の予約語と名前が一致する属性を返すには、次の例のように、属性識別(@)演算子ではなく attribute() メソッドを使用します。 var xml:XML = <example class="first" /> trace(xml.attribute("class"));
XML.attributes()QNameNamespaceXML.elements()attribute 識別子(&#064;)演算子
attributes 指定された XML オブジェクトの属性値のリストを返します。属性値のリストです。 XMLList 指定された XML オブジェクトの属性値のリストを返します。name() メソッドを attributes() メソッドと共に使用して属性の名前を返します。xml.attributes()xml.@* と同じです。 次の例では、属性の名前を返します。 var xml:XML=<example id='123' color='blue'/> trace(xml.attributes()[1].name()); //color この例は、すべての属性の名前を返します。 var xml:XML = <example id='123' color='blue'/> var attNamesList:XMLList = xml.@*; trace (attNamesList is XMLList); // true trace (attNamesList.length()); // 2 for (var i:int = 0; i < attNamesList.length(); i++) { trace (typeof (attNamesList[i])); // xml trace (attNamesList[i].nodeKind()); // attribute trace (attNamesList[i].name()); // id and color } XML.attribute()XML.name()&#064; 演算子childIndex 親のコンテキスト内でのこの XML オブジェクトの 0 から始まるインデックス位置を識別します。オブジェクトの位置です。正の整数だけでなく、-1 も返します。 int 親のコンテキスト内でのこの XML オブジェクトの 0 から始まるインデックス位置を識別します。 この例は、childIndex() メソッドの使用法を示しています。 var xml:XML = <foo> <bar /> text <bob /> </foo>; trace(xml.bar.childIndex()); // 0 trace(xml.bob.childIndex()); // 2 child XML オブジェクトの子を列挙します。入力パラメーターに一致する子ノードの XMLList オブジェクトです。 XMLListpropertyNameObjectXML の子のエレメント名または整数です。 XML オブジェクトの子を列挙します。XML の 1 つの子は、1 つの XML エレメント、テキストノード、コメント、または処理命令です。

propertyName パラメーターを使用して、特定の XML の子の内容を列挙します。例えば、<first> という名前の子の内容を返すには、child.name("first") を使用します。子のインデックス番号を使用しても同じ結果が得られます。インデックス番号は、複数の XML の子のリスト内での子の位置を識別します。例えば、name.child(0) はリスト内の先頭の子を返します。

XML ドキュメント内のすべての子を出力するにはアスタリスク(~~)を使用します。例えば、doc.child("~~") となります。

子の総数を出力するには、length() メソッドを、アスタリスク(~~)パラメーターを指定した child() メソッドと共に使用します。例えば、numChildren = doc.child("~~").length() となります。

次の例は、child() メソッドを使って指定された名前の子エレメントを識別する方法を示しています。 var xml:XML = <foo> <bar>text1</bar> <bar>text2</bar> </foo>; trace(xml.child("bar").length()); // 2 trace(xml.child("bar")[0].toXMLString()); // <bar>text1</bar> trace(xml.child("bar")[1].toXMLString()); // <bar>text2</bar>
XML.elements()XMLList クラスXML.length()
children XML オブジェクトの子を、出現する順序で列挙します。XML オブジェクトの子の XMLList オブジェクトです。 XMLList XML オブジェクトの子を、出現する順序で列挙します。XML の 1 つの子は、1 つの XML エレメント、テキストノード、コメント、または処理命令です。 この例は、children() メソッドの使用法を示しています。 XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var xml:XML = <foo id="22"> <bar>44</bar> text <!-- comment --> <?instruction ?> </foo>; trace(xml.children().length()); // 4 trace(xml.children()[0].toXMLString()); // <bar>44</bar> trace(xml.children()[1].toXMLString()); // text trace(xml.children()[2].toXMLString()); // <!-- comment --> trace(xml.children()[3].toXMLString()); // <?instruction ?> comments XML コメントを持つ XML オブジェクトのプロパティを列挙します。コメントを持つプロパティの XMLList オブジェクトです。 XMLList XML コメントを持つ XML オブジェクトのプロパティを列挙します。 この例は、comments() メソッドの使用法を示しています。 XML.ignoreComments = false; var xml:XML = <foo> <!-- example --> <!-- example2 --> </foo>; trace(xml.comments().length()); // 2 trace(xml.comments()[1].toXMLString()); // <!-- example2 --> contains XML オブジェクトと、指定された value パラメーターを比較します。XML オブジェクトが value パラメーターに一致する場合は true、それ以外の場合は false を返します。 BooleanvalueXML現在の XML オブジェクトと比較する値です。 XML オブジェクトと、指定された value パラメーターを比較します。 この例は、contains() メソッドの使用法を示しています。 var xml:XML = <order> <item>Rice</item> <item>Kung Pao Shrimp</item> </order>; trace(xml.item[0].contains(<item>Rice</item>)); // true trace(xml.item[1].contains(<item>Kung Pao Shrimp</item>)); // true trace(xml.item[1].contains(<item>MSG</item>)); // false copy 指定された XML オブジェクトのコピーを返します。オブジェクトのコピーです。 XML 指定された XML オブジェクトのコピーを返します。コピーとはノードのツリー全体の複製です。コピーされた XML オブジェクトに親はないので、null が返されます(parent() メソッドを呼び出した場合)。 この例では、copy() メソッドは XML オブジェクトの新しいインスタンスを作成しています。コピーを修正しても、元のオブジェクトは変更されません。 var xml1:XML = <foo />; var xml2:XML = xml1.copy(); xml2.appendChild(<bar />); trace(xml1.bar.length()); // 0 trace(xml2.bar.length()); // 1 defaultSettings プロパティ ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent、および prettyPrinting をデフォルト値に設定したオブジェクトを返します。プロパティをデフォルト値に設定したオブジェクトです。 Object プロパティ ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndent、および prettyPrinting をデフォルト値に設定したオブジェクトを返します。デフォルト値は次のとおりです。
  • ignoreComments = true
  • ignoreProcessingInstructions = true
  • ignoreWhitespace = true
  • prettyIndent = 2
  • prettyPrinting = true

注意:このメソッドを XML クラスのインスタンスには適用しません。次のコードのように、XML に適用します。var df:Object = XML.defaultSettings() .

次の例は、XML オブジェクトを設定する前に、コメントおよび処理命令を配置するカスタム設定を適用する方法、別のXML オブジェクトを設定する前にデフォルト設定に戻す方法、さらに別の XML オブジェクトの設定のために再度カスタム設定を適用する方法を示しています。 XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
XML.ignoreCommentsXML.ignoreProcessingInstructionsXML.ignoreWhitespaceXML.prettyIndentXML.prettyPrintingXML.setSettings()XML.settings()
descendants 指定された name パラメーターを持つ XML オブジェクトのすべての子孫(子、孫、ひ孫など)を返します。一致する子孫の XMLList オブジェクトです。子孫がない場合は、空の XMLList オブジェクトを返します。 XMLListnameObject*照合するエレメントの名前です。 指定された name パラメーターを持つ XML オブジェクトのすべての子孫(子、孫、ひ孫など)を返します。name パラメーターはオプションです。name パラメーターには、QName オブジェクト、String データ型、または他の任意のデータ型(後で String データ型に変換されます)を指定できます。

すべての子孫を返すには、"~~" パラメーターを使用します。パラメーターを指定しない場合はストリング "~~" が渡され、XML オブジェクトのすべての子孫が返されます。

ActionScript の予約語に一致する名前の子孫を返すには、子孫演算子(..)ではなく、次の例のように 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")); 次の例では、descendants() メソッドは、子、孫など、子孫オブジェクトのすべてを含む XMLList オブジェクトを返しています。 XML.ignoreComments = false; var xml:XML = <body> <!-- comment --> text1 <a> <b>text2</b> </a> </body>; trace(xml.descendants("*").length()); // 5 trace(xml.descendants("*")[0]); // // <!-- comment --> trace(xml.descendants("*")[1].toXMLString()); // text1 trace(xml.descendants("a").toXMLString()); // <a><b>text2</b></a> trace(xml.descendants("b").toXMLString()); // <b>text2</b>
descendant accessor (..) 演算子
elements XML オブジェクトのエレメントを列挙します。エレメントの内容の XMLList オブジェクトです。エレメントの内容は開始タグと終了タグで囲まれます。すべてのエレメントの呼び出しでアスタリスク(~~)を使用すると、エレメントのタグと内容の両方を返します。 XMLListnameObject*エレメントの名前です。エレメントの名前は山括弧で囲まれています。例えば、<first></first>name は "first" です。 XML オブジェクトのエレメントを列挙します。エレメントは、<first></first> のように開始タグと終了タグで構成されます。name パラメーターはオプションです。name パラメーターには、QName オブジェクト、String データ型、または他の任意のデータ型(後で String データ型に変換されます)を指定できます。name パラメーターは、特定のエレメントの列挙に使用します。例えば、<first>John</first> では、エレメント "first" は "John" を返します。

すべてのエレメントを列挙するには、パラメーターにアスタリスク(~~)を使用します。アスタリスクはデフォルトパラメーターでもあります。

エレメントの総数を出力するには、length() メソッドをアスタリスクパラメーターと共に使用します。例えば、numElement = addressbook.elements("~~").length() となります。

次の例では、elements() メソッドは、コメント、テキストプロパティ、または処理命令を返さずに、エレメントのリストのみを返しています。 var xml:XML = <foo> <!-- comment --> <?instruction ?> text <a>1</a> <b>2</b> </foo>; trace(xml.elements("*").length()); // 2 trace(xml.elements("*")[0].toXMLString()); // <a>1</a> trace(xml.elements("b").length()); // 1 trace(xml.elements("b")[0].toXMLString()); // <b>2</b> ActionScript の予約語に一致する名前のエレメントを返すには、XML ドット演算子(.)ではなく、次の例のように elements() メソッドを 使用します。 var xml:XML = <student id="206"> <class name="Trigonometry" /> <class name="Spanish 2" /> </student> trace(xml.elements("class"));
XML.child()XMLList クラスXML.length()XML.attribute()XML dot (.) 演算子
hasComplexContent XML オブジェクトに複合内容が含まれるかどうかを確認します。XML オブジェクトに複合内容が含まれる場合は true、それ以外の場合は false を返します。 Boolean XML オブジェクトに複合内容が含まれるかどうかを確認します。子エレメントを持つ場合、XML オブジェクトには複合内容が含まれます。属性、コメント、処理命令、およびテキストノードを表す XML オブジェクトは複合内容を持ちません。ただし、これらを含むオブジェクトでも、子エレメントを持つ場合は、複合内容を含んでいると見なされます。 次の例は、単純内容を含む a という名前の 1 つのプロパティと、複合内容を含む a という名前の 1 つのプロパティを持つ XML オブジェクトを示しています。 var xml:XML = <foo> <a> text </a> <a> <b/> </a> </foo>; trace(xml.a[0].hasComplexContent()); // false trace(xml.a[1].hasComplexContent()); // true trace(xml.a[0].hasSimpleContent()); // true trace(xml.a[1].hasSimpleContent()); // false XML.hasSimpleContent()hasOwnProperty オブジェクトに p パラメーターで指定されたプロパティがあるかどうかを確認します。パラメーターが存在する場合は true、それ以外は false を返します。 BooleanpString照合するプロパティです。 オブジェクトに p パラメーターで指定されたプロパティがあるかどうかを確認します。 次の例では、hasOwnProperty() メソッドを使用してプロパティ(b)が存在することを確認してから、このプロパティを使用する式(b == "11")を評価します。 var xml:XML = <foo> <a /> <a> <b>10</b> </a> <a> <b>11</b> </a> </foo>; trace(xml.a.(hasOwnProperty("b") && b == "11")); この例の最後の行が次のように記述されていると、a という名前の最初のエレメントに b という名前のプロパティが存在しないため、Flash Player は例外をスローします。

trace(xml.a.(b == "11"));

次の例では、hasOwnProperty() メソッドを使用してプロパティ(item)が存在することを確認してから、このプロパティを使用する式(item.contains("toothbrush"))を評価します。 var xml:XML = <orders> <order id='1'> <item>toothbrush</item> <item>toothpaste</item> </order> <order> <returnItem>shoe polish</returnItem> </order> </orders>; trace(xml.order.(hasOwnProperty("item") && item.contains("toothbrush")));
hasSimpleContent XML オブジェクトに単純内容が含まれるかどうかを確認します。XML オブジェクトに単純内容が含まれる場合は true、それ以外の場合は false を返します。 Boolean XML オブジェクトに単純内容が含まれるかどうかを確認します。XML オブジェクトが子エレメントを持たないテキストノード、属性ノード、または XML エレメントを表す場合には、このオブジェクトには単純内容が含まれます。コメントおよび処理命令を表す XML オブジェクトには単純内容は含まれません 次の例は、単純内容を含む a という名前の 1 つのプロパティと、複合内容を含む a という名前の 1 つのプロパティを持つ XML オブジェクトを示しています。 var xml:XML = <foo> <a> text </a> <a> <b/> </a> </foo>; trace(xml.a[0].hasComplexContent()); // false trace(xml.a[1].hasComplexContent()); // true trace(xml.a[0].hasSimpleContent()); // true trace(xml.a[1].hasSimpleContent()); // false XML.hasComplexContent()inScopeNamespaces オブジェクトの親に基づいて、XML オブジェクトの名前空間を列挙します。Namespace オブジェクトの配列です。 Array オブジェクトの親に基づいて、XML オブジェクトの名前空間を列挙します。 insertChildAfter 指定された child2 パラメーターを、この XML オブジェクトの child1 パラメーターの後に挿入し、その結果のオブジェクトを返します。結果として作成される XML オブジェクトまたは undefined です。 child1Objectchild2 の前に挿入するソースオブジェクト内のオブジェクトです。 child2Object挿入するオブジェクトです。 指定された child2 パラメーターを、この XML オブジェクトの child1 パラメーターの後に挿入し、その結果のオブジェクトを返します。child1 パラメーターが null の場合、このメソッドは child2 の内容を、XML オブジェクトのすべての子の、つまり先頭に挿入します。指定した child1 が XML オブジェクトに存在しない場合、XML オブジェクトは変更されずに、undefined が返されます。

テキスト、属性、コメント、パイなどのエレメントでない XML の子に対してこのメソッドを呼び出すと、undefined を返します。

XML ノードを削除するには、delete(XML)演算子を使用します。

次の例では、XML オブジェクトの子エレメントの最後にエレメントを追加します。 var xml:XML = <menu> <item>burger</item> <item>soda</item> </menu>; xml.insertChildAfter(xml.item[0], <saleItem>fries</saleItem>); trace(xml); trace() の出力は次のようになります。
 <menu>
     <item>burger</item>
     <saleItem>fries</saleItem>
     <item>soda</item>
 </menu>
XML.insertChildBefore()delete(XML)演算子
insertChildBefore 指定された child2 パラメーターを、この XML オブジェクトの child1 パラメーターの前に挿入し、その結果のオブジェクトを返します。結果として作成される XML オブジェクトまたは undefined です。 child1Objectchild2 の後に挿入するソースオブジェクト内のオブジェクトです。 child2Object挿入するオブジェクトです。 指定された child2 パラメーターを、この XML オブジェクトの child1 パラメーターの前に挿入し、その結果のオブジェクトを返します。child1 パラメーターが null の場合、このメソッドは child2 の内容を、XML オブジェクトのすべての子の、つまり最後に挿入します。指定した child1 が XML オブジェクトに存在しない場合、XML オブジェクトは変更されずに、undefined が返されます。

テキスト、属性、コメント、パイなどのエレメントでない XML の子に対してこのメソッドを呼び出すと、undefined を返します。

XML ノードを削除するには、delete(XML)演算子を使用します。

次の例では、XML オブジェクトの子エレメントの最後にエレメントを追加します。 var xml:XML = <menu> <item>burger</item> <item>soda</item> </menu>; xml.insertChildBefore(xml.item[0], <saleItem>fries</saleItem>); trace(xml); trace() の出力は次のようになります。
 <menu>
     <saleItem>fries</saleItem>
     <item>burger</item>
     <item>soda</item>
 </menu>
XML.insertChildAfter()delete(XML)演算子
length XML オブジェクトの場合、このメソッドは常に整数 1 を返します。どのような XML オブジェクトに対しても、常に 1 を返します。 int XML オブジェクトの場合、このメソッドは常に整数 1 を返します。XMLList クラスの length() メソッドは、1 つの値のみを含む XMLList オブジェクトの値 1 を返します。 localName XML オブジェクトの修飾名のローカル名部分を指定します。String または null のいずれかのローカル名です。 Object XML オブジェクトの修飾名のローカル名部分を指定します。 次の例は、localName() メソッドの使用法を示しています。 var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; trace(xml.localName()); // Envelope name XML オブジェクトの修飾名を指定します。修飾名には、QName または null のいずれかを指定します。 Object XML オブジェクトの修飾名を指定します。 次の例は、name() メソッドを使用して XML オブジェクトの修飾名を取得する方法を示しています。 var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; trace(xml.name().localName); // Envelope trace(xml.name().uri); // "http://www.w3.org/2001/12/soap-envelope" 次の例は、XML プロパティ、テキストエレメント、および属性に対して呼び出す name() メソッドの使用法を示しています。 var xml:XML = <foo x="15" y="22"> text </foo>; trace(xml.name().localName); // foo trace(xml.name().uri == ""); // true trace(xml.children()[0]); // text trace(xml.children()[0].name()); // null trace(xml.attributes()[0]); // 15 trace(xml.attributes()[0].name()); // x XML.attributes()attribute 識別子namespaceDeclarations 親のコンテキストで XML オブジェクトに関連付けられている名前空間宣言を列挙します。Namespace オブジェクトの配列です。 Array 親のコンテキストで XML オブジェクトに関連付けられている名前空間宣言を列挙します。 次の例は、XML オブジェクトの名前空間宣言を出力します。 var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; for (var i:uint = 0; i < xml.namespaceDeclarations().length; i++) { var ns:Namespace = xml.namespaceDeclarations()[i]; var prefix:String = ns.prefix; if (prefix == "") { prefix = "(default)"; } trace(prefix + ":" , ns.uri); } trace() の出力は次のようになります。
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
 dc: http://purl.org/dc/elements/1.1/
 (default): http://purl.org/rss/1.0/
XML.namespace()
namespace パラメーターを指定しない場合、この XML オブジェクトの修飾名に関連付けられている名前空間を指定します。null , undefined、または名前空間を返します。 prefixStringnull照合する接頭辞です。 パラメーターを指定しない場合、この XML オブジェクトの修飾名に関連付けられている名前空間を指定します。prefix パラメーターを指定した場合、prefix パラメーターに一致し、XML オブジェクトのスコープ内にある名前空間を返します。このような条件に一致する名前空間がなかった場合、メソッドは undefined を返します。 次の例では、namespace() メソッドを使用して XML オブジェクトの名前空間を取得し、それを soap という名前の Namespace オブジェクトに割り当てます。次にその Namespace オブジェクトを使用して xml オブジェクト(xml.soap::Body[0])のプロパティを識別します。 var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; var soap:Namespace = xml.namespace(); trace(soap.prefix); // soap trace(soap.uri); // http://www.w3.org/2001/12/soap-envelope var body:XML = xml.soap::Body[0]; trace(body.namespace().prefix); // soap trace(xml.namespace().uri); // http://www.w3.org/2001/12/soap-envelope trace(body.namespace("wx").uri); // "http://example.com/weather" 次の例では、namespace() メソッドを使用し、ノードのデフォルトの名前空間と、特定の接頭辞("dc")の名前空間を取得します。 var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; trace(xml.namespace()); // http://www.w3.org/1999/02/22-rdf-syntax-ns# trace(xml.namespace("dc")); // http://purl.org/dc/elements/1.1/ trace(xml.namespace("foo")); // undefined nodeKind ノードのタイプ(テキスト、コメント、処理命令、属性、またはエレメント)を指定します。使用するノードタイプです。 String ノードのタイプ(テキスト、コメント、処理命令、属性、またはエレメント)を指定します。 この例では、5 つのすべてのノードタイプをトレースします。 XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var xml:XML = <example id="10"> <!-- this is a comment --> <?test this is a pi ?> and some text </example>; trace(xml.nodeKind()); // element trace(xml.children()[0].nodeKind()); // comment trace(xml.children()[1].nodeKind()); // processing-instruction trace(xml.children()[2].nodeKind()); // text trace(xml.@id[0].nodeKind()); // attribute attribute 識別子normalize XML オブジェクトとすべての子孫の XML オブジェクトについて、隣接するテキストノードを結合し、空のテキストノードを削除します。結果として作成される、正規化された XML オブジェクトです。 XML XML オブジェクトとすべての子孫の XML オブジェクトについて、隣接するテキストノードを結合し、空のテキストノードを削除します。 次の例は、normalize() メソッドを呼び出す場合の影響を示しています。 var xml:XML = <body></body>; xml.appendChild("hello"); xml.appendChild(" world"); trace(xml.children().length()); // 2 xml.normalize(); trace(xml.children().length()); // 1 parent XML オブジェクトの親を返します。親ノードの XML 参照です。XML オブジェクトに親がない場合は undefined です。 XML オブジェクトの親を返します。XML オブジェクトに親がない場合、メソッドは、undefined を返します。 次の例では、parent() メソッドを使用して、XML 構造内の特定エレメントの親エレメントを識別します。 var xml:XML = <body> <p id="p1">Hello</p> <p id="p2">Test: <ul> <li>1</li> <li>2</li> </ul> </p> </body>; var node:XML = xml.p.ul.(li.contains("1"))[0]; // == <ul> ... </ul> trace(node.parent().@id); // p2 prependChild 指定された child オブジェクトのコピーを、このエレメント内の既存のすべての XML プロパティの前に挿入します。結果として作成される XML オブジェクトです。 XMLvalueObject挿入するオブジェクトです。 指定された child オブジェクトのコピーを、このエレメント内の既存のすべての XML プロパティの前に挿入します。

XML ノードを削除するには、delete(XML)演算子を使用します。

次の例では、prependChild() メソッドを使用して、XML オブジェクトの子リストの先頭にエレメントを追加します。 var xml:XML = <body> <p>hello</p> </body>; xml.prependChild(<p>world</p>); trace(xml.p[0].toXMLString()); // <p>world</p> trace(xml.p[1].toXMLString()); // <p>hello</p>
delete(XML)演算子
processingInstructions name パラメーターを指定した場合、その name を持つ処理命令を含む XML オブジェクトのすべての子を列挙します。一致する子オブジェクトのリストです。 XMLListnameString*照合する処理命令の名前です。 name パラメーターを指定した場合、その name を持つ処理命令を含む XML オブジェクトのすべての子を列挙します。パラメーターを指定しなかった場合、メソッドは任意の処理命令を含む XML オブジェクトのすべての子を列挙します。 次の例では、processingInstructions() メソッドを使用して、XML オブジェクトの処理命令の配列を取得します。 XML.ignoreProcessingInstructions = false; var xml:XML = <body> foo <?xml-stylesheet href="headlines.css" type="text/css" ?> <?instructionX ?> </body>; trace(xml.processingInstructions().length()); // 2 trace(xml.processingInstructions()[0].name()); // xml-stylesheet propertyIsEnumerable XML オブジェクトに適用される for..in ステートメント内で反復処理されるプロパティセット内に、プロパティ p があるかどうかを確認します。for..in ステートメント内でプロパティを反復処理できる場合は true、それ以外の場合は false を返します。 BooleanpStringチェックするプロパティです。 プロパティ p が、XMLList オブジェクトに適用される for..in ステートメント内で反復処理されるプロパティセット内にあるかどうかを確認します。true は、toString(p) == "0" の場合にのみ返されます。 次の例では、propertyNameIsEnumerable() メソッドは、XML オブジェクトの場合に値 true を、値 0 に対してのみ返し、XMLList オブジェクトの場合は、XMLList オブジェクトの有効な各インデックス値に対して値 true を返しています。 var xml:XML = <body> <p>Hello</p> <p>World</p> </body>; trace(xml.propertyIsEnumerable(0)); // true trace(xml.propertyIsEnumerable(1)); // false for (var propertyName:String in xml) { trace(xml[propertyName]); } var list:XMLList = xml.p; trace(list.propertyIsEnumerable(0)); // true trace(list.propertyIsEnumerable(1)); // true trace(list.propertyIsEnumerable(2)); // false for (var propertyName:String in list) { trace(list[propertyName]); } removeNamespace このオブジェクトとすべての子孫に指定された名前空間を削除します。結果として作成される XML オブジェクトのコピーです。 XMLnsNamespace削除する名前空間です。 このオブジェクトとすべての子孫に指定された名前空間を削除します。名前空間がオブジェクトの修飾名またはオブジェクトの属性の修飾名によって参照されている場合、removeNamespaces() メソッドは名前空間を削除しません。 次の例は、XML オブジェクトから名前空間宣言を削除する方法を示しています。 var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; trace(xml.namespaceDeclarations().length); // 3 trace(xml.namespaceDeclarations()[0] is String); // var dc:Namespace = xml.namespace("dc"); xml.removeNamespace(dc); trace(xml.namespaceDeclarations().length); // 2 replace propertyName パラメーターで指定されたプロパティを、指定された value パラメーターに置き換えます。一致するプロパティが置き換えられた、結果として作成される XML オブジェクトです。 XMLpropertyNameObject数値、XML エレメントセットの無修飾名、XML エレメントセットの修飾名、またはアスタリスクワイルドカード("*")を使用できます。無修飾名は、デフォルトの名前空間内での XML エレメントの識別に使用します。 valueXML置換する値です。この値には、XML オブジェクト、XMLList オブジェクト、または toString() で変換可能な値を使用できます。 propertyName パラメーターで指定されたプロパティを、指定された value パラメーターに置き換えます。propertyName に一致するプロパティがない場合、XML オブジェクトは変更されません。 次の例では、1 番目のパラメーターに整数を指定して replace() メソッドを呼び出します。 var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace(1, <p>Bob</p>); trace(xml); この結果は、次の trace() 出力のようになります。

 <body>
     <p>Hello</p>
     <p>Bob</p>
     <hr/>
 </body>
 
次の例は、1 番目のパラメーターにストリングを指定して replace() メソッドを呼び出します。 var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace("p", <p>Hi</p>); trace(xml); この結果は、次の trace() 出力のようになります。

 <body>
     <p>Hi</p>
     <hr/>
 </body>;
 
次の例では、1 番目のパラメーターに QName を指定して replace() メソッドを呼び出します。 var xml:XML = <ns:body xmlns:ns = "myNS"> <ns:p>Hello</ns:p> <ns:p>World</ns:p> <hr/> </ns:body>; var qname:QName = new QName("myNS", "p"); xml.replace(qname, <p>Bob</p>); trace(xml); この結果は、次の trace() 出力のようになります。

 <ns:body xmlns:ns = "myNS">
     <p>Bob</p>
     <hr/>
 </ns:body>
 
次の例では、replace() メソッドを呼び出します(1 番目のパラメーターにストリング "*" を指定)。 var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace("*", <img src = "hello.jpg"/>); trace(xml); この結果は、次の trace() 出力のようになります。

 <body>
     <img src="hello.jpg"/>
 </body>
 
setChildren XML オブジェクトの子プロパティを、value パラメーターで指定された XML プロパティのセットに置き換えます。結果として作成される XML オブジェクトです。 XMLvalueObject置き換えに使用する XML プロパティです。単一の XML オブジェクト、または XMLList オブジェクトにすることができます。 XML オブジェクトの子プロパティを、value パラメーターで指定された XML プロパティのセットに置き換えます。 次の例では、まず、XML オブジェクトをパラメーターに指定して setChildren() メソッドを呼び出し、次に XMLList オブジェクトをパラメーターに指定して呼び出しています。 var xml:XML = <body> <p>Hello</p> <p>World</p> </body>; var list:XMLList = xml.p; xml.setChildren(<p>hello</p>); trace(xml); // <body> // <p>hello</p> // </body> xml.setChildren(list); trace(xml); // <body> // <p>Hello</p> // <p>World</p> // </body> setLocalName XML オブジェクトのローカル名を、指定された name パラメーターに変更します。nameStringローカル名に置き換える名前です。 XML オブジェクトのローカル名を、指定された name パラメーターに変更します。 次の例では、setLocalName() メソッドを使用して、XML エレメントのローカル名を変更します。 var xml:XML = <ns:item xmlns:ns="http://example.com"> toothbrush </ns:item>; xml.setLocalName("orderItem"); trace(xml.toXMLString()); // <ns:orderItem xmlns:ns="http://example.com">toothbrush</ns:orderItem> setName XML オブジェクトの名前を、指定された修飾名または属性名に設定します。nameStringオブジェクトの新しい名前です。 XML オブジェクトの名前を、指定された修飾名または属性名に設定します。 次の例では、setName() メソッドを使用して、XML エレメント名を変更します。 var xml:XML = <item> toothbrush </item>; xml.setName("orderItem"); trace(xml.toXMLString()); // <orderItem>toothbrush</orderItem> setNamespace XML オブジェクトに関連付けられている名前空間を設定します。nsNamespace新しい名前空間です。 XML オブジェクトに関連付けられている名前空間を設定します。 次の例では、ある XML オブジェクトに定義した soap 名前空間を使用して、別の XML オブジェクト(xml2)の名前空間に適用します。 var xml1:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <!-- ... --> </soap:Envelope>; var ns:Namespace = xml1.namespace("soap"); var xml2:XML = <Envelope> <Body/> </Envelope>; xml2.setNamespace(ns); trace(xml2); setSettings XML プロパティ ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent、および prettyPrinting を取得します。rest次の各プロパティを持つオブジェクトです。
  • ignoreComments
  • ignoreProcessingInstructions
  • ignoreWhitespace
  • prettyIndent
  • prettyPrinting
XML プロパティ ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndentprettyPrinting の値を設定します。デフォルト設定は次のとおりです。デフォルト設定は、setObj パラメーターが指定されていない場合に適用されます。
  • XML.ignoreComments = true
  • XML.ignoreProcessingInstructions = true
  • XML.ignoreWhitespace = true
  • XML.prettyIndent = 2
  • XML.prettyPrinting = true

注意:このメソッドは XML クラスのインスタンスには適用しません。次のコードのように、XML に適用します。XML.setSettings() .

次の例は、XML オブジェクトを設定する前に、コメントおよび処理命令を配置するカスタム設定を適用する方法、別のXML オブジェクトを設定する前にデフォルト設定に戻す方法、さらに別の XML オブジェクトの設定のために再度カスタム設定を適用する方法を示しています。 XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndentprettyPrintingdefaultSettings()settings()
settings プロパティ ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent、および prettyPrinting を取得します。次の XML プロパティを持つオブジェクトです。
  • ignoreComments
  • ignoreProcessingInstructions
  • ignoreWhitespace
  • prettyIndent
  • prettyPrinting
Object
プロパティ ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndentprettyPrinting を取得します。 次の例は、XML オブジェクトを設定する前に、コメントおよび処理命令を配置するカスタム設定を適用する方法、別のXML オブジェクトを設定する前にデフォルト設定に戻す方法、さらに別の XML オブジェクトの設定のために再度カスタム設定を適用する方法を示しています。 XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
XML.ignoreCommentsXML.ignoreProcessingInstructionsXML.ignoreWhitespaceXML.prettyIndentXML.prettyPrintingXML.defaultSettings()XML.setSettings()
text XML テキストノードを表す XML オブジェクトのすべての XML プロパティの XMLList オブジェクトを返します。プロパティのリストです。 XMLList XML テキストノードを表す XML オブジェクトのすべての XML プロパティの XMLList オブジェクトを返します。 次の例では、text() メソッドを使用して、XML オブジェクトのテキストノードを取得します。 var xml:XML = <body> text1 <hr/> text2 </body>; trace(xml.text()[0]); // text1 trace(xml.text()[1]); // text2 toString XML オブジェクトのストリング表現を返します。XML オブジェクトのストリング表現です。 String XML オブジェクトのストリング表現を返します。この変換の規則は、XML オブジェクトに単純内容が含まれるか、複合内容が含まれるかによって決まります。
  • XML オブジェクトに単純内容が含まれる場合、toString() は XML オブジェクトのストリング内容を返し、開始タグ、属性、名前空間宣言、および終了タグを削除します。
  • XML オブジェクトに複合内容が含まれる場合、toString() は、開始タグ、属性、名前空間宣言および終了タグを含み、XML オブジェクト全体を表す XML エンコードされた String を返します。

XML オブジェクト全体を毎回返すには、toXMLString() を使用します。

次の例は、XML オブジェクトに単純内容が含まれる場合に toString() メソッドによって何が返されるかを示しています。 var test:XML = <type name="Joe">example</type>; trace(test.toString()); //example 次の例は、XML オブジェクトに複合内容が含まれる場合に toString() メソッドによって何が返されるかを示しています。 var test:XML = <type name="Joe"> <base name="Bob"></base> example </type>; trace(test.toString()); // <type name="Joe"> // <base name="Bob"/> // example // </type>
XML.hasSimpleContent()XML.hasComplexContent()XML.toXMLString()
toXMLString XML オブジェクトのストリング表現を返します。XML オブジェクトのストリング表現です。 String XML オブジェクトのストリング表現を返します。toString() メソッドとは異なり、toXMLString() メソッドは、XML オブジェクトに単純内容が含まれるか、複合内容が含まれるかに関係なく、常に XML オブジェクトの開始タグ、属性、および終了タグを返します。toString() メソッドは、単純内容を持つ XML オブジェクトの開始タグ、属性、および終了タグを削除します。 次の例は、toString() メソッド(デフォルトでは、trace() メソッドのすべてのパラメーターに適用される)を使った場合と、toXMLString() メソッドを使った場合の違いを示しています。 var xml:XML = <p>hello</p>; trace(xml); // hello trace(xml.toXMLString()); // <p>hello</p> XML.toString()valueOf XML オブジェクトを返します。XML インスタンスのプリミティブ値です。 XML XML オブジェクトを返します。 次の例は、valueOf() メソッドで返された値が、ソースの XML オブジェクトと同じであることを示しています。 var xml:XML = <p>hello</p>; trace(xml.valueOf() === xml); // true ignoreComments XML オブジェクトがソースの XML データを解析する際に、XML コメントを無視するかどうかを決定します。Boolean XML オブジェクトがソースの XML データを解析する際に、XML コメントを無視するかどうかを決定します。デフォルトでは、コメントを無視します(true)。XML コメントを含めるには、このプロパティを false に設定します。ignoreComments プロパティは、myXMLObject.child(~~).toXMLString() などのメソッドの呼び出し時でなく、XML の解析時にのみ使用します。ソースの XML にコメントノードが含まれる場合、このノードは XML の解析時には保持されるか、または破棄されます。 この例は、XML.ignoreCommentsfalse に設定した場合と true に設定した場合の影響を示しています。 XML.ignoreComments = false; var xml1:XML = <foo> <!-- comment --> </foo>; trace(xml1.toXMLString()); // <foo><!-- comment --></foo> XML.ignoreComments = true; var xml2:XML = <foo> <!-- example --> </foo>; trace(xml2.toXMLString()); // <foo/> XML.child()XML.toXMLString()ignoreProcessingInstructions XML オブジェクトがソースの XML データを解析する際に、XML 処理命令を無視するかどうかを決定します。Boolean XML オブジェクトがソースの XML データを解析する際に、XML 処理命令を無視するかどうかを決定します。デフォルトでは、処理命令を無視します(true)。XML 処理命令を含めるには、このプロパティを false に設定します。ignoreProcessingInstructions プロパティは、myXMLObject.child(~~).toXMLString() などのメソッドの呼び出し時でなく、XML の解析時にのみ使用します。ソースの XML に処理命令ノードが含まれる場合、このノードは XML の解析時には保持されるか、または破棄されます。 この例は、XML.ignoreProcessingInstructionsfalse に設定した場合と true に設定した場合の影響を示しています。 XML.ignoreProcessingInstructions = false; var xml1:XML = <foo> <?exampleInstruction ?> </foo>; trace(xml1.toXMLString()); // <foo><?exampleInstruction ?></foo> XML.ignoreProcessingInstructions = true; var xml2:XML = <foo> <?exampleInstruction ?> </foo>; trace(xml2.toXMLString()); // <foo/> XML.child()XML.toXMLString()ignoreWhitespace テキストノードの先頭および最後の空白文字を、解析時に無視するかどうかを決定します。Boolean テキストノードの先頭および最後の空白文字を、解析時に無視するかどうかを決定します。デフォルトでは、空白文字を無視します(true)。テキストノードが 100% 空白文字で、ignoreWhitespace プロパティが true に設定されている場合、ノードは作成されません。テキストノード内の空白文字を表示するには、ignoreWhitespace プロパティを false に設定します。

XML オブジェクトを作成すると、ignoreWhitespace プロパティの現在の値がキャッシュされます。ignoreWhitespace を変更しても、既存の XML オブジェクトの動作は変化しません。

この例は、XML.ignoreWhitespacefalse に設定した場合と true に設定した場合の影響を示しています。 XML.ignoreWhitespace = false; var xml1:XML = <foo> </foo>; trace(xml1.children().length()); // 1 XML.ignoreWhitespace = true; var xml2:XML = <foo> </foo>; trace(xml2.children().length()); // 0
prettyIndent XML.prettyPrinting プロパティを true に設定した場合に、toString() メソッドと toXMLString() メソッドが適用するインデントの量を決定します。int toString() メソッドと toXMLString() メソッドが適用するインデントの量を決定します(XML.prettyPrinting プロパティを true に設定した場合)。インデントは、タブ文字でなく、空白文字で適用されます。デフォルト値は 2 です。 この例は、XML.prettyIndent 静的プロパティを設定した場合の影響を示しています。 var xml:XML = <foo><bar/></foo>; XML.prettyIndent = 0; trace(xml.toXMLString()); XML.prettyIndent = 1; trace(xml.toXMLString()); XML.prettyIndent = 2; trace(xml.toXMLString()); prettyPrintingtoString()toXMLString()prettyPrinting toString() メソッドと toXMLString() メソッドが、タグ間の空白文字を正規化するかどうかを決定します。Boolean toString() メソッドと toXMLString() メソッドが、タグ間の空白文字を正規化するかどうかを決定します。デフォルト値は true です。 この例は、XML.prettyPrinting 静的プロパティを設定した場合の影響を示しています。 var xml:XML = <foo><bar/></foo>; XML.prettyPrinting = false; trace(xml.toXMLString()); XML.prettyPrinting = true; trace(xml.toXMLString()); prettyIndenttoString()toXMLString()
Array 新しい配列を作成します。ゼロ以上の長さの配列です。 Arrayargs引数を渡さない場合は空の配列が作成され、整数の引数を 1 つ渡すと特定の長さの配列が作成されます。また、1 つのオブジェクトを渡すと、指定したオブジェクトを含む配列が作成されます。 新しい配列を作成します。配列は 0 以上の長さにするか、1 つの指定したオブジェクトで設定された配列にすることができます。
  • 引数なしで Array() を呼び出すと、空の配列が返されます。
  • 単一の整数の引数を指定して Array() を呼び出すと、指定された長さの配列が返されますが、その各エレメントの値は未定義です。
  • オブジェクトを指定して Array() を呼び出すことで、指定したオブジェクトの 1 つのエレメントを含む配列が返されます。
Array() 関数の使用は、Array クラスのコンストラクタを使用した配列を作成する場合と似ていますが、Array() 関数で指定できるパラメーター値は 1 個または 0 個です。複数の値を持つ新しい配列を設定する場合、Array() 関数は使用できません。

注意:Array() 関数を使用して新しい配列を作成し、複数の値をパラメーターとして渡して配列を設定しようとすると、コンパイラーエラーが発生します。Array() 関数では 1 つのパラメーターのみを指定できます。複数の値を持つ配列を作成および設定するには、代わりに Array クラスコンストラクターを使用します。

Array() 関数はオブジェクトの型を配列にキャストしません。引数がプリミティブな値ではない場合は、明示的な型の変換や型のキャストには as 演算子を使用します。詳細については、この項の「例」のセクションを参照してください。Array() 関数にパラメーターとしてオブジェクトを渡すと、オブジェクトをエレメントとして含む新しい配列が作成されます。

次の例は、引数がプリミティブな値でない場合の Array() 関数の動作を表しています。配列へのキャストの一般的な使用方法は、配列形式で値を保存する Object インスタンスの変換です。Array() を、Object 型またはその他のプリミティブでないデータ型の引数を使って呼び出した場合は、オブジェクトへの参照が新しい配列のエレメントに格納されます。つまり、渡された唯一の引数がオブジェクトである場合、そのオブジェクトへの参照が新しい配列の最初のエレメントになります。 var obj:Object = [ "a", "b", "c" ]; var newArray:Array = Array( obj ); trace(newArray == obj); // false trace(newArray[0] == obj); // true trace(newArray[0][0]) // a trace(newArray[0][1]) // b trace(newArray[0][2]) // c obj を配列にキャストするには、as 演算子を使用します。obj が有効な配列の場合は配列の参照が返され、そうでない場合は null が返されます。 var obj:Object = [ "a", "b", "c" ]; var newArray:Array = obj as Array; trace(newArray == obj); // true trace(newArray[0]); // a trace(newArray[1]); // b trace(newArray[2]); // c
Array クラスas 演算子
Boolean expression パラメーターをブール値に変換し、その値を返します。ブール値への変換の結果です。 BooleanexpressionObjectブール値に変換する式またはオブジェクトです。 expression パラメーターをブール値に変換し、その値を返します。

戻り値は、次の表に示すように、引数のデータ型および値によって異なります。

入力値戻り値0Boolean(0)falseNaNBoolean(NaN)false数値(0 でも NaN でもない)Boolean(4)true空のストリングBoolean("")false空ではないストリングBoolean("6")truenullBoolean(null)falseundefinedBoolean(undefined)falseObject クラスのインスタンスBoolean(new Object())true引数なしBoolean()false

ActionScript の以前のバージョンとは異なり、Boolean() 関数は Boolean クラスのコンストラクターと同じ結果を返します。

Number 指定した数値を Number 値に変換します。変換された数値の値です。 NumberexpressionObject数値に変換される値です。 指定した数値を Number 値に変換します。次の表に、さまざまな入力タイプの結果を示します。 入力タイプと値戻り値undefinedNumber(undefined)NaNnullNumber(null)0trueNumber(true)1falseNumber(false)0NaNNumber(NaN)NaN空のストリングNumber("")0Number に変換されるストリングNumber("5")数値(例:5Number に変換されないストリングNumber("5a")NaN Object ActionScript 3.0 ではすべての値がオブジェクトであるため、値に対して Object() を呼び出すと、その値が返されます。value パラメーターで指定された値です。 ObjectvalueObject変換するオブジェクトまたは数値、ストリング、またはブール値です。 ActionScript 3.0 ではすべての値がオブジェクトであるため、値に対して Object() を呼び出すと、その値が返されます。 String 指定されたパラメーターのストリング表現を返します。expression パラメーターに渡された値のストリング表現です。 StringexpressionObject ストリングに変換される式です。 指定されたパラメーターのストリング表現を返します。

次の表に、さまざまな入力タイプの結果を示します。

入力タイプと値戻り値undefinedundefinednull"null"true"true"false"false"NaN"NaN"StringStringObjectObject.toString()Number数値のストリング表現です。
Vector エレメントが指定されたデータ型のインスタンスである新しい Vector インスタンスを作成します。sourceArray 引数に、指定されたデータ型に変換できないエレメントが含まれる場合。 TypeErrorTypeErrorsourceArray 配列のエレメントによって作成された Vector インスタンス。 sourceArrayObjectエレメントが結果ベクターのエレメントとなる Array または Vector インスタンス。関連するデータ型が指定されたデータ型と同じ Vector インスタンスである引数の場合、引数は関数の結果として返されます。 エレメントが指定されたデータ型のインスタンスである新しい Vector インスタンスを作成します。この関数を呼び出す場合、type パラメーターを使用して結果ベクターのエレメント(ベクターのベース型)のデータ型を指定します。この関数は、Vector インスタンスを宣言する場合、または新しい Vector.<T>() コンストラクターを呼び出す場合に使用するシンタックスと同じシンタックスを使用します。 var v:Vector.<String> = Vector.<String>(["Hello", "World"]);

生成されるベクターには sourceArray 引数のエレメントの値が設定されます。sourceArray 引数が Vector.<T> インスタンス(ここで、T はベース型です)の場合、関数はそのベクターを返します。それ以外の場合、結果ベクターには sourceArray 配列(ベクター)のエレメントが設定されます。

どちらの場合も、sourceArray 引数のすべてのエレメントのデータ型が、関数呼出しで指定されたベース型 T と一致する必要があります。

sourceArray 引数が length 0 を持つ場合、関数は空のベクターを返します。

ベクターが sourceArray 引数として渡され、そのベース型が T ではない場合、または配列が渡され、そのエレメントがデータ型 T のすべてのインスタンスではない場合、ベース型の値の変換が試行されます。値が自動的に変換される場合、結果ベクターは変換された値を取り込みます。変換が行われない場合、エラーが発生します。

同様に、sourceArray 引数のエレメントがベース型 T のサブクラスのインスタンスの場合、呼出しは成功し、エレメントが生成されるベクターに追加されます。sourceArray 引数がベース型 T のサブクラスのベクターである場合でも、この機能は有効です。実際に、この機能は、ベース型 T を持つベクターを T のスーパークラスであるベース型を持つベクターに変換する唯一の方法です。

例えば、次のコードは、Strict モードの場合にコンパイルエラーを引き起こすか、実行時に TypeError を引き起こします。これは、Vector.<Sprite> を Vector.<DisplayObject> 変数に割り当てようとするためです(Sprite は DisplayObject のサブクラスです)。

var v1:Vector.<Sprite> = new Vector.<Sprite>(); v1[0] = new Sprite(); var v2:Vector.<DisplayObject> = v1;

次の代替バージョンのコードは、Vector.<Sprite> インスタンスを Vector.<DisplayObject> インスタンスに正常にコピーします。

var v1:Vector.<Sprite> = new Vector.<Sprite>(); v1[0] = new Sprite(); var v2:Vector.<DisplayObject> = Vector.<DisplayObject>(v1);
Vector クラス
XMLList オブジェクトを XMLList オブジェクトに変換します。変換するオブジェクトが保持していた値を含む XMLList オブジェクトです。 XMLListexpressionObjectXMLList オブジェクトに変換されるオブジェクトです。 オブジェクトを XMLList オブジェクトに変換します。

次の表に、さまざまな入力タイプでの戻り値を示します。

パラメータータイプ戻り値Boolean値は最初にストリングに変換され、次に XMLList オブジェクトに変換されます。Nullランタイムエラーが発生します(TypeError 例外)。Number値は最初にストリングに変換され、次に XMLList オブジェクトに変換されます。Object値が String、Number、または Boolean の場合にのみ XMLList に変換します。それ以外の場合は、ランタイムエラーが発生します(TypeError 例外)。String値は XMLList オブジェクトに変換されます。未定義ランタイムエラーが発生します(TypeError 例外)。XML値は XMLList オブジェクトに変換されます。XMLList入力値は変更されずに返されます。
XML()
XML オブジェクトを XML オブジェクトに変換します。変換するオブジェクトが保持していた値を含む XML オブジェクトです。 XMLexpressionObjectXML に変換されるオブジェクトです。 オブジェクトを XML オブジェクトに変換します。

次の表に、さまざまな入力タイプでの戻り値を示します。

パラメータータイプ戻り値Boolean値は最初にストリングに変換され、次に XML オブジェクトに変換されます。Nullランタイムエラーが発生します(TypeError 例外)。Number値は最初にストリングに変換され、次に XML オブジェクトに変換されます。Object値が String、Number、または Boolean の場合にのみ XML に変換されます。それ以外の場合は、ランタイムエラーが発生します(TypeError 例外)。String値が XML に変換されます。未定義ランタイムエラーが発生します(TypeError 例外)。XML入力値は変更されずに返されます。XMLListXMLList オブジェクトに XML 型のプロパティが 1 つだけ含まれている場合にのみ、XML オブジェクトを返します。それ以外の場合は、ランタイムエラーが発生します(TypeError 例外)。
XMLList()
decodeURIComponent エンコードされた URI コンポーネントをストリングにデコードします。encodeURIComponent 関数でエスケープされていたすべての文字が、アンエスケープされた表現に復元されたストリングです。 StringuriStringencodeURIComponent 関数でエンコードされたストリングです。 エンコードされた URI コンポーネントをストリングにデコードします。encodeURIComponent 関数でエスケープされていたすべての文字が、エンコードされていない表現に復元されたストリングを返します。

この関数は、URI ストリングの一部(URI コンポーネントと呼びます)のみの変換を目的とします。この点で、decodeURI() 関数とは異なります。URI コンポーネントは、コンポーネントセパレーターと呼ばれる特殊文字(: / ; ?)の間に表示される任意のテキストです。 URI コンポーネントの一般的な例は、"http" および "www.adobe.com" です。

この関数と decodeURI() のもう 1 つの重要な相違点は、この関数は URI コンポーネントを処理することを想定しているので、特殊なセパレーター文字(; / ? : @ & = + $ , #)を表すエスケープシーケンスが、デコードの必要がある通常のテキストとして扱われることです。

decodeURI()encodeURI()encodeURIComponent()
decodeURI エンコードされた URI をストリングにデコードします。encodeURI 関数でエスケープされていたすべての文字が、アンエスケープされた表現に復元されたストリングです。 StringuriStringencodeURI 関数でエンコードされたストリングです。 エンコードされた URI をストリングにデコードします。encodeURI 関数でエンコードされていたすべての文字が、エンコードされていない表現に復元されたストリングを返します。

次の表に、文字にデコードされないdecodeURI 関数において)エスケープシーケンスのセットを示します。この表にあるエスケープシーケンスをデコードするには、decodeURIComponent() を使用してください。

デコードされないエスケープシーケンス相当する文字%23#%24$%26&%2B+%2C,%2F/%3A:%3B;%3D=%3F?%40@
package { import flash.display.Sprite; public class DecodeURIExample extends Sprite { public function DecodeURIExample() { var uri:String = "http://www.example.com/application.jsp?user=<user name='some user'></user>"; var encoded:String = encodeURI(uri); var decoded:String = decodeURI(encoded); trace(uri); // http://www.example.com/application.jsp?user=<user name='some user'></user> trace(encoded); // http://www.example.com/application.jsp?user=%3Cuser%20name='some%20user'%3E%3C/user%3E trace(decoded); // http://www.example.com/application.jsp?user=<user name='some user'></user> } } }
decodeURIComponent()encodeURI()encodeURIComponent()
encodeURIComponent ストリングを有効な URI コンポーネントにエンコードします。StringuriString ストリングを有効な URI コンポーネントにエンコードします。URI のサブストリングをストリングに変換します。基本文字の非常に小さなグループに属していない限り、すべての文字が UTF-8 エスケープシーケンスとしてエンコードされます。

encodeURIComponent() 関数は、URI ストリングの一部(URI コンポーネントと呼びます)のみの変換を目的とします。この点で、encodeURI() 関数とは異なります。URI コンポーネントは、コンポーネントセパレーターと呼ばれる特殊文字(: / ; ?)の間に表示される任意のテキストです。 URI コンポーネントの一般的な例は、"http" および "www.adobe.com" です。

この関数と encodeURI() のもう 1 つの重要な相違点は、この関数は URI コンポーネントを処理することを想定しているので、特殊なセパレーター文字(; / ? : @ & = + $ , #)が、エンコードの必要がある通常のテキストとして扱われることです。

次の表に、UTF-8 エスケープシーケンスに変換されないencodeURIComponent 関数で変換されない)すべての文字を示します。

エンコードされない文字0 1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z- _ . ! ~ ~~ ' ( )
decodeURI()decodeURIComponent()encodeURI()
encodeURI ストリングを有効な URI(Uniform Resource Identifier)にエンコードします。特定の文字が UTF-8 エスケープシーケンスとしてエンコードされているストリングです。 StringuriString完全な URI を表すストリングです。 ストリングを有効な URI(Uniform Resource Identifier)にエンコードします。完全 URI をストリングに変換します。基本文字の小さなグループに属していない限り、すべての文字が UTF-8 エスケープシーケンスとしてエンコードされます。

次の表に、UTF-8 エスケープシーケンスに変換されないencodeURI 関数で変換されない)すべての文字を示します。

エンコードされない文字0 1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z; / ? : @ & = + $ , #- _ . ! ~ ~~ ' ( )
package { import flash.display.Sprite; public class EncodeURIExample extends Sprite { public function EncodeURIExample() { var uri:String = "http://www.example.com/application.jsp?user=<user name='some user'></user>"; var encoded:String = encodeURI(uri); var decoded:String = decodeURI(encoded); trace(uri); // http://www.example.com/application.jsp?user=<user name='some user'></user> trace(encoded); // http://www.example.com/application.jsp?user=%3Cuser%20name='some%20user'%3E%3C/user%3E trace(decoded); // http://www.example.com/application.jsp?user=<user name='some user'></user> } } }
decodeURI()decodeURIComponent()encodeURIComponent()
escape パラメーターをストリングに変換し、URL エンコード形式にエンコードします。この場合、英数字以外のほとんどの文字は % が付いた 16 進シーケンスで置き換えられます。URL エンコードされたストリングです。 StringstrStringストリングに変換し、URL エンコードする対象の式です。 パラメーターをストリングに変換し、URL エンコード形式にエンコードします。この場合、英数字以外のほとんどの文字は % が付いた 16 進シーケンスで置き換えられます。URL エンコードされたストリング内のパーセント記号(%)は、エスケープ文字の開始を表すもので、剰余演算子(%)ではありません。

次の表に、エスケープシーケンスに変換されないescape() 関数で変換されない)すべての文字を示します。

エンコードされない文字0 1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z@ - _ . ~~ + /

注意:特殊なセパレーター文字(@ + /)を通常のテキストとしてエンコードするには、escape() 関数ではなく encodeURIComponent() 関数を使用します。

unescape()encodeURIComponent()
int 指定した数値を整数値に変換します。変換された整数値です。 intvalueNumber整数に変換される値です。 指定した数値を整数値に変換します。10 進数値は小数点で切り捨てられます。 uint()isFinite 値が有限大である場合は true を返し、Infinity または -Infinity である場合は false を返します。有限大である場合は true を返し、無限大または負の無限大である場合は false を返します。 BooleannumNumber有限大または無限大として評価する数値です。 値が有限の場合は true を返します。false を返すのは、値が Infinity または -Infinity である場合です。Infinity または -Infinity は、0 による除算などの数学的なエラーの可能性を示します。 isNaN 値が NaN(非数)の場合は、true を返します。true を返します(値が NaN(非数)の場合)。それ以外の場合は、false を返します。 BooleannumNumber評価する数値または数式です。 true を返します(値が NaN(非数)の場合)。isNaN() 関数は、数式が正常に数値に評価されるかどうかをチェックするのに便利です。isNaN() は、parseInt() 関数および parseFloat() 関数から返された値をチェックするために最もよく使用されます。NaN 値は、"非数" の値を表す Number データ型の特殊メンバーです。

注意:NaN 値は、int または uint データ型のメンバーではありません。

次の表に、さまざまな入力タイプや値での isNaN() の戻り値を示します。 コンパイラー警告が Strict モードに設定されている場合、次の演算の一部がコンパイラー警告を生成する場合があります。

入力タイプと値戻り値0 を 0 で除算isNaN(0/0)trueゼロ以外の数値を 0 で除算isNaN(5/0)false負の数の平方根isNaN(Math.sqrt(-1))true0 ~ 1 以外の数値のアークサインisNaN(Math.asin(2))trueNumber に変換できるストリングisNaN("5")falseNumber に変換できないストリングisNaN("5a")true
isXMLName 指定されたストリングが、XML エレメントまたは属性に対して有効な名前かどうかを判断します。true を返します(str 引数が有効な XML 名である場合)。それ以外の場合は false を返します。 BooleanstrString評価するストリングです。 指定されたストリングが、XML エレメントまたは属性に対して有効な名前かどうかを判断します。 parseFloat ストリングを浮動小数に変換します。数値または NaN(非数)です。 NumberstrString読み込まれて浮動小数に変換されるストリングです。 ストリングを浮動小数に変換します。この関数は、初期数の一部でない文字に達するまで、ストリング内の数値を読み取り(解析し)、結果を返します。ストリングが解析できる数値で始まっていない場合、parseFloat()NaN を返します。有効な整数の前の空白は、後続の非数値文字と同様に無視されます。 parseInt ストリングを整数に変換します。数値または NaN(非数)です。 NumberstrString整数に変換されるストリングです。 radixuint0解析する数値の基数を表す整数です。有効な値は、2 ~ 36 です。 ストリングを整数に変換します。パラメーターで指定されたストリングを数値に変換できない場合は NaN を返します。0x から始まる整数は、16 進数と解釈されます。ActionScript の以前のバージョンと異なり、0 から始まる整数は 8 進数と解釈されません。8 進数には 8 の基数を指定する必要があります。有効な整数の前の空白およびゼロは、後続の非数値文字と同様に無視されます。 trace デバッグ中に式を表示、またはログファイルに書き込みます。arguments評価する 1 つ以上のカンマ区切りの式です。複数の式がある場合、出力では各式の間に空白が挿入されます。 デバッグ中に式を表示、またはログファイルに書き込みます。単一のトレースステートメントに複数の引数を指定できます。trace ステートメント内の引数に String 以外のデータ型が含まれている場合は、trace 関数によって、そのデータ型に関連付けられた toString() メソッドが呼び出されます。例えば、引数がブール値の場合、trace 関数で Boolean.toString() が呼び出され、戻り値が表示されます。 次の例は、クラス TraceExample を使用して、trace() メソッドで単純なストリングをプリントする方法を示しています。通常、メッセージは "デバッグ" コンソールに出力されます。 package { import flash.display.Sprite; public class TraceExample extends Sprite { public function TraceExample() { trace("Hello World"); } } } uint 指定した数値を符号なし整数値に変換します。変換された整数値です。 uintvalueNumber整数に変換される値です。 指定した数値を符号なし整数値に変換します。10 進数値は小数点で切り捨てられます。

次の表に、さまざまな入力タイプや値での uint() の戻り値を示します。

入力タイプと値戻り値undefineduint(undefined)0nulluint(null)00uint(0)0NaNuint(NaN)0正の浮動小数uint(5.31)切り捨てられた符号なし整数(例:5負の浮動小数uint(-5.78)切り捨てて整数にし、負の整数の規則を適用します。負の整数uint(-5)uint.MAX_VALUE と負の整数の合計(例えば、uint.MAX_VALUE + (-5)trueuint(true)1falseuint(false)0空のストリングuint("")0Number に変換されるストリングuint("5")数値Number に変換されないストリングuint("5a")0
int()
unescape パラメーター str をストリングとして評価し、URL エンコードされた形式からストリングをデコード(すべての 16 進シーケンスを ASCII 文字に変換)して、ストリングを返します。URL エンコードされたパラメーターからデコードしたストリングです。 StringstrString16 進シーケンスをエスケープするストリングです。 パラメーター str をストリングとして評価し、URL エンコードされた形式からストリングをデコード(すべての 16 進シーケンスを ASCII 文字に変換)して、ストリングを返します。 -Infinity 負の Infinity を表す特殊な値です。Number 負の Infinity を表す特殊な値です。この定数の値は、Number.NEGATIVE_INFINITY と同じです。 0 で除算した結果が -Infinity になるのは、除数が負の数値である場合のみです。 trace(0 / 0); // NaN trace(7 / 0); // Infinity trace(-7 / 0); // -Infinity Number.NEGATIVE_INFINITYInfinity 正の Infinity を表す特殊な値です。Number 正の Infinity を表す特殊な値です。この定数の値は、Number.POSITIVE_INFINITY と同じです。 0 で除算した結果が Infinity になるのは、除数が正の数値である場合のみです。 trace(0 / 0); // NaN trace(7 / 0); // Infinity trace(-7 / 0); // -Infinity Number.POSITIVE_INFINITYNaN "非数"(NaN)の値を表す Number データ型の特殊メンバーです。Number "非数"(NaN)の値を表す Number データ型の特殊メンバーです。数式の結果が数値として表現できない値になる場合、その結果は NaN になります。次のリストでは、結果が NaN になる一般的な式について説明します。
  • 除数も 0 の場合にのみ、0 による除算の結果が NaN になります。 除数が 0 よりも大きい場合は、0 による除算の結果は Infinity になります。 除数が 0 よりも小さい場合は、0 による除算の結果は -Infinity になります。
  • 負の数の平方根です。
  • 有効な範囲(0 ~ 1)外の数値のアークサインです。
  • Infinity から減算された Infinity です。
  • Infinity または -InfinityInfinity または -Infinity で除算)です。
  • 0 で乗算された Infinity または -Infinity です。

NaN 値は、int または uint データ型のメンバーではありません。

NaN 値は、NaN を含む他のどの値とも等しいと見なされないため、等価演算子を使用して、式が NaN であるかどうかをテストできません。数値が NaN 関数かどうかを判別するには、isNaN() を使用します。

isNaN()Number.NaN
undefined 初期化されていない型指定のない変数、または初期化されていないダイナミックオブジェクトプロパティに適用される特殊な値です。 初期化されていない型指定のない変数、または初期化されていないダイナミックオブジェクトプロパティに適用される特殊な値です。ActionScript 3.0 では、型指定のない変数のみが値 undefined を保持できます。ただしこれは、ActionScript 1.0 および ActionScript 2.0 には当てはまりません。例えば、次の変数は型指定も初期化も行われていないため、いずれも undefined になります。
  • var foo;
  • var bar:~~;

また、undefined 値は初期化されていない、または定義されていないダイナミックオブジェクトのプロパティにも適用されます。例えば、オブジェクトが Object クラスのインスタンスの場合、動的に割り当てられたプロパティに値が割り当てられるまで、そのプロパティの値は undefined です。

さまざまな関数で undefined が使用されている場合は、結果が異なります。

  • String(undefined) によって返される値は "undefined" です(undefined はストリングに変換されます)。
  • Number(undefined) によって返される値は NaN です。
  • int(undefined) および uint(undefined) によって返される値は 0 です。
  • Object(undefined) によって返される値は、新しい Object インスタンスです。
  • undefined を型指定されている変数に割り当てると、その値はそのデータ型のデフォルト値に変換されます。

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

次の例では、型指定されていない変数 myVar が宣言されていますが、初期化されていません。変数の型が指定されていないため、myVar の値は undefined です。変数に型注釈があるか、または特殊な(~~)型指定されていない注釈(var myVar:~~;)が使用されているかは関係ありません。 // trace value of untyped and uninitialized variable var myVar; trace(myVar); // undefined 同じ規則が、初期化されていないダイナミックオブジェクトのプロパティに適用されます。例えば、インスタンス obj(ダイナミッククラス A)が指定された場合、obj.propNameobj インスタンスの初期化されていないプロパティ)の値は、undefined です。 dynamic class A {} var obj:A = new A() // trace undefined property of obj trace(obj.propName); // undefined
null
uint uint クラスには、32 ビットの符号なし整数を表すデータ型を操作するメソッドがあります。Object uint クラスには、32 ビットの符号なし整数を表すデータ型を操作するメソッドがあります。符号なし整数は正のみなので、最大値は int クラスの値の 2 倍になります。

uint クラスで表される値の範囲は、0 ~ 4,294,967,295(2^32-1)です。

uint オブジェクトは、uint 型の変数を宣言して変数にリテラル値を割り当てることによって作成することができます。uint 型の変数のデフォルト値は 0 です。

uint クラスは主に、int データ型が適さない、ピクセルカラー値(ARGB および RGBA)やその他の状況で役に立ちます。例えば、255 のアルファ値で白のカラー値を表す数値 0xFFFFFFFF は int 値の有効な範囲外なので、int データ型を使用して表すことはできません。

次の例では、uint オブジェクトを作成し、 toString() メソッドを呼び出します。

 var myuint:uint = 1234;
 trace(myuint.toString()); // 1234
 

次の例では、コンストラクターを使用せずに、MIN_VALUE プロパティの値を変数に割り当てます。

 var smallest:uint = uint.MIN_VALUE;
 trace(smallest.toString()); // 0
 
次の例では、uint ifor ループ内で宣言し、0 ~ 9 の桁を出力します(uint のデフォルトが 0 のため)。 package { import flash.display.Sprite; public class UintExample extends Sprite { public function UintExample() { for(var i:uint; i < 10; i++) { trace(i); } } } }
intNumberuint 新しい uint オブジェクトを作成します。numObject作成される uint オブジェクトの数値、または数値に変換される値です。num を指定しない場合のデフォルト値は 0 です。 新しい uint オブジェクトを作成します。uint 型の変数を作成して、リテラル値を割り当てることができます。new uint() コンストラクターは、主にプレースホルダーとして使用します。uint オブジェクトは、パラメーターをプリミティブ値に変換する uint() 関数とは異なります。 次のコードは、2 つの新しい uint オブジェクトを作成します。1 つ目はリテラル値を割り当てて、2 つ目はコンストラクター関数を使用して作成します。
	 var n1:uint = 3;
	 var n2:uint = new uint(10);
	 
toExponential 数値のストリング表現を指数表現で返します。fractionDigits 引数が 0 ~ 20 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringfractionDigitsuint必要な小数の桁数を表す 0 ~ 20 の整数です。 数値のストリング表現を指数表現で返します。ストリングには、fractionDigits パラメーターでの指定に従って小数点の前に 1 桁、小数点以下に最大 20 桁が含まれます。 次の例は、toExponential(2) を使用して、ストリングを指数表現で返す方法を示しています。 var num:Number = 315003; trace(num.toExponential(2)); // 3.15e+5 toFixed 数値のストリング表現を固定小数点表現で返します。fractionDigits 引数が 0 ~ 20 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringfractionDigitsuint必要な小数の桁数を表す 0 ~ 20 の整数です。 数値のストリング表現を固定小数点表現で返します。固定小数点表現とは、fractionDigits パラメーターの指定に従って、小数点以下の特定の桁数をストリングに含めたものです。fractionDigits パラメーターの有効範囲は 0 ~ 20 です。 この範囲外の値を指定すると例外がスローされます。 次の例は、toFixed(3) を使用して、小数点以下 3 桁に四捨五入したストリングを返す方法を示しています。 var num:Number = 7.31343; trace(num.toFixed(3)); // 7.313 次の例は、toFixed(2) を使用して、末尾にゼロを追加したストリングを返す方法を示しています。 var num:Number = 4; trace(num.toFixed(2)); // 4.00 toPrecision 数値のストリング表現を指数表現または固定小数点表現で返します。precision 引数が 1 ~ 21 の範囲を超える場合、例外がスローされます。 RangeErrorRangeErrorStringprecisionuint結果のストリングに必要な桁数を表す 1 ~ 21 の整数です。 数値のストリング表現を指数表現または固定小数点表現で返します。ストリングには、precision パラメーターで指定された桁数が含まれます。 次の例は、toPrecision(3) を使用して、ストリングを 3 桁のみで返す方法を示しています。指数表現は必要ないので、ストリングは固定小数点表現で表されます。 var num:Number = 31.570; trace(num.toPrecision(3)); // 31.6 次の例は、toPrecision(3) を使用して、ストリングを 3 桁のみで返す方法を示しています。結果の数値には固定小数点表現に必要な桁が含まれないため、ストリングは指数表現で表されます。 var num:Number = 4000; trace(num.toPrecision(3)); // 4.00e+3 toString uint オブジェクトのストリング表現を返します。uint オブジェクトのストリング表現です。 Stringradixuint数値からストリングへの変換に使用する基数(2 ~ 36)を指定します。radix パラメーターを指定しない場合、デフォルト値は 10 です。 uint オブジェクトのストリング表現を返します。 次の例では、radix パラメーターに 2 および 8 を使用し、数値 9 に対応する表現を含むストリング値を返します。
	 var myuint:uint = 9;
	 trace(myuint.toString(2)); // 1001
	 trace(myuint.toString(8)); // 11
	 
次の例では、16 進数の値を作成します。
	 var r:uint = 250;
	 var g:uint = 128;
	 var b:uint = 114;
	 var rgb:String = "0x" + r.toString(16) + g.toString(16) + b.toString(16);
	 trace(rgb); // 0xfa8072 
	 
valueOf 指定された uint オブジェクトのプリミティブな uint 型の値を返します。この uint オブジェクトのプリミティブな uint 型の値です。 uint 指定された uint オブジェクトのプリミティブな uint 型の値を返します。 次の例では、numSocks オブジェクトのプリミティブ値を出力します。
	 var numSocks:uint = 2;
	 trace(numSocks.valueOf()); // 2
	 
MAX_VALUE 表現可能な 32 ビット符号なし整数の最大値、4,294,967,295 です。4294967295uint 表現可能な 32 ビット符号なし整数の最大値、4,294,967,295 です。 次の ActionScript は、uint の表現可能な最大値および最小値を表示します。
	trace("uint.MIN_VALUE = " + uint.MIN_VALUE);
	trace("uint.MAX_VALUE = " + uint.MAX_VALUE);
	

値は次のとおりです。

	uint.MIN_VALUE = 0
	uint.MAX_VALUE = 4294967295
	
MIN_VALUE 表現可能な符号なし整数の最小値、0 です。0uint 表現可能な符号なし整数の最小値、0 です。 次の ActionScript は、uint の表現可能な最大値および最小値を表示します。
	 trace("uint.MIN_VALUE = " + uint.MIN_VALUE);
	 trace("uint.MAX_VALUE = " + uint.MAX_VALUE);
	 

値は次のとおりです。

	 uint.MIN_VALUE = 0
	 uint.MAX_VALUE = 4294967295
	 
Vector Vector クラスを使用すると、ベクターにアクセスして操作することができます。ベクターとはすべてのエレメントが同じデータ型を持つ配列です。ベクターを定義できます(型指定された配列)。 Object Vector クラスを使用すると、ベクターにアクセスして操作することができます。ベクターとはすべてのエレメントが同じデータ型を持つ配列です。ベクターのエレメントのデータ型は、ベクターのベース型と呼ばれています。ベース型は、ビルトインクラスとカスタムクラスを含む任意のクラスです。ベース型は、Vector 変数の宣言時とクラスコンストラクターの呼び出しによるインスタンスの作成時に指定されます。

配列の場合と同様に、配列アクセス演算子([])を使用すると、ベクターエレメントの値を設定または取得できます。また、いくつかのベクターのメソッドは、エレメントの値を設定および取得するためのメカニズムを備えています。これらのメソッドには、push()pop()shift()unshift() などがあります。Vector オブジェクトのプロパティとメソッドは、配列のプロパティとメソッドと似ており、ほとんどの場合は同じです。すべてのエレメントが同じデータ型を持つ配列を使用する場合には、通常は Vector インスタンスが推奨されます。ただし、Vector インスタンスは密な配列であり、インデックスごとに値(または null)を持つ必要があります。Array インスタンスにはこの制限はありません。

ベクターのベース型は、後置型パラメーターシンタックスを使用して指定されます。型パラメーターシンタックスは、ドット(.)、左山括弧(<)、クラス名、右山括弧(>)で構成されるシーケンスです。次に例を示します。

この例の最初の行では、変数 v が Vector.<String> インスタンスとして宣言されます。 つまり、この行は String インスタンスのみ保持することができ、String インスタンスのみ取得できるベクター(配列)を表します。2 番目の行は、同じ Vector 型(つまり、エレメントがすべて String オブジェクトであるベクター)のインスタンスを構築し、v に割り当てます。

var v:Vector.<String>; v = new Vector.<String>();

Vector.<T> データ型によって宣言された変数は、同じベース型 T を使用して構築された Vector インスタンスのみ格納することができます。例えば、新しい Vector.<String>() を呼び出すことによって構築されたベクターは、Vector.<int> データ型によって宣言された変数に割り当てることはできません。ベース型は完全に一致する必要があります。例えば、次のコードは、オブジェクトのベース型が宣言された変数のベース型と同じでないため(Sprite が DisplayObject のサブクラスであっても)コンパイルされません。

// This code doesn't compile even though Sprite is a DisplayObject subclass var v:Vector.<DisplayObject> = new Vector.<Sprite>();

ベース型 T を持つベクターを T のスーパークラスのベクターに変換するには、Vector() グローバル関数を使用します。

データ型の制限に加えて、Vector クラスには Array クラスと区別される次のようなその他の制限があります。

  • ベクターは高密度の配列です。位置 1 ~ 6 に値がない場合でもインデックス 0 と 7 に値を指定することができる配列とは異なり、ベクターでは各インデックスに値(または null)を指定する必要があります。
  • ベクターは、オプションで固定長、つまり含まれるエレメントの数を変更できないように設定できます。
  • ベクターのエレメントへのアクセスは範囲チェックが行われます。最後のエレメント(length - 1)より長いインデックスから値を読み取ることはできません。現在の最後のインデックスを越えて値を設定することはできません(つまり、既存のインデックスまたはインデックス [length] でのみ値を設定することができます)。

このような制限の結果として、Vector インスタンスには、エレメントがすべて単一クラスのインスタンスとなる Array インスタンスにはない、次の 3 つの主要な利点があります。

  • パフォーマンス:Array インスタンスを使用するよりも、Vector インスタンスを使用する方が、配列エレメントのアクセスと繰り返しが高速になります。
  • 型の安全性:strict モードでは、コンパイラーでデータ型エラーを特定できます。このようなデータ型エラーの例としては、ベクターに不正なデータ型の値を割り当てたり、ベクターから値を読み取るときに誤ったデータ型を要求したりすることが挙げられます。ただし、push() メソッドまたは unshift() メソッドを使用してベクターに値を追加する場合、引数のデータ型はコンパイル時にチェックされないことに注意してください。その代わりに、実行時にチェックされます。
  • 信頼性:実行時範囲チェック(固定長チェック)は、Array に対する信頼性を著しく高めます。
[] array accessVector() グローバル関数Array クラスVector 指定されたベース型を持つベクターを作成します。lengthuint0ベクターの初期長さ(エレメント数)です。このパラメーターが 0 より大きい場合、指定された数のベクターエレメントが作成され、ベース型に適したデフォルト値が設定されます(参照型の場合、null)。 fixedBooleanfalseベクターの長さが固定されるか(true)、または変更できるか(false)を指定します。この値は fixed プロパティを使用して設定することもできます。 指定されたベース型を持つベクターを作成します。

Vector.<T>() コンストラクターを呼び出すときに、型パラメーターシンタックスを使用してベース型を指定します。型パラメーターシンタックスは、ドット(.)、左山括弧(<)、クラス名、右山括弧(>)で構成されるシーケンスです。次に例を示します。

var v:Vector.<String> = new Vector.<String>();

配列または他のベクター(異なるベース型を持つベクターなど)から Vector インスタンスを作成するには、Vector() グローバル関数を使用します。

事前に値が設定された Vector インスタンスを作成するには、後述するパラメーターではなく、次のシンタックスを使用します。

// var v:Vector.<T> = new <T>[E0, ..., En-1 ,]; // For example: var v:Vector.<int> = new <int>[0,1,2,];

このシンタックスには、次の情報が適用されます。

  • このシンタックスは、Flash Professional CS5 以降、Flash Builder 4 以降および Flex 4 以降でサポートされます。
  • 末尾のカンマは省略してもかまいません。
  • 配列内の空白のアイテムはサポートされていません。var v:Vector.<int> = new <int>[0,,2,] のようなステートメントは、コンパイラーエラーをスローします。
  • Vector インスタンスのデフォルトの長さは指定できません。指定はできませんが、デフォルトの長さは初期化リスト内のエレメントの数と同じになります。
  • Vector インスタンスを固定長にするかどうかは指定できません。代わりに、fixed プロパティを使用します。
  • 値として渡されたアイテムが指定した型と一致しない場合、データの損失またはエラーが発生する可能性があります。次に実際の使用例を示します。
  • var v:Vector.<int> = new <int>[4.2]; // compiler error when running in strict mode trace(v[0]); //returns 4 when not running in strict mode

fixedVector() グローバル関数
concat パラメーターで指定されたエレメントをベクター内のエレメントと連結して、新しいベクターを作成します。引数がベース型のインスタンスではない場合で、ベース型に変換できない場合。 TypeErrorTypeErrorこのベクターの後にパラメーターのエレメントが続くベクターと同じベース型を持つベクター。 args新しいベクターに連結されるこのベクターのベース型の 1 つ以上の値。 パラメーターに指定されたエレメントを連結します。 パラメーターで指定されたエレメントをベクター内のエレメントと連結して、新しいベクターを作成します。パラメーターでベクターを指定すると、そのベクターのエレメントが連結されます。パラメーターを渡さない場合、新しいベクターは元のベクターの複製(浅い複製)になります。 every 指定された関数について false を返すアイテムに達するまで、ベクター内の各アイテムにテスト関数を実行します。ブール値です。指定された関数について、ベクター内のいずれかのアイテムが true を返す場合は true を返します。それ以外の場合は false を返します。 BooleancallbackFunctionベクター内の各アイテムについて実行する関数です。この関数は、ベクターの現在のアイテム、アイテムのインデックス、および Vector オブジェクトの 3 つの引数によって呼び出されます。
function callback(item:T, index:int, vector:Vector.<T>):Boolean {
       // your code here
    }
    

コールバック関数はブール値を返します。

thisObjectObjectnull関数が呼び出されるときにコールバック関数の識別子 this が参照するオブジェクトです。
指定された関数について false を返すアイテムに達するまで、ベクター内の各アイテムにテスト関数を実行します。 このメソッドを使用して、ベクター内のすべてのアイテムがある基準(値が特定の数値より小さいなど)を満たしているかどうかを判別できます。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。これは、このメソッドの最も一般的な使用方法です。

ただし、Flash Professional を使用して、メインタイムライン上のフレームで関数を作成し、それを異なる this コンテキストで呼び出す必要があるとします。

    function myFunction(item:T, index:int, vector:Vector.<T>):Boolean {
       // your code here
    }
    

次に、every() メソッドを、myVector というベクターに対して使用するとします。

    myVector.every(myFunction, someObject);
    

myFunction は SWF ファイルのメインクラスのメンバーなので、異なる this コンテキストでは実行できません。このコードを実行すると、Flash ランタイムはエラーをスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

    var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean {
        //your code here
    };
    myVector.every(myFunction, someObject);
    
Vector.some()
filter ベクター内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しいベクターを返します。元のベクター内のアイテムで callback 関数が true を返したものをすべて含む新しいベクター。 callbackFunctionベクター内の各アイテムについて実行する関数です。この関数は、ベクターの現在のアイテム、アイテムのインデックス、および Vector オブジェクトの 3 つの引数によって呼び出されます。
function callback(item:T, index:int, vector:Vector.<T>):Boolean;
thisObjectObjectnull関数が呼び出されるときにコールバック関数の識別子 this が参照するオブジェクトです。
ベクター内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しいベクターを返します。false を返すアイテムは、結果ベクターに含められません。戻りベクターのベース型はメソッドが呼び出されるベクターのベース型と一致します。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。これは、このメソッドの最も一般的な使用方法です。

ただし、Flash Professional を使用して、メインタイムライン上のフレームで関数を作成し、それを異なる this コンテキストで呼び出す必要があるとします。

     function myFunction(item:T, index:int, vector:Vector.<T>):Boolean {
        // your code here
     }
     

次に、filter() メソッドを、myVector というベクターに対して使用するとします。

     var result:Vector.<T> = myVector.filter(myFunction, someObject);
     

myFunction は SWF ファイルのメインクラスのメンバーなので、異なる this コンテキストでは実行できません。このコードを実行すると、Flash ランタイムはエラーをスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean {
         //your code here
     };
     myVector.filter(myFunction, someObject);
     
Vector.map()
forEach ベクター内の各アイテムについて関数を実行します。callbackFunctionベクター内の各アイテムについて実行する関数です。この関数は、ベクターの現在のアイテム、アイテムのインデックス、および Vector オブジェクトの 3 つの引数によって呼び出されます。
function callback(item:T, index:int, vector:Vector.<T>):void;

関数呼び出しの戻り値は破棄されます。

thisObjectObjectnull関数が呼び出されるときにコールバック関数の識別子 this が参照するオブジェクトです。
ベクター内の各アイテムについて関数を実行します。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。これは、このメソッドの最も一般的な使用方法です。

ただし、Flash Professional を使用して、メインタイムライン上のフレームで関数を作成し、それを異なる this コンテキストで呼び出す必要があるとします。

     function myFunction(item:T, index:int, vector:Vector.<T>):void {
        // your code here
     }
     

次に、forEach() メソッドを、myVector というベクターに対して使用するとします。

     myVector.forEach(myFunction, someObject);
     

myFunction は SWF ファイルのメインクラスのメンバーなので、異なる this コンテキストでは実行できません。このコードを実行すると、Flash ランタイムはエラーをスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):void {
         //your code here
     };
     myVector.forEach(myFunction, someObject);
     
indexOf ベクター内のアイテムを検索し、アイテムのインデックス位置を返します。ベクター内のアイテムの 0 から始まるインデックス位置です。searchElement 引数が見つからなかった場合、戻り値は -1 です。 intsearchElementベクター内で検索するアイテムです。 fromIndexint0アイテムの検索を開始するベクター内の場所です。このパラメーターが負の場合、length + fromIndex として扱われます。つまり、検索は最後の -fromIndex アイテムから開始し、その位置から前方に向かってベクターの最後まで検索します。 ベクター内のアイテムを検索し、アイテムのインデックス位置を返します。アイテムは、厳密な等価(===)を使用してベクターエレメントと比較されます。 Vector.lastIndexOf()=== (strict equality)join ベクター内のエレメントをストリングに変換し、指定されたセパレーターをエレメント間に挿入し、エレメントを連結して、その結果をストリングとして返します。ストリングに変換されたベクターのエレメントで構成され、指定されたストリングで区切られているストリングです。 StringsepString,返されたストリング内のベクターエレメントを区切る文字またはストリングです。このパラメーターを省略すると、デフォルトのセパレーターとしてカンマが使用されます。 ベクター内のエレメントをストリングに変換します。 ベクター内のエレメントをストリングに変換し、指定されたセパレーターをエレメント間に挿入し、エレメントを連結して、その結果をストリングとして返します。ネストされたベクターは、join() メソッドに渡されるセパレーターで区切るのではなく、常にカンマ(,)で区切ります。 String.split()lastIndexOf ベクター内のアイテムを、指定されたインデックス位置から後方に向かって検索し、一致したアイテムのインデックス位置を返します。ベクター内のアイテムの 0 から始まるインデックス位置です。searchElement 引数が見つからなかった場合、戻り値は -1 です。 intsearchElementベクター内で検索するアイテムです。 fromIndexint0x7fffffffアイテムの検索を開始するベクター内の場所です。デフォルトは、許容される最大インデックス値です。つまり、検索はベクター内の最後のアイテムから開始されます。

このパラメーターが負の場合、length + fromIndex として扱われます。つまり、検索は最後の -fromIndex アイテムから開始し、その位置から後方に向かってインデックス 0 まで検索します。

ベクター内のアイテムを、指定されたインデックス位置から後方に向かって検索し、一致したアイテムのインデックス位置を返します。アイテムは、厳密な等価(===)を使用してベクターエレメントと比較されます。
Vector.indexOf()=== (strict equality)
map ベクター内の各アイテムについて関数を実行し、このベクター内の各アイテムに対する関数の呼び出しの結果に対応するアイテムの新しいベクターを返します。ベクター内の各アイテムに対する関数の呼び出しの結果が含まれる新しいベクターです。結果ベクターには、元のベクターと同じベース型と length が指定されます。 callbackFunctionベクター内の各アイテムについて実行する関数です。この関数は、ベクターの現在のアイテム、アイテムのインデックス、および Vector オブジェクトの 3 つの引数によって呼び出されます。
function callback(item:T, index:int, vector:Vector.<T>):T;
thisObjectObjectnull関数が呼び出されるときにコールバック関数の識別子 this が参照するオブジェクトです。
ベクター内の各アイテムについて関数を実行し、このベクター内の各アイテムに対する関数の呼び出しの結果に対応するアイテムの新しいベクターを返します。結果ベクターには、元のベクターと同じベース型と length が指定されます。結果ベクターのインデックス i のエレメントは、元のベクターのインデックス i のエレメントでの呼び出しの結果です。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。これは、このメソッドの最も一般的な使用方法です。

ただし、Flash Professional を使用して、メインタイムライン上のフレームで関数を作成し、それを異なる this コンテキストで呼び出す必要があるとします。

     function myFunction(item:Object, index:int, vector:Vector.<T>):T {
        // your code here
     }
     

次に、map() メソッドを、myVector というベクターに対して使用するとします。

     myVector.map(myFunction, someObject);
     

myFunction は SWF ファイルのメインクラスのメンバーなので、異なる this コンテキストでは実行できません。このコードを実行すると、Flash ランタイムはエラーをスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):void {
         //your code here
     };
     myVector.map(myFunction, someObject);
     
Vector.filter()
pop ベクターの最後のエレメントを削除して、そのエレメントを返します。fixedtrue のときにこのメソッドが呼び出された場合。 RangeErrorRangeError指定されたベクターの最後のエレメントの値です。 ベクターの最後のエレメントを削除して、そのエレメントを返します。この関数が呼び出されるときに、ベクターの length プロパティは 1 つ減少します。 Vector.push()Vector.shift()Vector.unshift()push エレメントをベクターの最後に追加して、ベクターの新しい長さを返します。引数がベクターのベース型 T のインスタンスではない場合。 TypeErrorTypeErrorfixedtrue のときにこのメソッドが呼び出された場合。 RangeErrorRangeError新しいエレメントが追加された後のベクターの長さです。 uintargsベクターに追加される値です。 エレメントをベクターの最後に追加して、ベクターの新しい長さを返します。

この関数は複数の引数を受け入れることができるので、Strict モードの場合でも、コンパイル時に引数のデータ型はチェックされません。ただし、ベース型のインスタンスではない引数が渡されると、実行時に例外が発生します。

Vector.pop()Vector.shift()Vector.unshift()
reverse ベクター内のエレメントの順序を反転します。逆の順序のエレメントを持つベクター。 ベクター内のエレメントの順序を反転します。このメソッドは呼び出されるベクターを変更します。 shift ベクターの最初のエレメントを削除して、そのエレメントを返します。fixedtrue の場合。 RangeErrorRangeErrorベクター内の最初のエレメント。 ベクターの最初のエレメントを削除して、そのエレメントを返します。残りのベクターエレメントは、元の位置 i から i - 1 に移動されます。 Vector.pop()Vector.push()Vector.unshift()slice 元のベクターから一連のエレメントを取り出して、新しいベクターを返します。元のベクターは変更されません。元のベクターから取り出した一連のエレメントから成るベクターです。 startIndexint0スライスの始点のインデックスを示す数値です。startIndex が負の数値の場合、始点はベクターの末尾から開始します。つまり、-1 が最後のエレメントです。 endIndexint16777215スライスの終点のインデックスを示す数値です。 このパラメーターを省略すると、スライスにはベクターの最初から最後までのすべてのエレメントが取り込まれます。endIndex が負の数値の場合、終点はベクターの末尾から開始します。つまり、-1 が最後のエレメントです。 元のベクターから取り出した一連のエレメントから成る新しいベクターを返します。 元のベクターから一連のエレメントを取り出して、新しいベクターを返します。元のベクターは変更されません。返されるベクターには、startIndex エレメントから endIndex の前のエレメントまでのすべてのエレメントが含まれます。

パラメーターを渡さない場合、新しいベクターは元のベクターの複製(浅い複製)になります。両方のパラメーターに 0 を渡すと、元のベクターと同じ型の新しい空のベクターが作成されます。

some true を返すアイテムに達するまで、ベクター内の各アイテムにテスト関数を実行します。ブール値です。指定された関数についてベクター内のいずれかのアイテムが true を返す場合は true を返します。それ以外の場合は false を返します。 BooleancallbackFunctionベクター内の各アイテムについて実行する関数です。この関数は、ベクターの現在のアイテム、アイテムのインデックス、および Vector オブジェクトの 3 つの引数によって呼び出されます。
function callback(item:T, index:int, vector:Vector.<T>):Boolean

コールバック関数はブール値を返します。

thisObjectObjectnull関数が呼び出されるときにコールバック関数の識別子 this が参照するオブジェクトです。
true を返すアイテムに達するまで、ベクター内の各アイテムにテスト関数を実行します。このメソッドを使用して、ベクター内のいずれのアイテムもある基準(値が特定の数値より小さいなど)を満たしているかどうかを判別できます。

このメソッドで、2 番目のパラメーター thisObject は、null でなければなりません(最初のパラメーター callback がメソッド閉包である場合)。これは、このメソッドの最も一般的な使用方法です。

ただし、メインタイムライン上のフレームで関数を作成するが、異なる this コンテキストで呼び出す必要があるとします。

     function myFunction(item:Object, index:int, vector:Vector.<T>):Boolean {
        // your code here
     }
     

次に、some() メソッドを、myVector というベクターに対して使用するとします。

     myVector.some(myFunction, someObject);
     

myFunction は SWF ファイルのメインクラスのメンバーなので、異なる this コンテキストでは実行できません。このコードを実行すると、Flash ランタイムはエラーをスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean {
         //your code here
     };
     myVector.some(myFunction, someObject);
     
every()
sort ベクター内のエレメントをソートします。新しい順序のエレメントを持つベクター。 compareFunctionFunctionソートの動作を設定する比較メソッドです。

指定したメソッドはベクターのベース型(T)の 2 つの引数を受け取り、数値を返す必要があります。

function compare(x:T, y:T):Number {}

compareFunction 関数のロジックにより、2 つのエレメント xy が指定された場合、この関数は次の 3 つの値のいずれかを返します。

  • xy の前に表示されるソート順の場合は負の数。
  • xy が等しい場合は 0。
  • xy の後に表示されるソート順の場合は正の数。
ベクター内のエレメントをソートします。このメソッドは、compareFunction パラメーターとして提供される関数に基づいてソートを実行します。
splice ベクターのエレメントを追加および削除します。startIndexdeleteCount 引数がベクターの境界外にあるインデックスを削除するように指定する場合。 RangeErrorRangeErrorこのメソッドが fixedtrue のときに呼び出され、splice() 演算によってベクターの length が変更された場合。 RangeErrorRangeError元のベクターから削除されたエレメントを含むベクターです。 startIndexint挿入または削除を開始するベクターエレメントのインデックスを示す整数です。負の整数を使用すると、ベクターの末尾を基準として位置を指定できます。例えば、-1 はベクターの最後のエレメントです。 deleteCountuint4294967295削除するエレメント数を示す整数です。この数には、startIndex パラメーターで指定するエレメントが含まれます。deleteCount パラメーターに値を指定しないと、ベクター内の startIndex の位置のエレメントから最後のエレメントまで、すべての値が削除されます。(デフォルト値は uint.MAX_VALUE です。)値として 0 を指定すると、エレメントは削除されません。 itemsstartIndex パラメーターで指定したベクター内の位置に挿入するカンマ区切り値のオプションリストです。 ベクターのエレメントを追加および削除します。このメソッドは、コピーを作成しないで、ベクターを変更します。

注意:ベクターのサブクラス内でこのメソッドをオーバーライドするには、次の例に示すように、パラメーターに ...args を使用します。

     public override function splice(...args) {
       // your statements here
     }
     
toLocaleString 指定されたベクター内のエレメントを表すストリングを返します。ベクターエレメントのストリングです。 String 指定されたベクター内のエレメントを表すストリングを返します。インデックス 0 から最大インデックスまでのベクター内のすべてのエレメントを、カンマで区切られた連結ストリングに変換して返します。ActionScript 3.0 実装において、このメソッドは、Vector.toString() と同じ値を返します。 Vector.toString()toString ベクター内のエレメントを表すストリングを返します。ベクターエレメントのストリングです。 String ベクター内のエレメントを表すストリングを返します。インデックス 0 から最大インデックスまでのベクター内のすべてのエレメントを、カンマで区切られた連結ストリングに変換して返します。カスタムセパレーターを指定するには、Vector.join() メソッドを使用します。 String.split()Vector.join()unshift エレメントをベクターの先頭に追加して、ベクターの新しい長さを返します。引数がベクターのベース型 T のインスタンスではない場合。 TypeErrorTypeErrorfixedtrue のときにこのメソッドが呼び出された場合。 RangeErrorRangeErrorベクターの新しい長さを表す整数です。 uintargsベクターの先頭に挿入されるこのベクターのベース型の 1 つ以上のインスタンス。 エレメントをベクターの先頭に追加して、ベクターの新しい長さを返します。ベクター内のその他のエレメントは、元の位置 i から i に新しいエレメントの数を加えた位置に移動されます。

この関数は複数の引数を受け入れることができるので、Strict モードの場合でも、コンパイル時に引数のデータ型はチェックされません。ただし、ベース型のインスタンスではない引数が渡されると、実行時に例外が発生します。

Vector.pop()Vector.push()Vector.shift()
fixed ベクターの length プロパティを変更できるかどうかを指定します。Boolean ベクターの length プロパティを変更できるかどうかを指定します。値が true の場合、length プロパティは変更できません。これは、fixedtrue の場合、次の操作は行うことができないことを意味します。
  • length プロパティの直接的な設定
  • インデックス位置 length への値の割り当て
  • length プロパティを変更する以下のメソッドの呼び出し
    • pop()
    • push()
    • Shift()
    • unshift()
    • splice()splice() 呼び出しがベクターの length を変更する場合)
length ベクター内で使用できる有効なインデックスの範囲です。uintfixedtrue のときにこのプロパティが変更された場合。 RangeErrorRangeErrorこのプロパティが、許容される最大インデックス(232)より大きい値に設定された場合。 RangeErrorRangeError ベクター内で使用できる有効なインデックスの範囲です。Vector インスタンスは、length 値(ただし、最大値は除く)までのインデックス位置を持ちます。

ずべてのベクターエレメントは、常にベース型のインスタンスまたは null のいずれかの値を持ちます。length プロパティが前の値より大きい値に設定されている場合、追加のエレメントが作成され、ベース型に適したデフォルト値(参照型の場合は null)が設定されます。

length プロパティが前の値より小さい値に設定されている場合、新しい length 値以上のインデックス位置にあるすべてのエレメントがベクターから削除されます。