あるデータ型の値を異なるデータ型として用いる場合には、データ型の「明示的な変換」(キャスト)を行います。配列すなわちArray型へのキャストには、別途注意すべき点があります。
値を異なる型にキャストするには、変換したいデータ型のクラス名に続けて、その値を括弧()で括ります。
var 変数:クラス = クラス(変換する値)
たとえば、以下のスクリプト001は、浮動小数値と文字列の数字を、それぞれint型にキャストします。intは整数型ですので、小数点以下の値は切捨てられます。
スクリプト001■NumberとString型のデータをint型にキャスト
// フレームアクション |
配列すなわちArrayクラスでは、前述の方法でキャストすることはできません。Array()関数は新規の配列(Arrayインスタンス)作成し、引数の値をその最初(インデックス0)のエレメントに加えてしまうからです(スクリプト002)。
スクリプト002■Array()関数は引数がエレメントとなった配列を返す
// フレームアクション |
上記スクリプト002は、Array()関数がエレメント数(Array.lengthの値)1の配列を作成し、そのエレメント(インデックス0)は引数として渡された配列oArrayであることを示しています。
配列のキャストには、as演算子を用います(スクリプト003)[*1]。
スクリプト003■Array()関数は引数がエレメントとなった配列を返す
// フレームアクション |
上記スクリプト003は、Object型のデータがas演算子によりArray型として評価され、もとのデータと同じエレメント数(Array.length値)の配列と認識されたことを示しています。
[*1] 通常のキャストにも、as演算子を用いることはできます。ただし、小数点以下を切捨てたり、文字列を数値に変換したりといった、データそのものを変更することはできません。詳しくは、前掲リンクの「as演算子」をご参照ください。