Platform: All
Version: Flash 9 and above/ActionScritp 3.0
シンタックス
expression as datatype
パラメータ
expression:* − 指定したデータ型かどうかをチェックする値。
datatype:Class − オペランドexpressionの評価に用いられるデータ型。型指定のないことを示す特別な*型は、使用できません。
結果
expressionがdatatypeで指定したデータ型のメンバであれば、結果はexpression(訳者注: の値)になります。そうでなければ、結果はnull値です。
説明
第1オペランド(被演算子)に指定した式が、第2オペランドで指定したデータ型のメンバかどうかを評価します。第1オペランドがそのデータ型のメンバであれば、結果は第1オペランド(訳者注: の値)になります。そうでなければ、結果はnull値です。
第2オペランドに用いられる式は、データ型として評価できなければなりません。
例[*1]
つぎの例は、myArrayという名前の単純な配列を作成し[*2]、いくつかのデータ型でas演算子を用いています。
var myArray:Array = ["one", "two", "three"];
trace(myArray as Array); // one,two,three
trace(myArray as Number); // null
trace(myArray as int); // null
|
[訳者注*1] as演算子は、キャストに利用することができます。ただし、データ自体を変えることはありません。データを変更しなければデータ型が変換できない場合には、nullを返します。
// フレームアクション
var n0:Number = 1.0;
var n1:Number = 1.1
var n_str:String = "1";
// as演算子を使用
trace(n0 as int); // 出力: 1
trace(n1 as int); // 出力: null
trace(n_str as int); // 出力: null
// int()を使用
trace(int(n1)); // 出力: 1
trace(int(n_str)) // 出力: 1;
|
配列をキャストする場合には、Array()のスタイルが使用できません。Array()関数が呼出されて、引数のインスタンスを最初(インデックス0)のエレメント(要素)にもつ配列を生成してしまうからです。配列のキャストには、as演算子を用います。
// フレームアクション
var oArray:Object = ["one", "two", "three"];
// Array()を使用
var my0_array:Array = Array(oArray);
trace(my0_array.length); // 出力: 1
trace(my0_array[0]); // 出力: one,two,three
// as演算子を使用
var my1_array:Array = oArray as Array;
trace(my1_array.length); // 出力: 3
trace(my1_array[0]); // 出力: one
|
[訳者注*2] 原文の第1ステートメントには、以下のように記述されています。しかし、クラス定義でなければ、public属性は指定できません。trace()関数のステートメントが続いていることからも、クラス定義の記述ではないと判断し、本文からはこの指定を削除しました。
public var myArray:Array = ["one", "two", "three"];
|
Player
ActionScript 3.0/Flash Player 9以降。
関連項目
instanceof is
出典
[ActionScript 3.0 Language and Components Reference] > [Operators] > [as Operator]
作成者: 野中文雄
作成日: 2007年4月27日