« 駆け引き大好き扉の外 | メイン | ユーザをほぼ確実に落とす方法 »

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 なんて可読性下がるぜ!なんてツッコミは大歓迎。
はっきりいって好みの問題です。

トラックバック

このエントリーのトラックバックURL:
http://void.heteml.jp/mt/mt-tb.cgi/59

コメントを投稿

あわせて読みたい