この記事のURL

http://www.dango-itimi.com/blog/archives/2006/000906.html


FLASH tips 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

[ FLASH ] [ tips ] 投稿者 siratama : 2006年08月28日 19:32

トラックバック

http://www.dango-itimi.com/blog/mt-tb.cgi/866

コメント

あ…あたしの頭は爆発寸前ですTT

っと何処に残して良いのかわからずでここへ…。

兄貴…

初日からやりますか?PSUwww

投稿者 伝助@美智 : 2006年08月29日 05:31

>伝ちゃん

私への連絡はこちらのメールアドレスへお願いします~
webmaster★dango-itimi.com
★を@に変えてください。
PSU、是非一緒に遊びましょう!

投稿者 siratama : 2006年08月29日 09:54

以下コメントを書き込むだけでは、管理人には通知が行われません。通知を行いたい場合、管理人の書き込みに「返信」を押してコメントをしていただくか、あるいは Google+, Twitter へご連絡ください。




[EDIT]