« 山形家 | メイン | Mac mini »

Delegateクラス

OOP勉強会に行って来たときの復習。
Delegateという聞ききなれないクラスの話があった。
やりかたとかも教えてもらったので家帰って使ってみようと思い
とりあえずググッたら野中さんのサイトにDelegateクラスのことがバッチリのっていました。
 まあ一応自分でもこれがあるとmx2004のコンポーネントでちょっと使い勝手よくなるなあとおもったこともあるのでエントリーしておきます。

たとえばボタンコンポーネント三つ(btn1,btn2,btn3)ステージに置いてそれぞれにclickのイベントつけるときは


function click (oEvent) {

switch (oEvent.target){

case btn1:

trace("ボタン1");

break;

case btn2:

trace("ボタン2");

break;

case btn3:

trace("ボタン3");

break;

default:

}

}

btn1.addEventListener("click", this);

btn2.addEventListener("click", this);

btn3.addEventListener("click", this);


てな感じでやってたんだけど
なんかfuncitonの中で条件分岐するのは面倒だなあと個人的には少し思ってました。

で、Delegateクラスを使うと


import mx.utils.Delegate;

function func1 () {

trace("ボタン1");

}

function func2 () {

trace("ボタン2");

}

function func3 () {

trace("ボタン3");

}



btn1.addEventListener("click", Delegate.create(this,func1));

btn2.addEventListener("click", Delegate.create(this,func2));

btn3.addEventListener("click", Delegate.create(this,func3));


こんな感じに書けるのでなかなか良いなあと思ったのです。

トラックバック

このエントリーのトラックバックURL:
http://www2.infective.jp/mt/mtdayo-tb.cgi/391

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)