ActionScript3 as演算子
ActionScript3から使用可能な as 演算子。
括弧でくくる記述で利用してみました。
var list:Array = [ new Sample(1), new Sample(2), new Sample(3) ]; trace( (list[0] as Sample).x ); //Sampleクラスの内容 package{ class Sample{ public var x:Number; public function Sample( x:int ){ this.x = x; } } }
通常list内の0番目の要素のプロパティxの値を取り出したい場合、次のような二行になります。
var s:Sample = list[0]; trace( s.x );
本当は以下のように一行にすっきりとまとめたいところですが、
trace( list[0].x );
これでは仮にSampleクラスのプロパティ x の変数名が、nx という変数名に変更されたとしても、コンパイラやソースエディタ(FlexBuilder2)はエラーを検出してくれないため、バグの元になる可能性があります。
ここで、一行で記述ができ、コンパイラがエラー検出もしてくれる as 演算子が役に立ちました。
trace( (list[0] as Sample).x );
ただしfor文で配列内の要素全てを回して利用する、といった場合、同じくActionScript3から使用可能な for each文を用いたほうが見栄えがよしなので、使いどころは限られてきそうです。
//for文 for( var i:int=0 ; i < list.length ; i++ ) trace( (list[i] as Sample).x ); //for each文 for each( var s:Sample in list ) trace( s.x );
・as 演算子についてはこちら
akihiro kamijo
http://weblogs.macromedia.com/akamijo/archives/2006/01/_as.cfm
あ…あたしの頭は爆発寸前ですTT
っと何処に残して良いのかわからずでここへ…。
兄貴…
初日からやりますか?PSUwww
投稿者 伝助@美智 : 2006年08月29日 05:31