[AS3] データ型の変換はキャストよりas演算子が速い [Edit]

オブジェクトを異なるデータ型に変換したいとき、一般には「クラス(変換するオブジェクト)」のかたちでキャストします。けれど、as演算子を使う方が処理は速いようです。

たとえば、Event.targetプロパティは、Objectで型指定されています。参照しているのが実際にはMovieClipだったとして、MovieClipクラスのプロパティやメソッドを使いたい場合にはキャストします。

var _mc:MovieClip = MovieClip(eventObject.target);

データ型の変換は、as演算子を使ってもできます。そして、処理はこちらのほうが速いようです(wonderfl「Type casting comparison」参照)。

var _mc:MovieClip = eventObject.target as MovieClip;

Type casting comparison - wonderfl build flash online

なお、このwonderflのテストでは、参考のため一旦型指定のない(*)変数を介して代入する方法も試しています。

キャストとas演算子の処理の違いについては、「演算子asとis」をお読みください。また、Array型にデータを変換するときの注意について、「配列(Array)にキャストする」をご参照ください。

コメント

この記事にコメントを書く

記事に対するテクニカルな質問はご遠慮ください(利用規約)。

その他の記事