Flashゲーム講座 & アクションスクリプトサンプル集

 

AsBroadcaster クラスについて

 


■AsBroadcaster クラスについて

 
■AsBroadcaster クラスについて
 
AsBroadcaster クラスを使用すると、イベント駆動の仕組みを、利用することができます。
 
■ブロードキャスターとリスナーの関係
 
ブロードキャスターは、放送者を意味します。(比喩表現です)
 
リスナーは、聞く人を意味します。
 
リスナーは、ブロードキャスターに、コールバック関数を登録する事ができます。
 
ブロードキャスター1人に対して、複数のリスナーがコールバック関数を登録することができます。
 
ブロードキャスターは、メッセージ(イベント)を発行(発火)する事ができます。
 
ブロードキャスターは、リスナーが登録したコールバック関数を実行します。
 
リスナーは、登録した関数が実行されることで、ブロードキャスターからの通知を知ることができます。
 


 

ブロードキャスターを作成する

 


■任意のオブジェクトをブロードキャスター化する


任意のオブジェクトをブロードキャスター化するには、AsBroadcaster.initialize() メソッドを使用します。
 
引数に、ブロードキャスター化したい、任意のオブジェクトを指定します。
 
指定したオブジェクトには、ブロードキャスター用のプロパティとメソッドが追加されます。
 
AsBroadcaster.initialize( オブジェクト ) :Void
第01引数 Objectブロードキャスター化したいオブジェクトを指定
戻り値 Voidなし
 
任意のオブジェクトをブロードキャスター化する

// オブジェクトを作成
var broadcaster = new Object();

// オブジェクトをブロードキャスター化する
AsBroadcaster.initialize(broadcaster);
 


 

リスナーを登録する

 


■リスナー用オブジェクトを作成する

 

1.オブジェクトを作成する

 
リスナー実装者は、まずオブジェクトを作成します。
 
オブジェクトを作成する

// オブジェクトを作成
var listener = new Object();
 

2.オブジェクトに、コールバック関数を登録する

 
任意のプロパティ名に、コールバック関数を登録します。
 
プロパティ名は、イベント名となります。
 
例えば、ブロードキャスター実装者が、以下の様なイベントを供給すると仕様を決めたとします。
 
開始 … "start"
 
完了 … "complete"
 
成功 … "success"
 
失敗 … "failure"
 
コールバック関数の登録例です。
 
オブジェクトにコールバック関数を登録する

// オブジェクトを作成
var listener = new Object();

// コールバック関数を登録する
listener.start = function (){
	trace("開始した");
};

listener.complete = function (){
	trace("完了した");
};

listener.success = function (){
	trace("成功した");
};

listener.failure = function (){
	trace("失敗した");
};
 

■ブロードキャスターにリスナーを登録する

 
ブロードキャスターにリスナーを登録するには、addListener() メソッドを使用します。
 
AsBroadcaster.addListener( オブジェクト ) :Boolean
第01引数 Objectコールバック関数をセットしたオブジェクトを指定
戻り値 Booleantrue が得られます。
 
ブロードキャスターにリスナーを登録する

// ------------------------------------------------------------
// ブロードキャスター
// ------------------------------------------------------------
// オブジェクトを作成
var broadcaster = new Object();

// オブジェクトをブロードキャスター化する
AsBroadcaster.initialize(broadcaster);


// ------------------------------------------------------------
// リスナー
// ------------------------------------------------------------
// オブジェクトを作成
var listener = new Object();

// コールバック関数を登録する
listener.message = function (){
	trace("メッセージを受け取った");
};


// ------------------------------------------------------------
// ブロードキャスターにリスナーを登録する
// ------------------------------------------------------------
broadcaster.addListener(listener);
 

■ブロードキャスターに登録したリスナーを外す

 
ブロードキャスターに登録したリスナーを外すには、removeListener() メソッドを使用します。
 
AsBroadcaster.removeListener( オブジェクト ) :Boolean
第01引数 ObjectaddListener() メソッドの第01引数で渡したオブジェクトを指定
戻り値 Boolean成功すると true、失敗すると false が得られます。
 
ブロードキャスターにリスナーを登録する

// ------------------------------------------------------------
// ブロードキャスター
// ------------------------------------------------------------
// オブジェクトを作成
var broadcaster = new Object();

// オブジェクトをブロードキャスター化する
AsBroadcaster.initialize(broadcaster);


// ------------------------------------------------------------
// リスナー
// ------------------------------------------------------------
// オブジェクトを作成
var listener = new Object();

// コールバック関数を登録する
listener.message = function (){
	trace("メッセージを受け取った");
};


