AsBroadcaster クラスについて(Flash 6 以降)
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 | コールバック関数をセットしたオブジェクトを指定 |
戻り値 | Boolean | true が得られます。 |
ブロードキャスターにリスナーを登録する
// ------------------------------------------------------------
// ブロードキャスター
// ------------------------------------------------------------
// オブジェクトを作成
var broadcaster = new Object();
// オブジェクトをブロードキャスター化する
AsBroadcaster.initialize(broadcaster);
// ------------------------------------------------------------
// リスナー
// ------------------------------------------------------------
// オブジェクトを作成
var listener = new Object();
// コールバック関数を登録する
listener.message = function (){
trace("メッセージを受け取った");
};
// ------------------------------------------------------------
// ブロードキャスターにリスナーを登録する
// ------------------------------------------------------------
broadcaster.addListener(listener);
■ブロードキャスターに登録したリスナーを外す
ブロードキャスターに登録したリスナーを外すには、removeListener() メソッドを使用します。
AsBroadcaster.removeListener( オブジェクト ) :Boolean
第01引数 | Object | addListener() メソッドの第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:"テスト"});