Thursday, July 29th 2010, 1:41pm UTC+2
You are not logged in.
|
|
ActionScript-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
class djpublic.utils.Broadcaster {
private static var bc:Broadcaster;
/**
* init (obj:Object):Void
*/
public static function init (obj:Object):Void {
if (bc == undefined) {
bc = new Broadcaster ();
}
obj._listeners = [];
obj.addListener = bc._addListener;
obj.removeListener = bc._removeListener;
obj.broadcastMessage = bc._broadcastMessage;
}
/**
* _addListener (obj:Object):Boolean
*/
private function _addListener (obj:Object):Boolean {
this._removeListener (obj);
this["_listeners"].push (obj);
return true;
}
/**
* _removeListener (obj:Object):Boolean
*/
private function _removeListener (obj:Object):Boolean {
var list:Array = this["_listeners"];
for (var i:Number = 0; i < list.length; i++) {
if (list[i] == obj) {
list.splice (i, 1);
return true;
}
}
return false;
}
/**
* _broadcastMessage (evt:String):Void
*/
private function _broadcastMessage (evt:String):Void {
var args:Array = arguments.slice (1);
var list:Array = this["_listeners"];
for (var i:Number = 0; i < list.length; i++) {
list[i][evt].apply (list[i], args);
}
}
}
|
|
|
ActionScript-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import djpublic.utils.Broadcaster;
var c:Object = {};
var name:String = "public";
Broadcaster.init (c);
c.addListener (this);
onEnterFrame = function ():Void {
c.broadcastMessage ("enterFrame", name);
};
enterFrame = function (n):Void {
trace (n);
};
onMouseDown = function ():Void {
c.removeListener (this);
};
|
|
|
ActionScript-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
class djpublic.utils.Broadcaster {
private static var bc:Broadcaster;
private var _listeners:Array;
/**
* init (obj:Object):Void
*/
public static function init (obj:Object):Void {
if (bc == undefined) {
bc = new Broadcaster ();
}
obj._listeners = [];
obj.addListener = bc._addListener;
obj.removeListener = bc._removeListener;
obj.broadcastMessage = bc._broadcastMessage;
}
/**
* _addListener (obj:Object):Boolean
*/
private function _addListener (obj:Object):Boolean {
this._removeListener (obj);
this._listeners.push (obj);
return true;
}
/**
* _removeListener (obj:Object):Boolean
*/
private function _removeListener (obj:Object):Boolean {
for (var i:Number = 0; i < this._listeners.length; i++) {
if (this._listeners[i] == obj) {
this._listeners.splice (i, 1);
return true;
}
}
return false;
}
/**
* _broadcastMessage (evt:String):Void
*/
private function _broadcastMessage (evt:String):Void {
var args:Array = arguments.slice (1);
for (var i:Number = 0; i < this._listeners.length; i++) {
this._listeners[i][evt].apply (this._listeners[i], args);
}
}
}
|