// ------------------------------------------------------------
// ブロードキャスターにリスナーを登録する
// ------------------------------------------------------------
broadcaster.addListener(listener);


// ------------------------------------------------------------
// ブロードキャスターに登録したリスナーを外す
// ------------------------------------------------------------
broadcaster.removeListener(listener);
 


 

メッセージを発行する

 


■メッセージを発行する

 
ブロードキャスターが、リスナーへメッセージを通知するには、broadcastMessage() メソッドを使用します。
 
リスナーが登録したコールバック関数が、順次実行されます。
 
AsBroadcaster.broadcastMessage( "イベント名" , Object ... ) :Void
第01引数 String発行するイベント名を指定
可変引数(略可)Objectコールバック関数に渡したいパラメータを指定
戻り値 Voidなし
 
ブロードキャスターからリスナーへメッセージを発行する

// ------------------------------------------------------------
// ブロードキャスター
// ------------------------------------------------------------
// オブジェクトを作成
var broadcaster = new Object();

// オブジェクトをブロードキャスター化する
AsBroadcaster.initialize(broadcaster);


// ------------------------------------------------------------
// リスナー
// ------------------------------------------------------------
// オブジェクトを作成
var listener = new Object();

// コールバック関数を登録する
listener.message = function (){
	trace("メッセージを受け取った");
};

// ブロードキャスターにリスナーを登録する
broadcaster.addListener(listener);


// ------------------------------------------------------------
// ブロードキャスターからリスナーへメッセージを発行する
// ------------------------------------------------------------
broadcaster.broadcastMessage("message");
 
ブロードキャスターからリスナーへ、複数のパラメータ付きメッセージを発行する

// ------------------------------------------------------------
// ブロードキャスター
// ------------------------------------------------------------
// オブジェクトを作成
var broadcaster = new Object();

// オブジェクトをブロードキャスター化する
AsBroadcaster.initialize(broadcaster);


// ------------------------------------------------------------
// リスナー
// ------------------------------------------------------------
// オブジェクトを作成
var listener = new Object();

// コールバック関数を登録する
listener.message = function (a,b,c){
	trace("メッセージを受け取った");
	trace("第01引数:" + a);
	trace("第02引数:" + b);
	trace("第03引数:" + c);
};

// ブロードキャスターにリスナーを登録する
broadcaster.addListener(listener);


// ------------------------------------------------------------
// ブロードキャスターからリスナーへメッセージを発行する
// ------------------------------------------------------------
broadcaster.broadcastMessage("message" , "送信テスト" , 123 , false);
 
複数のリスナーの使用例

// ------------------------------------------------------------
// ブロードキャスター
// ------------------------------------------------------------
// オブジェクトを作成
var broadcaster = new Object();

// オブジェクトをブロードキャスター化する
AsBroadcaster.initialize(broadcaster);


// ------------------------------------------------------------
// リスナーA
// ------------------------------------------------------------
// オブジェクトを作成
var listener_a = new Object();

// コールバック関数を登録する
listener_a.complete = function (param){
	trace("完了した(リスナーA)");
};
listener_a.success = function (param){
	trace("成功した(リスナーA)");
};

// ブロードキャスターにリスナーを登録する
broadcaster.addListener(listener_a);


// ------------------------------------------------------------
// リスナーB
// ------------------------------------------------------------
// オブジェクトを作成
var listener_b = new Object();

// コールバック関数を登録する
listener_b.start = function (param){
	trace("開始した(リスナーB)");
};
listener_b.complete = function (param){
	trace("完了した(リスナーB)");
};
listener_b.success = function (param){
	trace("成功した(リスナーB)");
};
listener_b.failure = function (param){
	trace("失敗した(リスナーB)");
};

// ブロードキャスターにリスナーを登録する
broadcaster.addListener(listener_b);


// ------------------------------------------------------------
// リスナーC
// ------------------------------------------------------------
// オブジェクトを作成
var listener_c = new Object();

// コールバック関数を登録する
listener_c.start = function (param){
	trace("開始した(リスナーC)");
};
listener_c.failure = function (param){
	trace("失敗した(リスナーC)");
};

// ブロードキャスターにリスナーを登録する
broadcaster.addListener(listener_c);


// ------------------------------------------------------------
// ブロードキャスターからリスナーへメッセージを発行する
// ------------------------------------------------------------
// 開始イベントを発行
broadcaster.broadcastMessage("start" , {data:"テスト"});

// 完了イベントを発行
broadcaster.broadcastMessage("complete" , {data:"テスト"});

// 成功イベントを発行
broadcaster.broadcastMessage("success" , {data:"テスト"});

// 失敗イベントを発行
broadcaster.broadcastMessage("failure" , {data:"テスト"});