サイトトップ

Director Flash 書籍 業務内容 プロフィール

Adobe Flash非公式テクニカルノート

as演算子

ID: FN0704002 Product: Flash

Platform: All
Version: Flash 9 and above/ActionScritp 3.0

シンタックス
expression as datatype

パラメータ
expression:* − 指定したデータ型かどうかをチェックする値。

datatype:Class − オペランドexpressionの評価に用いられるデータ型。型指定のないことを示す特別な*型は、使用できません。

結果
expressiondatatypeで指定したデータ型のメンバであれば、結果は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日


Copyright © 2001-2007 Fumio Nonaka.  All rights reserved.