invisibleのススメ
こないだの勉強会で出した小ネタ紹介をば。
as1ネタになりますが、表示/非表示を制御する _visible の裏プロパティとして新たに _invisible を定義します。
分岐条件などでわざわざ !_visible のように否定をとるような状況が続くとコードが汚く見えたので、なんとなく用意してみました。
最初から prototype プロパティとして登録してしまってもいいのですが、好みの問題があるので以下のような prototype プロパティ追加用メソッドを用意しておきます。
function registerInvisible( target ){
var setter = function( value ){
this._visible = !value;
}
var getter = function(){
return !this._visible;
}
target.addProperty("_invisible", getter, setter );
ASSetPropFlags( target, "_invisible", 1 ); // 列挙ロック
}
たとえばムービークリップ全てに _invisible プロパティを追加したい場合は、以下のように記述します。
registerInvisible( MovieClip.prototype );
ちなみに as3 なら普通に public なメンバとして用意して、getter と setter を定義すればおしまい。
実行中に追加定義するには Proxy クラスを継承しなければいけないとか色々ややこしいので、最初から定義しておいた方がよさそうです。
_invisible なんて可読性下がるぜ!なんてツッコミは大歓迎。
はっきりいって好みの問題です。


